Skip to content

Commit 4c7bf3a

Browse files
DOC-3274: Fixed the docker guides for Hyperlinking, Image Proxy, and Spelling services for the TinyMCE 7 Docs. (#3859)
* DOC-3274: Fixed the docker guides for Hyperlinking, Image Proxy, and Spelling services for the TinyMCE 7 Docs. * Update modules/ROOT/partials/docker/hyperlinking-service/hyperlinking-service-installation.adoc Co-authored-by: Karl Kemister-Sheppard <karlkemistersheppard@gmail.com> * Update modules/ROOT/partials/docker/image-proxy-service/image-proxy-service-installation.adoc Co-authored-by: Karl Kemister-Sheppard <karlkemistersheppard@gmail.com> * Update modules/ROOT/partials/docker/spelling-service/spelling-service-installation.adoc Co-authored-by: Karl Kemister-Sheppard <karlkemistersheppard@gmail.com> * DOC-3274: Removed <> from allowed origins. * Did the same as previous commit for hyperlinking and image-proxy. * Updated server logs. * DOC-3274: Fixed indentation in hyperlinking and image proxy yml code snippets and updated image proxy yml code with the latest target path. --------- Co-authored-by: Karl Kemister-Sheppard <karlkemistersheppard@gmail.com>
1 parent ba2b471 commit 4c7bf3a

File tree

3 files changed

+167
-161
lines changed

3 files changed

+167
-161
lines changed

modules/ROOT/partials/docker/hyperlinking-service/hyperlinking-service-installation.adoc

Lines changed: 59 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ include::partial$misc/admon-docker-access.adoc[]
55

66
=== Retrieve Docker Image
77

8-
. Login into the {companyname} Cloud Docker Registry:
8+
. Login into the {companyname} Cloud Docker Registry:
99
+
1010
[source, sh, subs="attributes+"]
1111
----
@@ -23,9 +23,9 @@ Replace `<VERSION>` with `latest` or the specific version number.
2323

2424
include::partial$misc/admon-available-docker-images.adoc[]
2525

26-
=== Specify Configurations
26+
=== Specify Configurations
2727

28-
After completing the previous steps, run the Docker container from the pulled image:
28+
After completing the previous steps, run the Docker container from the pulled image:
2929

3030
[source, sh, subs="attributes+"]
3131
----
@@ -34,29 +34,29 @@ docker run -p 19100:19100 registry.containers.tiny.cloud/hyperlinking-tiny:<VERS
3434

3535
This triggers `-p 19100:19100`, exposing the service on `localhost:19100`. The service runs on port `19100` inside the Docker container, and this maps it to the same port on your localhost.
3636

37-
If set up correctly, the logs should display output similar to the following:
37+
If set up correctly, the logs should display output similar to the following:
3838

3939
[source, log]
4040
----
41-
2025-01-02 11:06:45 [io-compute-8] INFO navi - navi
41+
2025-09-15 04:46:17 [io-compute-3] INFO navi - navi
4242
...
43-
2025-01-02 11:06:45 [io-compute-blocker-8] INFO navi - -> Raw Config assembled from various sources: ConfigOrigin(merge of /ephox-hyperlinking/ephox-hyperlinking-docker-env.conf: 1,system properties,reference.conf @ jar:file:/ephox-hyperlinking/ephox-hyperlinking.jar!/reference.conf: 1)
44-
2025-01-02 11:06:46 [io-compute-blocker-8] WARN c.e.d.config.AllowedOriginsConfig$ - No allowed-origins specified in config!
45-
2025-01-02 11:06:46 [io-compute-blocker-8] WARN c.e.d.config.AllowedOriginsConfig$ - No allowed-origins specified in config!
46-
2025-01-02 11:06:46 [io-compute-blocker-8] INFO navi - navi config loaded successfully: NaviConfig(LinkCheckerConfig(true,ReturnUnknown),true,CacheConfig(10000,86400 seconds,3600 seconds),SdkServiceWithClientConfig(HttpConfig(100,10,10,3,HttpConfigTimeouts(10,10,10),JvmTrustModel()),None,OriginWhitelist(List(),OriginPrecision(true))),SelfHostedMediaSourcesConfig(CustomEmbedPlugins(UrlTrie(Branch(None,TreeMap()),Branch(None,TreeMap()))),None),OriginWhitelist(List(),OriginPrecision(true)),Logger[navi])
47-
2025-01-02 11:06:46 [io-compute-9] INFO o.h.b.c.nio1.NIO1SocketServerGroup - Service bound to address /0:0:0:0:0:0:0:0:19100
48-
2025-01-02 11:06:46 [io-compute-9] INFO o.h.blaze.server.BlazeServerBuilder -
43+
2025-09-15 04:46:17 [io-compute-blocker-3] INFO navi - -> Raw Config assembled from various sources: ConfigOrigin(merge of /app/application.conf: 1,system properties,reference.conf @ jar:file:/app/navi.jar!/reference.conf: 1)
44+
2025-09-15 04:46:17 [io-compute-blocker-3] WARN c.e.d.config.AllowedOriginsConfig$ - No allowed-origins specified in config!
45+
2025-09-15 04:46:17 [io-compute-blocker-3] WARN c.e.d.config.AllowedOriginsConfig$ - No allowed-origins specified in config!
46+
2025-09-15 04:46:17 [io-compute-blocker-3] INFO navi - navi config loaded successfully: NaviConfig(LinkCheckerConfig(true,ReturnUnknown),true,CacheConfig(10000,86400 seconds,3600 seconds),SdkServiceWithClientConfig(HttpConfig(100,10,10,3,HttpConfigTimeouts(10,10,10),JvmTrustModel()),None,OriginWhitelist(List(),OriginPrecision(true))),SelfHostedMediaSourcesConfig(CustomEmbedPlugins(UrlTrie(Branch(None,TreeMap()),Branch(None,TreeMap()))),None),OriginWhitelist(List(),OriginPrecision(true)),Logger[navi])
47+
2025-09-15 04:46:18 [io-compute-blocker-3] INFO o.h.b.c.nio1.NIO1SocketServerGroup - Service bound to address /[0:0:0:0:0:0:0:0]:19100
48+
2025-09-15 04:46:18 [io-compute-blocker-3] INFO o.h.blaze.server.BlazeServerBuilder -
4949
_ _ _ _ _
5050
| |_| |_| |_ _ __| | | ___
51-
| ' \\ _| _| '_ \\_ _(_-<
52-
|_||_\\__|\\__| .__/ |_|/__/
51+
| ' \ _| _| '_ \_ _(_-<
52+
|_||_\__|\__| .__/ |_|/__/
5353
|_|
54-
2025-01-02 11:06:46 [io-compute-9] INFO o.h.blaze.server.BlazeServerBuilder - http4s v0.23.27 on blaze v0.23.16 started at http://[::]:19100/
54+
2025-09-15 04:46:18 [io-compute-blocker-3] INFO o.h.blaze.server.BlazeServerBuilder - http4s v0.23.27 on blaze v0.23.16 started at http://[::]:19100/
5555
----
5656

5757
Running this command will generate a log warning about `allowed-origins` not being configured. This is expected, as it will be set up in the next step.
5858

59-
The {productname} server-side components require a configuration file to function correctly. By convention, this file is named `application.conf`. For more information, refer to link:https://www.tiny.cloud/docs/tinymce/latest/configure-required-services/[Required configuration for the server-side components^].
59+
The {productname} server-side components require a configuration file to function correctly. By convention, this file is named `application.conf`. For more information, refer to link:https://www.tiny.cloud/docs/tinymce/latest/configure-required-services/[Required configuration for the server-side components^].
6060

6161
This configuration file requires at least the following information:
6262

@@ -96,7 +96,7 @@ The Docker container can also be run with `docker compose`. In this example, the
9696
----
9797
hyperlinking-service/
9898
├── application.conf
99-
└── docker-compose.yaml
99+
└── docker-compose.yaml
100100
----
101101

102102
Here is an example of the application.conf file with the basic configurations:
@@ -107,8 +107,8 @@ ephox {
107107
108108
allowed-origins {
109109
origins = [
110-
"<http://example.com>",
111-
"<http://good.com> ",
110+
"http://example.com",
111+
"http://good.com",
112112
"*.my.company.org"
113113
]
114114
}
@@ -126,18 +126,24 @@ Once the application configuration file is ready, proceed with the Docker Compos
126126
----
127127
services:
128128
hyperlinking-tiny:
129-
image: registry.containers.tiny.cloud/hyperlinking-tiny:<VERSION>
129+
image: registry.containers.tiny.cloud/hyperlinking-tiny:<VERSION>
130130
ports:
131131
- "19100:19100"
132132
restart: always
133133
init: true
134134
volumes:
135135
- type: bind
136-
source: ./application.conf #change this to the path on your local machine
137-
target: /ephox-hyperlinking/ephox-hyperlinking-docker-env.conf
136+
source: ./application.conf #change this to the path on your local machine
137+
# Use the below target path if using any version below 2.109.6.
138+
# target: /ephox-hyperlinking/ephox-hyperlinking-docker-env.conf
139+
target: /app/application.conf
138140
read_only: true
139141
----
140142

143+
+
144+
[NOTE]
145+
From version 2.109.6 onwards, the `target` path in the `volumes` option must point to `/app/application.conf`.
146+
141147
. Run the service (within the same directory where `docker-compose.yaml` was placed):
142148
+
143149

@@ -151,39 +157,39 @@ If the setup is correct, the initiation logs should appear as follows:
151157
+
152158
[source, log]
153159
----
154-
✔ Container hyperlinking-tiny-hyperlinking-tiny-1 Recreated 0.1s
160+
✔ Container hyperlinking-tiny-hyperlinking-tiny-1 Created 0.1s
155161
Attaching to hyperlinking-tiny-1
156-
hyperlinking-tiny-1 | 2025-01-02 16:17:28 [io-compute-1] INFO navi - navi
157-
162+
hyperlinking-tiny-1 | 2025-09-15 04:57:29 [io-compute-7] INFO navi - navi
158163
...
159-
160-
-> Found value for property: /ephox-hyperlinking/ephox-hyperlinking-docker-env.conf
161-
hyperlinking-tiny-1 | 2025-01-02 16:17:28 [io-compute-blocker-1] INFO navi - * Parsing config defined by /ephox-hyperlinking/ephox-hyperlinking-docker-env.conf from property: ephox.config.file
162-
hyperlinking-tiny-1 | 2025-01-02 16:17:28 [io-compute-blocker-1] INFO navi - -> Processing file: /ephox-hyperlinking/ephox-hyperlinking-docker-env.conf
163-
hyperlinking-tiny-1 | 2025-01-02 16:17:28 [io-compute-blocker-1] INFO navi - * External application.conf => /opt/ephox/application.conf
164-
hyperlinking-tiny-1 | 2025-01-02 16:17:28 [io-compute-blocker-1] INFO navi - * Optional File (/opt/ephox/application.conf). Defaults to empty if file not found
165-
hyperlinking-tiny-1 | 2025-01-02 16:17:28 [io-compute-blocker-1] INFO navi - * Internal Configuration
166-
hyperlinking-tiny-1 | 2025-01-02 16:17:28 [io-compute-blocker-1] INFO navi - -> No extra internal configuration specified - skipping
167-
hyperlinking-tiny-1 | 2025-01-02 16:17:28 [io-compute-blocker-1] INFO navi - * Default (Reference) Configuration
168-
hyperlinking-tiny-1 | 2025-01-02 16:17:28 [io-compute-blocker-1] INFO navi - * Loading configuration files from classpath (reference.conf and integration.conf). Neither is required.
169-
hyperlinking-tiny-1 | 2025-01-02 16:17:28 [io-compute-blocker-1] INFO navi - -> Raw Config assembled from various sources: ConfigOrigin(merge of /ephox-hyperlinking/ephox-hyperlinking-docker-env.conf: 1,system properties,reference.conf @ jar:file:/ephox-hyperlinking/ephox-hyperlinking.jar!/reference.conf: 1)
170-
hyperlinking-tiny-1 | 2025-01-02 16:17:28 [io-compute-blocker-1] INFO c.e.d.config.AllowedOriginsConfig$ - Read allowed-origins config (ignoring ports = true) as:
171-
hyperlinking-tiny-1 | - localhost
164+
-> Found value for property: /app/application.conf
165+
hyperlinking-tiny-1 | 2025-09-15 04:57:29 [io-compute-blocker-7] INFO navi - * Parsing config defined by /app/application.conf from property: ephox.config.file
166+
hyperlinking-tiny-1 | 2025-09-15 04:57:29 [io-compute-blocker-7] INFO navi - -> Processing file: /app/application.conf
167+
hyperlinking-tiny-1 | 2025-09-15 04:57:29 [io-compute-blocker-7] INFO navi - * External application.conf => /opt/ephox/application.conf
168+
hyperlinking-tiny-1 | 2025-09-15 04:57:29 [io-compute-blocker-7] INFO navi - * Optional File (/opt/ephox/application.conf). Defaults to empty if file not found
169+
hyperlinking-tiny-1 | 2025-09-15 04:57:29 [io-compute-blocker-7] INFO navi - * Internal Configuration
170+
hyperlinking-tiny-1 | 2025-09-15 04:57:29 [io-compute-blocker-7] INFO navi - -> No extra internal configuration specified - skipping
171+
hyperlinking-tiny-1 | 2025-09-15 04:57:29 [io-compute-blocker-7] INFO navi - * Default (Reference) Configuration
172+
hyperlinking-tiny-1 | 2025-09-15 04:57:29 [io-compute-blocker-7] INFO navi - * Loading configuration files from classpath (reference.conf and integration.conf). Neither is required.
173+
hyperlinking-tiny-1 | 2025-09-15 04:57:29 [io-compute-blocker-7] INFO navi - -> Raw Config assembled from various sources: ConfigOrigin(merge of /app/application.conf: 1,system properties,reference.conf @ jar:file:/app/navi.jar!/reference.conf: 1)
174+
hyperlinking-tiny-1 | 2025-09-15 04:57:29 [io-compute-blocker-7] INFO c.e.d.config.AllowedOriginsConfig$ - Read allowed-origins config (ignoring ports = true) as:
172175
hyperlinking-tiny-1 | - localhost:8000
173-
hyperlinking-tiny-1 | - ephox.com
174-
hyperlinking-tiny-1 | 2025-01-02 16:17:28 [io-compute-blocker-1] INFO c.e.d.config.AllowedOriginsConfig$ - Read allowed-origins config (ignoring ports = true) as:
175-
hyperlinking-tiny-1 | - localhost
176+
hyperlinking-tiny-1 | - example.com
177+
hyperlinking-tiny-1 | - good.com
178+
hyperlinking-tiny-1 | - my.company.org
179+
hyperlinking-tiny-1 | 2025-09-15 04:57:29 [io-compute-blocker-7] INFO c.e.d.config.AllowedOriginsConfig$ - Read allowed-origins config (ignoring ports = true) as:
176180
hyperlinking-tiny-1 | - localhost:8000
177-
hyperlinking-tiny-1 | - ephox.com
178-
hyperlinking-tiny-1 | 2025-01-02 16:17:28 [io-compute-blocker-1] INFO navi - navi config loaded successfully: NaviConfig(LinkCheckerConfig(true,ReturnUnknown),true,CacheConfig(10000,86400 seconds,3600 seconds),SdkServiceWithClientConfig(HttpConfig(100,10,10,3,HttpConfigTimeouts(15,15,15),JvmTrustModel()),None,OriginWhitelist(List(localhost, localhost:8000, ephox.com),OriginPrecision(true))),SelfHostedMediaSourcesConfig(CustomEmbedPlugins(UrlTrie(Branch(None,TreeMap()),Branch(None,TreeMap(org -> Branch(None,TreeMap(wikipedia -> Branch(None,TreeMap(en -> Branch(Some(PathMatcher(List((wiki/.*,WikipediaEmbedPlugin(https://en.wikipedia.org/w/api.php,10))))),TreeMap()))))))))),None),OriginWhitelist(List(localhost, localhost:8000, ephox.com),OriginPrecision(true)),Logger[navi])
179-
hyperlinking-tiny-1 | 2025-01-02 16:17:29 [io-compute-6] INFO o.h.b.c.nio1.NIO1SocketServerGroup - Service bound to address /0:0:0:0:0:0:0:0:19100
180-
hyperlinking-tiny-1 | 2025-01-02 16:17:29 [io-compute-6] INFO o.h.blaze.server.BlazeServerBuilder -
181+
hyperlinking-tiny-1 | - example.com
182+
hyperlinking-tiny-1 | - good.com
183+
hyperlinking-tiny-1 | - my.company.org
184+
hyperlinking-tiny-1 | 2025-09-15 04:57:29 [io-compute-blocker-7] INFO navi - navi config loaded successfully: NaviConfig(LinkCheckerConfig(true,ReturnUnknown),true,CacheConfig(10000,86400 seconds,3600 seconds),SdkServiceWithClientConfig(HttpConfig(100,10,10,3,HttpConfigTimeouts(15,15,15),JvmTrustModel()),None,OriginWhitelist(List(localhost:8000, example.com, good.com, my.company.org),OriginPrecision(true))),SelfHostedMediaSourcesConfig(CustomEmbedPlugins(UrlTrie(Branch(None,TreeMap()),Branch(None,TreeMap(org -> Branch(None,TreeMap(wikipedia -> Branch(None,TreeMap(en -> Branch(Some(PathMatcher(List((wiki/.*,WikipediaEmbedPlugin(https://en.wikipedia.org/w/api.php,10))))),TreeMap()))))))))),None),OriginWhitelist(List(localhost:8000, example.com, good.com, my.company.org),OriginPrecision(true)),Logger[navi])
185+
hyperlinking-tiny-1 | 2025-09-15 04:57:30 [io-compute-blocker-7] INFO o.h.b.c.nio1.NIO1SocketServerGroup - Service bound to address /[0:0:0:0:0:0:0:0]:19100
186+
hyperlinking-tiny-1 | 2025-09-15 04:57:30 [io-compute-blocker-7] INFO o.h.blaze.server.BlazeServerBuilder -
181187
hyperlinking-tiny-1 | _ _ _ _ _
182188
hyperlinking-tiny-1 | | |_| |_| |_ _ __| | | ___
183-
hyperlinking-tiny-1 | | ' \\ _| _| '_ \\_ _(_-<
184-
hyperlinking-tiny-1 | |_||_\\__|\\__| .__/ |_|/__/
189+
hyperlinking-tiny-1 | | ' \ _| _| '_ \_ _(_-<
190+
hyperlinking-tiny-1 | |_||_\__|\__| .__/ |_|/__/
185191
hyperlinking-tiny-1 | |_|
186-
hyperlinking-tiny-1 | 2025-01-02 16:17:29 [io-compute-6] INFO o.h.blaze.server.BlazeServerBuilder - http4s v0.23.27 on blaze v0.23.16 started at http://[::]:19100/
192+
hyperlinking-tiny-1 | 2025-09-15 04:57:30 [io-compute-blocker-7] INFO o.h.blaze.server.BlazeServerBuilder - http4s v0.23.27 on blaze v0.23.16 started at http://[::]:19100/
187193
----
188194

189195
=== Next Steps
@@ -211,9 +217,9 @@ To confirm that a request is being sent to the {linkcheckerplugin} service, use:
211217
+
212218
[source, sh]
213219
----
214-
curl --location 'http://localhost:19100/1/check' \\
215-
--header 'Origin: http://good.com' \\
216-
--header 'Content-Type: application/json' \\
220+
curl --location 'http://localhost:19100/1/check' \
221+
--header 'Origin: http://good.com' \
222+
--header 'Content-Type: application/json' \
217223
--data '{ "urls": [{"url":"http://google.com"}, {"url": "http://youtube.com"}, {"url":"http://google.com/404"}, {"url":"https://ephox.."}]}'
218224
----
219225

@@ -223,9 +229,9 @@ Finally, to verify if a request is unauthorized and originates from an incorrect
223229
+
224230
[source, sh]
225231
----
226-
curl --location 'http://localhost:19100/1/check' \\
227-
--header 'Origin: http://bad.com' \\
228-
--header 'Content-Type: application/json' \\
232+
curl --location 'http://localhost:19100/1/check' \
233+
--header 'Origin: http://bad.com' \
234+
--header 'Content-Type: application/json' \
229235
--data '{ "urls": [{"url":"http://google.com"}, {"url": "http://youtube.com"}, {"url":"http://google.com/404"}, {"url":"https://ephox.."}]}'
230236
----
231237

0 commit comments

Comments
 (0)