Clone
4
Architecture
Patrick Gniza edited this page 2026-08-21 09:04:39 +02:00

Deutsch | English

Architecture

High-Level Runtime Architecture

The runtime is split into a base Compose stack and a selected database backend override.

Microsoft SQL Server mode

+----------------------+          +----------------------+
|   Romexis Clients    |          | Browser / noVNC User |
+----------+-----------+          +----------+-----------+
           |                                 |
           | RMI / Romexis ports            | HTTP / WebSocket
           v                                 v
+----------------------+          +----------------------+
| Romexis Server       |          | Romexis Admin        |
| Docker Container     |          | noVNC Container      |
+----------+-----------+          +----------------------+
           |
           | JDBC
           v
+----------------------+
| Microsoft SQL Server |
| Docker Container     |
+----------------------+

Firebird mode

+----------------------+          +----------------------+
|   Romexis Clients    |          | Browser / noVNC User |
+----------+-----------+          +----------+-----------+
           |                                 |
           | RMI / Romexis ports            | HTTP / WebSocket
           v                                 v
+----------------------+          +----------------------+
| Romexis Server       |          | Romexis Admin        |
| Docker Container     |          | noVNC Container      |
+----------+-----------+          +----------------------+
           |
           | JDBC / Jaybird
           v
+----------------------+
| Firebird Server      |
| Docker Container     |
+----------------------+

mRomexis Web App

+----------------------+
| Browser              |
+----------+-----------+
           |
           | HTTP
           v
+----------------------+
| OpenResty / Nginx    |
| proxy container      |
+----------+-----------+
           |
           +------------------------------+
           |                              |
           v                              v
+----------------------+        +----------------------+
| mRomexis Web App     |        | Romexis Server       |
| Tomcat Container     |        | Backend port 8093    |
+----------------------+        +----------------------+

The mRomexis proxy rewrites backend proxy requests to the internal romexis service. It does not trust arbitrary hosts supplied by the browser.


Image Architecture

romexis-payload:<version>
        |
        +--> romexis-server:<version>
        +--> romexis-admin:<version>
        +--> romexis-mromexis-app:<version>

romexis-client-payload:<version>
        |
        +--> romexis-client:<version>

romexis-base-jre:11-<arch>
        |
        +--> romexis-server:<version>-<arch>

romexis-gui-runtime:1-<arch>
        |
        +--> romexis-admin:<version>-<arch>
        +--> romexis-client:<version>-<arch>

romexis-firebird-payload:latest
        |
        +--> romexis-server:<version>-<arch>

Independent service images:
  romexis-migration-service:latest
  romexis-control-agent:latest

Payload images contain version-specific installer content. Runtime images contain expensive architecture-specific dependencies that are shared across Romexis versions. The final Server, Admin and Client images therefore mainly assemble a payload with the appropriate runtime layer and component-specific startup files.

romexis-client no longer inherits from romexis-admin; both use the shared romexis-gui-runtime independently. Payload and runtime images are build-time dependencies and are not additional services in the runtime Compose stack.


Compose Architecture

docker-compose.yml
  Common services:
    - romexis
    - romexis-admin
    - romexis-app
    - proxy

docker-compose.mssql.yml
  MSSQL service and MSSQL-specific Romexis environment.

docker-compose.firebird.yml
  Firebird service and Firebird-specific Romexis environment.

The selected backend is loaded through:

DATABASE_BACKEND=mssql
COMPOSE_FILE=docker-compose.yml:docker-compose.${DATABASE_BACKEND}.yml

Persistent Data Flow

/srv/romexis-data/
  sconfig/
  programdata/
  romexis_images/
  romexis_cache/
  romexis_ergodata/
  sql-backup/
  firebird/

The same persistent data root can be used across server recreations. Backend-specific data stays in the selected database volume or host directory.


Admin Runtime Architecture

romexis-admin provides a graphical Linux container for Romexis Admin / RomexisConfig.

It starts:

Xvfb
Openbox
xcompmgr
x11vnc
noVNC / websockify

RomexisConfig can be started on demand when a VNC/noVNC client connects and stopped again when the last client disconnects.


mRomexis Web App Architecture

romexis-app is a Tomcat image containing:

/usr/local/tomcat/webapps/ROOT.war

The WAR is copied from the Romexis payload:

/opt/romexis/broker/mromexis-html.war

This file exists only in Romexis 6.5.3 and newer.