You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -26,66 +26,193 @@ You can access the Server admin console on `http://[dockerhost]:28080/convertigo
26
26
27
27
The Server can also be accessed by HTTPS on `https://[dockerhost]:28443/convertigo` if SSL is configured (see the **HTTPS** section below).
28
28
29
-
## Link Convertigo to a CouchDB database for FullSync (Convertigo EE only)
29
+
## Connect Convertigo to a CouchDB database for FullSync (Convertigo EE only)
30
30
31
-
Convertigo FullSync module uses Apache CouchDB 3.2.2 as NoSQL repository. You can use the **[couchdb](https://hub.docker.com/_/couchdb/)** docker image and link to it convertigo this way
31
+
Convertigo FullSync uses Apache CouchDB 3.2.2 as its NoSQL repository.
32
32
33
-
Launch CouchDB container and name it 'fullsync'
33
+
For modern Docker setups, prefer one of these approaches:
34
+
35
+
- another container on the same Docker network
36
+
- a service running directly on the Docker host
37
+
38
+
### CouchDB running on the Docker host
39
+
40
+
With Docker Desktop, `host.docker.internal` is available by default:
Then launch Convertigo and link it to the running 'fullsync' container. Convertigo Low Code sever will automatically use it as its fullsync repository.
The legacy `--link` option may still work, but it is no longer the recommended Docker approach.
82
+
83
+
For compatibility with existing deployments, the image also detects a resolvable host named `couchdb` at startup and configures it as `http://couchdb:5984`. Prefer an explicit `JAVA_OPTS` setting and a user-defined network for new deployments.
84
+
45
85
## Use embedded PouchDB as FullSync engine (not for production)
46
86
47
87
Convertigo FullSync is designed to use CouchDB server or cluster. Convertigo FullSync is also compatible with PouchDB but only for little projects or tests. Internet access is required to enable this feature.
docker run -d --name C8O -e JAVA_OPTS="-Dconvertigo.engine.fullsync.pouchdb=true" -p 28080:28080 %%IMAGE%%
53
93
```
54
94
55
-
## Link Convertigo Low Code Server to a Billing & Analytics database
95
+
## Connect Convertigo Low Code Server to a Billing & Analytics database
56
96
57
97
### MySQL
58
98
59
-
MySQL is the recommended database for holding Convertigo Low Code server analytics. You can use this command to run convertigo and link it to a running MySQL container. Change `[mysql-container]` to the container name, and `[username for the c8oAnalytics db]`, `[password for specified db user]` with the values for your MySQL configuration.
99
+
MySQL is the recommended database for holding Convertigo analytics data.
100
+
101
+
If the database runs on the Docker host, use `host.docker.internal`:
If the database runs in another container, connect both containers to the same user-defined Docker network and use the container name in the JDBC URL.
114
+
70
115
## Where is Convertigo Low Code server storing deployed projects
71
116
72
117
Projects are deployed in the Convertigo workspace, a simple file system directory. You can map the docker container **/workspace** to your physical system by using:
docker run --name C8O -v $(pwd):/workspace -d -p 28080:28080 %%IMAGE%%
76
121
```
77
122
78
123
You can share the same workspace by all Convertigo containers. In this case, when you deploy a project on a Convertigo container, it will be seen by others. This is the best way to build multi-instance load balanced Convertigo server farms.
79
124
80
125
**Be sure to have a really fast file sharing between instances !!! We have experienced that Azure File Share is not fast enough**
81
126
82
-
To avoid log and cache mixing, you have to add 2 variables for instance specific paths:
127
+
Shared-workspace deployments can also propagate a subset of administration changes at runtime without restarting every instance. This synchronization is disabled by default and must only be enabled when all instances really share the same Convertigo workspace (for example via NFS or another RWX volume).
-`engine.properties` runtime replay, including logger levels
140
+
- users / roles definitions (`user_roles.db`) for future logins
141
+
- cache configure / cache clear
142
+
143
+
This shared-workspace sync does **not** cover separate workspaces per pod, Redis-specific notifications, certificates, scheduler, or broader clustered admin forwarding.
144
+
145
+
The shared workspace is intended for projects, configuration, and runtime sync markers. Logs and file cache must not be shared between instances.
146
+
147
+
For plain Docker multi-instance setups sharing the same `/workspace` mount, use instance-specific paths:
For Kubernetes and Helm deployments, prefer pod-local paths such as `/tmp/convertigo-cache` and `/tmp/convertigo-logs` instead of shared-workspace subdirectories.
155
+
156
+
Recommended multi-instance example:
157
+
158
+
```console
159
+
docker run --name C8O1 -v /my-shared-workspace:/workspace -d -p 28081:28080 \
At each container start, the image copies the contents of these workspace directories into the Convertigo web application before Tomcat starts:
177
+
178
+
-`/workspace/lib/` to `WEB-INF/lib/` for JAR files and their dependencies
179
+
-`/workspace/classes/` to `WEB-INF/classes/` for compiled classes and resources
180
+
181
+
The directory structure is preserved and overlays the files provided by the image; it does not remove existing web-application files. For classes, keep the package directory structure below `/workspace/classes/` (for example, `com/example/MyClass.class`). Restart or recreate the container after adding or updating these files. To remove an injected file, remove it from the workspace and recreate the container, since a restart does not delete files already copied into the web application.
182
+
183
+
For example, prepare a workspace and mount it into the container:
docker run --name C8O -v "$(pwd)/workspace:/workspace" -d -p 28080:28080 %%IMAGE%%
190
+
```
191
+
192
+
This is also useful when iterating on a custom Java extension without building a derived Convertigo image. Ensure that the mounted workspace is writable by the container at startup.
193
+
194
+
## Trust custom certificate authorities
195
+
196
+
To trust private root or intermediate certificate authorities, mount a dedicated directory at `/cacerts`. At startup, the image copies the JDK default truststore to a temporary location, imports every regular file in this directory with `keytool`, then configures the JVM to use the generated truststore. Certificate files must be X.509 certificates in a format accepted by `keytool` (typically PEM or DER).
197
+
198
+
For example:
199
+
200
+
```console
201
+
mkdir -p custom-ca
202
+
cp company-root-ca.pem custom-ca/
203
+
cp partner-intermediate-ca.crt custom-ca/
204
+
docker run --name C8O \
205
+
-v "$(pwd)/workspace:/workspace" \
206
+
-v "$(pwd)/custom-ca:/cacerts:ro" \
207
+
-d -p 28080:28080 convertigo
208
+
```
209
+
210
+
Keep this directory outside the Convertigo workspace and mount it read-only. In Kubernetes, mount a ConfigMap or Secret read-only at `/cacerts`. The image only reads custom CAs from this dedicated mount; files in `/workspace` are not considered.
211
+
212
+
The standard JDK certificate authorities are retained. The generated truststore is not persisted: restart or recreate the container after adding, replacing, or removing a certificate. If a file cannot be imported, the image logs a warning and continues to start with the certificates successfully imported so far.
213
+
214
+
This configuration is independent from the Tomcat HTTPS server certificate configured through `/ssl`.
215
+
89
216
## Make image with pre-deployed projects
90
217
91
218
If you want to make a vertical image ready to start with your application inside, you have to have your built projects **.car** files next to your `Dockerfile`:
@@ -122,17 +249,31 @@ These accounts can be configured through the **administration console** and save
122
249
You can change the default administration account :
These variables are startup conveniences. If `/workspace/configuration/engine.properties` already defines `admin.username` or `admin.password`, the matching environment variable is ignored to preserve the persisted configuration.
docker run -d --name C8O -e CONVERTIGO_ANONYMOUS_DASHBOARD=true -p 28080:28080 %%IMAGE%%
263
+
```
264
+
265
+
If `/workspace/configuration/engine.properties` already defines `anonymous.dashboard`, `CONVERTIGO_ANONYMOUS_DASHBOARD` is ignored.
266
+
267
+
### `PUBLIC_DOMAINS` Environment variable
268
+
269
+
For production CORS configuration, you can replace the default `cors.policy = =Origin` behavior with an explicit list of public origins:
270
+
271
+
```console
272
+
docker run -d --name C8O -e PUBLIC_DOMAINS="https://app.example.com#https://admin.example.com" -p 28080:28080 %%IMAGE%%
134
273
```
135
274
275
+
Values must match the full browser `Origin` header, including scheme and optional port. Multiple origins are separated with `#`. If `/workspace/configuration/engine.properties` already defines `cors.policy`, `PUBLIC_DOMAINS` is ignored. Use `JAVA_OPTS=-Dconvertigo.engine.cors.policy=...` only when you need an explicit JVM-level override.
276
+
136
277
## HTTPS / SSL Configuration
137
278
138
279
In many cases, the Convertigo instance is behind a reverse proxy that handles HTTPS / SSL configuration. But you can configure the container to manage existing SSL certificates or dynamically generate one.
@@ -148,13 +289,13 @@ If you have an existing certificate and a private key, you can put them in **PEM
148
289
-`chain.pem` : the optional chain of certificates not included in `cert.pem` using the PEM format
Convertigo is based on a **Java** process with some defaults **JVM** options. You can override our defaults **JVM** options with you own.
334
+
Convertigo is based on a **Java** process with default **JVM** options. You can add your own JVM options with this variable; the image keeps its required runtime options.
194
335
195
336
Add any **Java JVM** options such as -D[something] :
docker run -d --name C8O -e JAVA_OPTS="-DjvmRoute=server1" -p 28080:28080 %%IMAGE%%
199
340
```
200
341
201
342
[Here the list of convertigo specific properties](https://www.convertigo.com/documentation/latest/operating-guide/appendixes/#list-of-convertigo-java-system-properties) (don't forget the `-Dconvertigo.engine.` prefix).
@@ -207,17 +348,19 @@ Convertigo generates many logs in a **engine.log** file that can be consulted vi
207
348
Log file still exists until you add the `LOG_FILE=false` environment variable :
Convertigo tries to allocate this amount of memory in the container and will automatically reduce it until the value is compatible for the Docker memory constraints. Once the best value found, it is used as `-Xmx=${JXMX}m` parameter for the JVM.
356
+
Set `JXMX` to define the JVM heap size in MiB. The image then adds `-Xms128m -Xmx=${JXMX}m` to the JVM options. Make sure the container memory limit leaves room for memory outside the Java heap.
216
357
217
-
The default `JXMX` value is `2048` and can be defined :
358
+
When `JXMX` is not set, the image uses `-XX:MaxRAMPercentage=80` instead.
0 commit comments