Convertigo is an open source fullstack Low Code & No Code platform. The platform is used to build Enterprise Web & Mobile apps in a few days. Convertigo platform is composed of several components:
convertigo imageConvertigo Community edition brought to you by Convertigo SA (Paris & San Francisco). The platform is currently used by more than 100K developers worldwide, building enterprise class mobile apps.
%%LOGO%%
$ docker run --name C8O -d -p 28080:28080 %%IMAGE%%
This will start a container running the minimum Convertigo server. Convertigo uses images' /workspace directory to store configuration file and deployed projects as an Docker volume.
You can access the Server admin console on http://[dockerhost]:28080/convertigo and login using the default credentials: admin / admin
Convertigo FullSync module uses Apache CouchDB 2.3.1 as NoSQL repository. You can use the couchdb docker image and link to it convertigo this way
Launch CouchDB container and name it 'fullsync'
$ docker run -d --name fullsync couchdb:2.3.1
Then launch Convertigo and link it to the running 'fullsync' container. Convertigo Low Code sever will automatically use it as its fullsync repository.
$ docker run -d --name C8O --link fullsync:couchdb -p 28080:28080 %%IMAGE%%
MySQL is the recommended database for holding Convertigo MBaaS 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.
$ docker run -d --name C8O --link [mysql-container]:mysql -p 28080:28080 \
-e JAVA_OPTS="-Dconvertigo.engine.billing.enabled=true \
-Dconvertigo.engine.billing.persistence.jdbc.username=[username for the c8oAnalytics db] \
-Dconvertigo.engine.billing.persistence.jdbc.password=[password for specified db user] \
-Dconvertigo.engine.billing.persistence.jdbc.url=jdbc:mysql://mysql:3306/c8oAnalytics" \
%%IMAGE%%
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%%
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.
Be sure to have a really fast file sharing between instances !!! We have experienced that Azure File Share is not fast enough
To avoid log and cache mixing, you have to add 2 variables for instance specific paths:
-Dconvertigo.engine.cache_manager.filecache.directory=/workspace/cache/[instance name]
-Dconvertigo.engine.log4j.appender.CemsAppender.File=/workspace/logs/[instance name]/engine.log
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:
FROM %%IMAGE%%
COPY myProject.car /usr/local/tomcat/webapps/convertigo/WEB-INF/default_user_workspace/projects/
COPY myDependency.car /usr/local/tomcat/webapps/convertigo/WEB-INF/default_user_workspace/projects/
The default administration account of a Convertigo server is admin / admin and the testplatform is anonymous.
These accounts can be configured through the administration console and saved in the workspace.
CONVERTIGO_ADMIN_USER and CONVERTIGO_ADMIN_PASSWORD Environment variablesYou can change the default administration account :
$ docker run -d --name C8O -e CONVERTIGO_ADMIN_USER=administrator -e CONVERTIGO_ADMIN_PASSWORD=s3cret -p 28080:28080 %%IMAGE%%
CONVERTIGO_TESTPLATFORM_USER and CONVERTIGO_TESTPLATFORM_PASSWORD Environment variablesYou can lock the testplatform by setting the account :
$ docker run -d --name C8O -e CONVERTIGO_TESTPLATFORM_USER=tp_user -e CONVERTIGO_TESTPLATFORM_PASSWORD=s3cret -p 28080:28080 %%IMAGE%%
JAVA_OPTS Environment variableConvertigo is based on a Java process with some defaults JVM options. You can override our defaults JVM options with you own.
Add any Java JVM options such as -D[something] :
$ docker run -d --name C8O -e JAVA_OPTS="-DjvmRoute=server1" -p 28080:28080 %%IMAGE%%
Here the list of convertigo specific properties (don't forget the -Dconvertigo.engine. prefix).
JXMX Environment variableConvertigo 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.
The default JXMX value is 2048 and can be defined :
$ docker run -d --name C8O -e JXMX="4096" -p 28080:28080 %%IMAGE%%
COOKIE_PATH Environment variableConvertigo generates a JSESSIONID to maintain the user session and stores in a cookie. The cookie is set for the server path / by default. In case of a front server with multiple services for different paths, you can set a path restriction for the cookie with the JSESSIONID. Just define the COOKIE_PATH environment variable with a compatible path.
The default COOKIE_PATH value is / and can be defined :
$ docker run -d --name C8O -e COOKIE_PATH="/convertigo" -p 28080:28080 %%IMAGE%%
COOKIE_SECURE Environment variableConvertigo use a cookie to maintain sessions. Requests on port 28080 are HTTP but we advice to use an HTTPS front for production (nginx, kubenetes ingress, ...). In this case, you can secure yours cookies to be used only with secured connections by adding the Secure flag.
The Secure flag can be enabled by setting the COOKIE_SECURE environment variable to true. Once enabled, cookies and sessions aren't working through an HTTP connection.
The default COOKIE_SECURE value is false and can be defined :
$ docker run -d --name C8O -e COOKIE_SECURE="true" -p 28080:28080 %%IMAGE%%
COOKIE_SAMESITE Environment variableAllow to configure the SameSite parameter for generated cookies. Can be empty, none, lax or strict.
The default COOKIE_SAMESITE value is empty and can be defined this way:
$ docker run -d --name C8O -e COOKIE_SAMESITE=lax -p 28080:28080 %%IMAGE%%
SESSION_TIMEOUT Environment variableAllow to configure the default Tomcat session-timeout in minutes. This value is used for non-project calls (Administration console, Fullsync...). This value is overridden by each projects' calls (Sequence, Transaction ...).
The default SESSION_TIMEOUT value is 30 and can be defined this way:
$ docker run -d --name C8O -e SESSION_TIMEOUT=5 -p 28080:28080 %%IMAGE%%
DISABLE_SUDO Environment variableThe image include sudo command line, configured to allow the convertigo user to use it without password and to perform some root action inside the container. This variable allow to disable this permission.
The default DISABLE_SUDO value is empty and can be defined this way:
$ docker run -d --name C8O -e DISABLE_SUDO=true -p 28080:28080 %%IMAGE%%
You can use this stack to run a complete Convertigo Low Code server with FullSync repository and MySQL analytics in a few command lines.
$ mkdir c8oMBaaS
$ cd c8oMBaaS
$ wget https://raw.githubusercontent.com/convertigo/docker/master/compose/mbaas/docker-compose.yml
$ docker-compose up -d