Docker setup for Sparx Systems Pro Cloud Server for Enterprise Architect, simplifying setup and reducing maintenance on Linux systems.
Supported Pro Cloud Server versions: 4.2
, 5.0
, 5.1
This project is built on top of docker-wine, providing Wine and Winetricks for running Sparx Systems software inside a Docker container.
Note: Sparx Systems does not officially support running Pro Cloud Server or Enterprise Architect in a container. This project is also not supported in any way by Sparx Systems.
Running Pro Cloud Server in a container is composed of 2 separate steps:
Windows host systems are not tested, but should work correctly with Linux containers enabled.
ssprocloudserver(_x64).msi
) obtained with a Sparx Systems licence.ssprocloud
folder (or somewhere accessible by docker-compose
):
server.pem
if provided as file (see below for alternatives).ssprocloudserver(_x64).msi
..env
as required (may skip if following recommendations in this guide).
SSPROCLOUD_
according to the version of Pro Cloud Server you have.BASE_IP
if it clashes with other containers on the machine.ADMIN=yes docker-compose up
.freerdp
is recommended for ease of use, use the following details to connect:
localhost
(we connect to RDP locally after connecting with SSH)wineuser
wineuser
wineuser
inside the container should now be visible.ssprocloud-install.sh
from the Desktop and follow the installation prompts.
mdac28
(both required for DBMS), as well as Pro Cloud Server if the installer was correctly setup.wineuser
's home directory is volume-mounted as winehome
.docker-compose up
(ADMIN=no
is default).Container is setup to automatically restart after that. It will run wine taskmgr
to keep the Wine processes up and running. RDP is not available in this mode, as it interferes with user interface rendering.
An existing SSL certificate or a self-signed one must be used for Pro Cloud Server to fully function.
Certificate is volume-mounted to the appropriate location in Pro Cloud Server installation. Edit the location in .env
to specify the source.
To generate a self-signed certificate for testing purposes:
openssl genrsa -out server.key 2048
openssl req -new -x509 -key server.key -out server.cert -days 3650 -subj /CN=server
cat server.cert > server.pem
cat server.key >> server.pem
Traefik can be used to provide a certificate with it's Let's Encrypt ACME provider.
Use traefik-certs-dumper to export the certificates into PEM format Pro Cloud can consume. Replace <domain>
with the domain you are generating certificates for.
services:
traefik:
image: traefik:v2.6
volumes:
- ./letsencrypt:/letsencrypt
traefik-certs-dumper:
image: ldez/traefik-certs-dumper:v2.8.1
entrypoint: sh -c '
apk add jq
; while ! [ -e /data/acme.json ]
|| ! [ `jq ".[] | .Certificates | length" /data/acme.json` != 0 ]; do
sleep 1
; done
&& traefik-certs-dumper file --version v2 --watch
--source /data/acme.json --dest /data/certs --domain-subdir=true
--post-hook "sh /data/server_pem.sh /data/certs/<domain>"'
networks:
- traefik
volumes:
- ./letsencrypt:/data
And use it in .env
:
# Certificate generated by traefik-certs-dumper
SSL_CERT=/opt/docker/traefik/letsencrypt/certs/<domain>/server.pem
Following docker-compose.yml
additions should be made for Web Config to work properly with a sub-path:
services:
ssprocloudwebconfig:
labels:
- "traefik.http.routers.ssprocloudwebconfig.middlewares=add-trailing-slash@file,ssprocloudwebconfig-strip"
- "traefik.http.middlewares.ssprocloudwebconfig-strip.stripprefix.prefixes=/ssprocloud"
Following credentials are setup by default. They can be changed using Admin mode of the container.
Container user (interactive session or RDP, capable of sudo
):
wineuser
wineuser
Pro Cloud Config Client:
localhost:1803
pcsadm1n
Floating License Server:
admin
password
Native Database Managers are available since Pro Cloud Server v5.0 and should be used instead of ODBC. They do not require additional drivers and are easier to setup.
Note: Native Database Managers should be used instead of ODBC!
At this time, only Firebird DBMS is tested.
Add a Database Manager (Model) in Pro Cloud Config Client and use <name>.feap
as a Filename (replace <name>
with a wanted Model name). This will create a Firebird database which can be loaded in Enterprise Architect.
To load a Model in Enterprise Architect, use the following Cloud Connection details:
https://
1805
for https://
, 1804
for http://
<name>
Floating License Config Client can connect to Floating License Server using the following details:
https://
localhost
1805
Keystore should successfully load and additional configuration can be done in the user interface or through ssflsgroups.config
file.
An image is included for WebClient, hosted with Apache/PHP and by default configured to connect to default Pro Cloud Server port in the server image. webconfig/settings.php
may be edited accordingly.
WebClient will not have access to Pro Cloud Server with the default White List setup. It is advisable to change the password of the Pro Cloud Server admin
first, then add 181.3.0.3
(as configured) to the White List.