Table of Contents
- Romexis Docker
- Überblick
- Hauptfunktionen
- Runtime-Compose-Struktur
- Backend-Auswahl über .env
- Schnellstart
- Runtime-Dienste
- Container Images
- Lokale Image-Builds
- Persistente Datenverzeichnisse
- Datenbankinitialisierung
- KeyVault und ProgramData
- RomexisConfig und Admin-Konfiguration
- Erweiterte Konfiguration
- Troubleshooting
- Effektive Compose-Konfiguration prüfen
- Alle Dienste prüfen
- Romexis Server prüfen
- Admin Container prüfen
- Shell im Admin-Service öffnen
- Aufgelöste Romexis-Version prüfen
- Keystore-Alias-Probleme
- Bekannte Einschränkungen
- Lizenz
- Haftungsausschluss
Deutsch | English
Romexis Docker
English | Build-Prozess | Entwicklerdokumentation
Containerisierte Bereitstellung von Planmeca Romexis Server unter Linux mit Docker, Datenbank-Backend-Auswahl über Docker Compose, optionalem Migration Service, browserbasiertem Romexis Admin und separatem mRomexis WebApp Container.
Überblick
Dieses Projekt baut und betreibt Planmeca Romexis Dienste in Docker.
Die benötigten Romexis-Programmdateien werden während des Builds aus dem offiziellen Romexis-Windows-Installer extrahiert. Im Repository werden keine Romexis-Binaries gespeichert.
Der Runtime-Stack ist in klar getrennte Dienste aufgeteilt:
-
Romexis Server
Hauptdienst mit RMI-Ports, Datenbankzugriff, KeyVault-Vorbereitung und Laufzeitkonfiguration. -
Datenbank-Backend
Auswahl überDATABASE_BACKENDundCOMPOSE_FILEin der.env. Unterstützte Compose-Backends sind aktuellmssqlundfirebird. -
Romexis Migration Service
Optionaler Web/API-Dienst für Restore- und Migrationsabläufe. -
Romexis Admin
Browserbasierter Admin-/RomexisConfig-Container über Xvfb, Openbox, xcompmgr, x11vnc und noVNC. -
mRomexis WebApp
Separater Tomcat-Container für die mRomexis-Weboberfläche ab Romexis 6.5.3.
Hauptfunktionen
- Romexis Server in Docker
- Microsoft SQL Server und Firebird als Compose-Backends
- Backend-Auswahl über
.env - Lokale Build-Skripte für reproduzierbare Entwickler-Builds
- Multiarch-Images für
amd64undarm64 - Payload-Image für Installer-Extraktion
- Wiederverwendbares Base-Runtime-Image
- Server-Image aus Payload- und Base-Image
- Migration-Service-Image
- Romexis-Admin-Image mit Browser/noVNC-Zugriff
- mRomexis-WebApp-Image
- Branch-spezifische Image-Suffixe über
IMAGE_SUFFIX - Java PropertyAgent für serverseitige Runtime-Properties
- Drone CI/CD mit Multiarch-Manifesten
Runtime-Compose-Struktur
Die Laufzeitumgebung ist in eine Basis-Compose-Datei und backend-spezifische Override-Dateien aufgeteilt:
.env.sample
docker-compose.yml
docker-compose.mssql.yml
docker-compose.firebird.yml
scripts/build-local.sh
scripts/build-local.ps1
Die Basisdatei enthält datenbankunabhängige Dienste wie:
romexis
romexis-admin
romexis-app
proxy
Die Backend-Override-Dateien ergänzen oder überschreiben datenbankspezifische Dienste und Umgebungsvariablen:
docker-compose.mssql.yml
docker-compose.firebird.yml
docker-compose.build.yml wird nicht mehr benötigt. Lokale Image-Builds laufen über scripts/build-local.*.
Backend-Auswahl über .env
Der Stack kann mit einem einheitlichen Befehl gestartet werden, wenn das gewünschte Backend in .env gesetzt ist.
MSSQL
DATABASE_BACKEND=mssql
COMPOSE_PATH_SEPARATOR=:
COMPOSE_FILE=docker-compose.yml:docker-compose.${DATABASE_BACKEND}.yml
Start:
docker compose up -d
Firebird
DATABASE_BACKEND=firebird
COMPOSE_PATH_SEPARATOR=:
COMPOSE_FILE=docker-compose.yml:docker-compose.${DATABASE_BACKEND}.yml
Start:
docker compose up -d
In nativen Windows-Shells kann als Compose-Dateitrenner ; statt : erforderlich sein:
COMPOSE_PATH_SEPARATOR=;
COMPOSE_FILE=docker-compose.yml;docker-compose.${DATABASE_BACKEND}.yml
Die effektive Konfiguration prüfen:
docker compose config
Schnellstart
Runtime-Konfiguration erstellen:
cp .env.sample .env
Mindestens anpassen:
DATABASE_BACKEND=mssql
COMPOSE_PATH_SEPARATOR=:
COMPOSE_FILE=docker-compose.yml:docker-compose.${DATABASE_BACKEND}.yml
ROMEXIS_VERSION=6.5.3.444.203
IMAGE_SUFFIX=
Stack starten:
docker compose up -d
Logs anzeigen:
docker compose logs -f
Stack stoppen:
docker compose down
Runtime-Dienste
Romexis Server
Der Dienst romexis startet den eigentlichen Romexis-Backend-Prozess.
Er bereitet vor:
- Romexis-Server-Properties
- KeyVault- und ProgramData-Pfade
- Datenbankverbindung
- Linux-Datenpfade
- RMI-Host und RMI-Ports
- optionale Datenbankinitialisierung
Logs:
docker compose logs -f romexis
Installierte Romexis-Version prüfen:
docker exec -it romexis-server cat /opt/romexis/version
Datenbank-Backend
Das aktive Backend wird über COMPOSE_FILE geladen.
Für MSSQL ergänzt die Override-Datei den SQL-Server-Dienst und konfiguriert Romexis für Microsoft SQL Server.
Für Firebird ergänzt die Override-Datei den Firebird-Dienst und konfiguriert Romexis für Firebird.
Prüfen:
docker compose ps
docker compose logs -f
docker compose config
Migration Service
Der Migration Service unterstützt Romexis-Migrationen und Restore-Workflows.
Er stellt bereit:
- Web UI und REST API für Migrationsjobs
- Datenbankbackup-Upload
- temporären SFTP-Zugang pro Migrationsjob
- serverseitige
manifest.json-Erzeugung - Datenbank-Restore
- Datei-Restore
- Validierung und Bereinigung
- koordinierten Romexis-Neustart über eine gemeinsame State-Datei
Die Neustartkoordination erfolgt über:
/data/romexis_images/.romexis_restart_state
Romexis Admin
Der Dienst romexis-admin stellt Romexis Admin / RomexisConfig über noVNC bereit.
Beim Containerstart werden die grafischen Runtime-Komponenten gestartet:
Xvfb -> Openbox -> xcompmgr -> x11vnc -> noVNC
RomexisConfig selbst kann erst beim Aufbau einer VNC/noVNC-Verbindung gestartet werden. Dadurch läuft das Admin-Tool nicht dauerhaft im Hintergrund.
Admin UI öffnen:
http://localhost:6080/vnc.html?host=localhost&port=6080&autoconnect=true
Typische Admin-Variablen:
ADMIN_NOVNC_PORT=6080
ADMIN_VNC_PORT=5900
ADMIN_VNC_PASSWORD=promax
ADMIN_RESOLUTION=1280x900x24
ADMIN_JAVA_OPTS=-Xms256m -Xmx1024m
ADMIN_LANGUAGE=de
DEBUG_XTERM=false
ADMIN_VNC_LIFECYCLE=true
ENABLE_PROPERTY_AGENT=true
ADMIN_LANGUAGE unterstützt:
de
en
Der gleiche Sprachwert wird für den Splashscreen und den language= Parameter von RomexisConfig verwendet.
DEBUG_XTERM=true öffnet zusätzlich ein Debug-Terminal in der VNC-Sitzung.
ADMIN_VNC_LIFECYCLE=true bedeutet:
- erster VNC/noVNC-Client verbindet sich -> RomexisConfig startet
- letzter VNC/noVNC-Client trennt sich -> RomexisConfig wird beendet
- während des Starts wird ein lokalisierter Splashscreen angezeigt
mRomexis WebApp
Der Dienst romexis-app stellt die mRomexis Weboberfläche als eigenständige Tomcat-Anwendung bereit.
Wichtig:
mromexis-html.war existiert erst ab Romexis 6.5.3.
Ältere Payload-Versionen enthalten diese WAR-Datei nicht und können daher kein gültiges mRomexis-WebApp-Image bauen.
Die WebApp wird normalerweise über den Proxy-Dienst veröffentlicht. Der Proxy behandelt auch den /proxy?url=... Endpunkt der Anwendung.
Der Proxy schreibt mRomexis-Proxy-Anfragen auf den internen Romexis-Backend-Dienst um, anstatt dem vom Browser gelieferten Host zu vertrauen. Dadurch müssen keine internen IP-Adressen gepflegt werden und der Endpunkt wird nicht zu einem offenen HTTP-Proxy.
Typische Variable:
MROMEXIS_WEB_PORT=8081
mRomexis WebApp öffnen:
http://localhost:8081/
Container Images
Das Projekt verwendet folgende Image-Familien:
gitea.buchhorster.de/planmeca/romexis-payload:<version>
gitea.buchhorster.de/planmeca/romexis-base-jre:11-amd64
gitea.buchhorster.de/planmeca/romexis-base-jre:11-arm64
gitea.buchhorster.de/planmeca/romexis-base-jre:11
gitea.buchhorster.de/planmeca/romexis-server:<version>-amd64
gitea.buchhorster.de/planmeca/romexis-server:<version>-arm64
gitea.buchhorster.de/planmeca/romexis-server:<version>
gitea.buchhorster.de/planmeca/romexis-migration-service:amd64
gitea.buchhorster.de/planmeca/romexis-migration-service:arm64
gitea.buchhorster.de/planmeca/romexis-migration-service:latest
gitea.buchhorster.de/planmeca/romexis-admin:<version>-amd64
gitea.buchhorster.de/planmeca/romexis-admin:<version>-arm64
gitea.buchhorster.de/planmeca/romexis-admin:<version>
gitea.buchhorster.de/planmeca/romexis-admin:latest
gitea.buchhorster.de/planmeca/romexis-mromexis-app:<version>-amd64
gitea.buchhorster.de/planmeca/romexis-mromexis-app:<version>-arm64
gitea.buchhorster.de/planmeca/romexis-mromexis-app:<version>
gitea.buchhorster.de/planmeca/romexis-mromexis-app:latest
Für Feature-Branches wird IMAGE_SUFFIX an den Tag angehängt:
IMAGE_SUFFIX=-feature-romexis-admin
Beispiel:
gitea.buchhorster.de/planmeca/romexis-server:6.5.3.444.203-feature-romexis-admin
Lokale Image-Builds
Lokale Builds laufen über Skripte.
Linux/macOS:
chmod +x scripts/build-local.sh
./scripts/build-local.sh all
Windows PowerShell:
.\scripts\build-local.ps1 -Targets all
Nur ausgewählte Image-Familien bauen:
./scripts/build-local.sh base server
./scripts/build-local.sh admin mromexis
./scripts/build-local.sh migration
Typische lokale .env Werte:
REGISTRY=gitea.buchhorster.de/planmeca
ROMEXIS_VERSION=6.5.3.444.203
IMAGE_SUFFIX=
TARGETARCH=amd64
ROMEXIS_IMAGE=romexis-server
MIGRATION_IMAGE=romexis-migration-service
ADMINISTRATION_IMAGE=romexis-admin
MROMEXIS_WEBAPP_IMAGE=romexis-mromexis-app
Weitere Build-Details stehen in BUILD.de.md.
Persistente Datenverzeichnisse
sconfig
Gemountet nach:
/opt/romexis/sconfig
Enthält persistente Romexis-Serverkonfiguration.
programdata
Gemountet nach:
/programdata/planmeca/romexis
Entspricht dem Windows-Pfad %ProgramData%\Planmeca\Romexis und enthält KeyVault sowie sicherheitsrelevante Dateien.
romexis_images
Gemountet nach:
/data/romexis_images
Speichert Patientenbilder.
romexis_cache
Gemountet nach:
/data/romexis_cache
Speichert Cache-Daten.
romexis_ergodata
Gemountet nach:
/data/romexis_ergodata
Speichert Ergo- und Zusatzdaten.
Datenbankinitialisierung
Beim ersten Start kann der Server-Entrypoint das konfigurierte Datenbank-Backend initialisieren.
Typische Aufgaben beim ersten Start:
- Auf das gewählte Datenbank-Backend warten.
- Romexis-Datenbank erstellen, falls sie fehlt.
- Romexis-Datenbankbenutzer erstellen, falls er fehlt.
- Schema- und Update-Skripte importieren, sofern zutreffend.
- Linux-Datenpfade in die Datenbank schreiben.
- Romexis Server starten.
Initialisierung deaktivieren:
ROMEXIS_INIT_DB=0
Ausführliche SQL-Ausgabe aktivieren:
DB_CREATE_VERBOSE=true
KeyVault und ProgramData
Romexis erwartet einen Windows-ähnlichen ProgramData-Pfad. Der Entrypoint setzt:
ProgramData=/programdata
Der KeyVault-Pfad wird in romexis_server.properties geschrieben.
Fehlende Schlüsseldateien werden bei Bedarf aus den im Image enthaltenen Defaults initialisiert.
RomexisConfig und Admin-Konfiguration
Der Server-Container führt RomexisConfig beim Start nicht aus.
Administrative Konfiguration erfolgt über den separaten romexis-admin Container. Dadurch bleibt der Server-Container auf den Backend-Prozess fokussiert und wird nicht mit einem grafischen Konfigurationstool vermischt.
Erweiterte Konfiguration
Datenbank-Backend
Die Backend-Auswahl erfolgt auf Compose-Ebene:
DATABASE_BACKEND=mssql
COMPOSE_FILE=docker-compose.yml:docker-compose.${DATABASE_BACKEND}.yml
Die backend-spezifische Compose-Override-Datei setzt anschließend die passenden Romexis-Datenbankvariablen.
RMI Host und Ports
SERVER_RMI_HOSTNAME=192.168.65.177
SERVER_RMI_LOW_PORT=1100
SERVER_RMI_HIGH_PORT=1120
SERVER_RMI_HOSTNAME muss für Romexis-Clients erreichbar sein.
PropertyAgent
Der Java PropertyAgent kann Romexis RxProperties über Umgebungsvariablen setzen.
Syntax:
PROPERTY_AGENT_SET_<RXPROPERTY_NAME>=<Wert>
Beispiel:
PROPERTY_AGENT_SET_KEY_B_KEYVAULT_PWD_LOCATION_SERVER_PROPERTIES=true
Der Server verwendet den Agenten hauptsächlich für Runtime-Properties. Admin
aktiviert ihn standardmäßig, und Admin sowie Client verwenden seinen
Java-17-RomexisOptionPaneUI-Null-Guard gegen die Swing-Lifecycle-
NullPointerException, die durch ein frühes PropertyChange-Event vor der
Initialisierung von m_MessageArea entsteht.
Troubleshooting
Effektive Compose-Konfiguration prüfen
docker compose config
Alle Dienste prüfen
docker compose ps
docker compose logs -f
Romexis Server prüfen
docker compose logs -f romexis
Admin Container prüfen
docker compose logs -f romexis-admin
Shell im Admin-Service öffnen
docker compose run --rm --entrypoint /bin/bash romexis-admin
Aufgelöste Romexis-Version prüfen
docker exec -it romexis-server cat /opt/romexis/version
Keystore-Alias-Probleme
Falls Romexis einen fehlenden Server-Zertifikat-Alias meldet:
docker exec -it romexis-server /opt/fix-keystore-alias.sh
Bekannte Einschränkungen
- Romexis-Binaries sind nicht Bestandteil dieses Repositorys.
- Das mRomexis-WebApp-Image erfordert Romexis 6.5.3 oder neuer.
- Romexis Admin wird über eine browserbasierte VNC-Sitzung bereitgestellt, nicht als native Desktop-Anwendung.
- Multiarch-Images werden gebaut und veröffentlicht; die funktionale Validierung hängt von Plattform und verfügbaren Romexis-Komponenten ab.
- Vor produktivem Einsatz sind Backups, Lizenzprüfung und umgebungsspezifische Tests erforderlich.
Lizenz
Romexis
Planmeca Romexis ist proprietäre Software.
Dieses Repository enthält keine Romexis-Programmdateien. Der offizielle Installer wird während des Builds anhand von romexis-payload/romexis-versions.env heruntergeladen.
Chilkat
Dieses Projekt nutzt die von Romexis benötigte Chilkat-Bibliothek. Sie wird während des Builds passend zur Zielarchitektur heruntergeladen.
Haftungsausschluss
Dieses Projekt steht in keiner Verbindung zu Planmeca Oy.
Die Nutzung erfolgt auf eigene Verantwortung.
Vor dem produktiven Einsatz werden vollständige Backups und Tests dringend empfohlen.
Romexis Docker Wiki
English
Getting Started
- Project Overview
- Architecture
- Quick Start
- Synology Quick Start
- Use with Docker + WSL in Windows
- Compose Runtime
- Configuration
- Container Images
Runtime Services
- Romexis Admin
- Romexis Client
- mRomexis Web App
- Runtime Layout
- Backup and Restore
- Troubleshooting
- Security
Build System
Database
Migration
Development
Source Documents
Deutsch
Erste Schritte
- Projektübersicht
- Architektur
- Schnellstart
- Synology Quick Start
- Nutzung mit Docker + WSL unter Windows
- Compose-Runtime
- Konfiguration
- Container-Images
Runtime-Dienste
- Romexis Admin
- Romexis Client
- mRomexis Web App
- Runtime-Layout
- Sicherung und Wiederherstellung
- Fehlerbehebung
- Sicherheit
Build-System
Datenbank
Migration
Entwicklung
Quelldokumente
Romexis Docker Project Wiki / Romexis-Docker-Projekt-Wiki
English Home · Deutsche Startseite · English source documents · Deutsche Quelldokumente · Security · Sicherheit
Internal operations and development wiki / Internes Betriebs- und Entwicklungswiki