Euro-Office mit Docker

Stand: Juli 2026

Diese Seite beschreibt den empfohlenen Setup-Pfad für die Euro-Office-Integration: einen Euro-Office-Dokumentserver per Docker und die Anbindung an i-net HelpDesk.

ONLYOFFICE kann ebenfalls verwendet werden, ist in dieser Dokumentation aber der Kompatibilitäts- und Fallback-Pfad, nicht der primäre Referenzaufbau.

Empfohlener Standardpfad

Für neue Installationen wird dieser Aufbau empfohlen:

  • HelpDesk läuft in einem Container.
  • Der Euro-Office-Dokumentserver läuft in einem separaten Container.
  • Beide Container befinden sich im selben Docker-Netzwerk.
  • Der Browser greift über die öffentliche Dokumentserver-URL auf den Editor zu.
  • Die Server-zu-Server-Kommunikation verwendet interne Container-Adressen.

Full Stack mit HelpDesk

Das folgende Docker-Compose-Beispiel startet HelpDesk, MariaDB und den Euro-Office-Dokumentserver gemeinsam in einem geteilten Netzwerk:

services:
  helpdesk:
    image: your-helpdesk-image:latest
    container_name: helpdesk
    restart: always
    ports:
      - "9000:9000"
    environment:
      - CONF_eurooffice__documentserver__url=https://documentserver.example.com
      - CONF_eurooffice__documentserver__internal_url=http://documentserver
      - CONF_eurooffice__helpdesk__internal_url=http://helpdesk:9000
      - CONF_eurooffice__documentserver__jwt_secret=your-shared-jwt-secret
      - CONF_eurooffice__session_secret=your-session-signing-secret
    depends_on:
      - mariadb
      - documentserver

  mariadb:
    image: mariadb:10.11
    container_name: helpdesk-mariadb
    restart: always
    environment:
      - MARIADB_ROOT_PASSWORD=root-password
      - MARIADB_DATABASE=helpdesk
    volumes:
      - mariadb_data:/var/lib/mysql

  documentserver:
    image: ghcr.io/euro-office/documentserver:latest
    container_name: documentserver
    restart: always
    environment:
      - JWT_ENABLED=true
      - JWT_SECRET=your-shared-jwt-secret
      - JWT_HEADER=Authorization
      - ALLOW_PRIVATE_IP_ADDRESS=true
      - ALLOW_META_IP_ADDRESS=false
      - PLUGINS_ENABLED=false
    volumes:
      - documentserver_data:/var/www/onlyoffice/Data
      - documentserver_logs:/var/log/onlyoffice

volumes:
  mariadb_data:
  documentserver_data:
  documentserver_logs:

Standalone Dokumentserver

Wenn bereits eine HelpDesk-Installation vorhanden ist und nur der Dokumentserver ergänzt werden soll, kann dieses minimale Setup verwendet werden:

services:
  documentserver:
    image: ghcr.io/euro-office/documentserver:latest
    container_name: documentserver
    restart: always
    ports:
      - "8080:80"
    environment:
      - JWT_ENABLED=true
      - JWT_SECRET=your-shared-jwt-secret
      - JWT_HEADER=Authorization
      - ALLOW_PRIVATE_IP_ADDRESS=true
      - ALLOW_META_IP_ADDRESS=false
      - PLUGINS_ENABLED=false
    volumes:
      - documentserver_data:/var/www/onlyoffice/Data
      - documentserver_logs:/var/log/onlyoffice

volumes:
  documentserver_data:
  documentserver_logs:

Starten des Containers:

docker compose up -d

Der Dokumentserver benötigt beim ersten Start etwas Zeit. Prüfen Sie den Health-Endpunkt:

curl http://localhost:8080/healthcheck

Die Antwort sollte true sein, sobald der Server bereit ist.

HelpDesk-Konfiguration

Für den empfohlenen Docker-Standardpfad sind in HelpDesk typischerweise diese Werte relevant:

  • Document server URL: öffentliche Dokumentserver-URL für den Browserzugriff, z. B. https://documentserver.example.com
  • Document server JWT secret: gemeinsames JWT-Secret
  • Session signing secret: eigenes HelpDesk-Secret für Sitzungstokens
  • Internal document server URL: im Docker-Standardfall http://documentserver
  • Internal HelpDesk URL: im Docker-Standardfall http://helpdesk:9000

Weitere Details zu den Feldern stehen auf der Seite Konfiguration.

HelpDesk-Umgebungsvariablen

Um das Euro-Office-Plugin im HelpDesk-Container zu konfigurieren, verwenden Sie Umgebungsvariablen mit dem Präfix CONF_eurooffice__.

Variable Beschreibung Beispiel
CONF_eurooffice__documentserver__url Öffentliche Dokumentserver-URL für Browser https://documentserver.example.com
CONF_eurooffice__documentserver__internal_url Interne URL für serverseitige Downloads von HelpDesk zum Dokumentserver http://documentserver
CONF_eurooffice__helpdesk__internal_url Interne URL für Downloads und Callbacks vom Dokumentserver zu HelpDesk http://helpdesk:9000
CONF_eurooffice__documentserver__jwt_secret Gemeinsames JWT-Secret (gemeinsames Secret)
CONF_eurooffice__session_secret Secret zum Signieren der HelpDesk-Sitzungstokens (festes Secret)

Umgebungsvariablen des Dokumentservers

Variable Beschreibung Standard
JWT_ENABLED Aktiviert die JWT-Authentifizierung für Callbacks und Editor-Konfigurationen false
JWT_SECRET Gemeinsames Secret für die JWT-Token-Signierung (leer, JWT deaktiviert)
JWT_HEADER HTTP-Header-Name für die JWT-Übertragung in Callbacks Authorization
ALLOW_PRIVATE_IP_ADDRESS Erlaubt Anfragen an private IP-Adressen true
ALLOW_META_IP_ADDRESS Erlaubt META-IP-Adressenzugriffe false
PLUGINS_ENABLED Aktiviert Dokumentserver-Plugins false
SECURE_LINK_SECRET Secret für sichere Dokument-Links (leer, deaktiviert)
URL_EXTENSION URL-Erweiterungsmuster für eingehende Anfragen /
TZ Zeitzone für den Container Systemstandard

Netzwerk und Erreichbarkeit

Der Dokumentserver muss aus drei Richtungen sauber erreichbar sein:

  1. Browser zum Dokumentserver: Der Browser lädt Editor, JavaScript, CSS und WebSocket-Verbindungen über die öffentliche Dokumentserver-URL.
  2. Dokumentserver zu HelpDesk: Der Dokumentserver sendet Callbacks und lädt Dokumentinhalte von HelpDesk herunter.
  3. HelpDesk zum Dokumentserver: HelpDesk lädt während der Callback-Verarbeitung die bearbeitete Datei vom Dokumentserver herunter.

Im Docker-Standardfall ergibt sich daraus typischerweise:

  Browser                     Docker                      Docker
    GET editor JS/API  ────> documentserver:80
    GET /office-editor ────> helpdesk:9000

  HelpDesk (intern)     ───> documentserver:80    (serverseitige Datei-Downloads)
  Dokumentserver        ───> helpdesk:9000        (Callbacks, Inhaltsdownloads)

Wenn der Dokumentserver auf einem anderen Host oder Netzwerk läuft, müssen die internen Docker-Service-Namen durch reale Hostnamen oder IP-Adressen ersetzt werden.

Beispiel:

CONF_eurooffice__documentserver__internal_url=http://192.168.1.100
CONF_eurooffice__helpdesk__internal_url=http://192.168.1.200:9000

Wenn HelpDesk nativ auf demselben Host wie der Docker-Dokumentserver läuft, kann http://host.docker.internal:9000 als interne HelpDesk-URL verwendet werden. Damit kann der Dokumentserver ein nicht containerisiertes HelpDesk erreichen.

JWT-Authentifizierung

Die JWT-Authentifizierung schützt die Kommunikation zwischen HelpDesk und Dokumentserver:

  • Editor-Konfiguration: HelpDesk signiert die Editor-Konfiguration mit dem gemeinsamen JWT-Secret.
  • Callbacks: Der Dokumentserver sendet ein signiertes JWT-Token mit den Speicherbenachrichtigungen an HelpDesk.
  • Algorithmus: HS256 (HMAC mit SHA-256)
  • Verifikation: Die Signatur wird serverseitig geprüft.

Für produktive Umgebungen sollte JWT aktiviert sein.

Kompatibler ONLYOFFICE-Server

Wenn statt Euro-Office ein kompatibler ONLYOFFICE-Server verwendet werden soll, kann derselbe grundsätzliche Aufbau verwendet werden. Der Unterschied liegt hauptsächlich im verwendeten Docker-Image.

Dafür ersetzen Sie im Compose-Beispiel:

image: ghcr.io/euro-office/documentserver:latest

mit:

image: onlyoffice/documentserver:latest

Weitere ONLYOFFICE-spezifische Hinweise finden Sie unter ONLYOFFICE unter Windows.

Weitere Informationen