Euro-Office with Docker

Last updated: July 2026

This page describes the recommended setup path for the Euro-Office integration: a Euro-Office document server running with Docker and connected to i-net HelpDesk.

A compatible ONLYOFFICE server can also be used, but in this documentation it is the compatibility and fallback path, not the primary reference setup.

For new installations, this setup is recommended:

  • HelpDesk runs in a container.
  • The Euro-Office document server runs in a separate container.
  • Both containers are part of the same Docker network.
  • The browser accesses the editor through the public document server URL.
  • Server-to-server communication uses internal container addresses.

Full Stack with HelpDesk

The following Docker Compose example starts HelpDesk, MariaDB, and the Euro-Office document server together on a shared network:

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 Document Server

If you already have a HelpDesk installation and only want to add the document server, use this minimal setup:

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:

Start the container:

docker compose up -d

The document server needs some time to start the first time. Check the health endpoint:

curl http://localhost:8080/healthcheck

The response should be true once the server is ready.

HelpDesk Configuration

For the recommended Docker standard path, these values are typically relevant in HelpDesk:

  • Document server URL: public document server URL for browser access, e.g. https://documentserver.example.com
  • Document server JWT secret: shared JWT secret
  • Session signing secret: dedicated HelpDesk secret for session tokens
  • Internal document server URL: in the Docker standard case http://documentserver
  • Internal HelpDesk URL: in the Docker standard case http://helpdesk:9000

More details about the fields are available on the Configuration page.

HelpDesk Environment Variables

To configure the Euro-Office plugin in the HelpDesk container, use environment variables with the CONF_eurooffice__ prefix.

Variable Description Example
CONF_eurooffice__documentserver__url Public document server URL for browser access https://documentserver.example.com
CONF_eurooffice__documentserver__internal_url Internal URL for server-side downloads from HelpDesk to the document server http://documentserver
CONF_eurooffice__helpdesk__internal_url Internal URL for downloads and callbacks from the document server back to HelpDesk http://helpdesk:9000
CONF_eurooffice__documentserver__jwt_secret Shared JWT secret (shared secret)
CONF_eurooffice__session_secret Secret for signing HelpDesk session tokens (fixed secret)

Document Server Environment Variables

Variable Description Default
JWT_ENABLED Enable JWT authentication for callbacks and editor configurations false
JWT_SECRET Shared secret for JWT token signing (empty, JWT disabled)
JWT_HEADER HTTP header used for JWT transmission in callbacks Authorization
ALLOW_PRIVATE_IP_ADDRESS Allow requests to private IP addresses true
ALLOW_META_IP_ADDRESS Allow META IP address access false
PLUGINS_ENABLED Enable document server plugins false
SECURE_LINK_SECRET Secret for secure document links (empty, disabled)
URL_EXTENSION URL extension pattern for incoming requests /
TZ Container timezone system default

Networking and Reachability

The document server must be reachable cleanly from three directions:

  1. Browser to document server: The browser loads the editor, JavaScript, CSS, and WebSocket connections through the public document server URL.
  2. Document server to HelpDesk: The document server sends callbacks and downloads document content from HelpDesk.
  3. HelpDesk to document server: During callback processing, HelpDesk downloads the edited file from the document server.

In the Docker standard case, this typically results in:

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

  HelpDesk (internal)   ───> documentserver:80    (server-side file downloads)
  DocumentServer        ───> helpdesk:9000        (callbacks, content downloads)

If the document server runs on a different host or network, replace the internal Docker service names with real host names or IP addresses.

Example:

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

When HelpDesk runs natively on the same host as the Docker document server, http://host.docker.internal:9000 can be used as the internal HelpDesk URL. This allows the document server to call back to a non-containerized HelpDesk.

JWT Authentication

JWT authentication protects the communication between HelpDesk and the document server:

  • Editor configuration: HelpDesk signs the editor configuration with the shared JWT secret.
  • Callbacks: The document server sends a signed JWT token with save notifications to HelpDesk.
  • Algorithm: HS256 (HMAC with SHA-256)
  • Verification: The signature is checked server-side.

For production environments, JWT should be enabled.

Compatible ONLYOFFICE Server

If you want to use a compatible ONLYOFFICE server instead of Euro-Office, you can use the same overall setup. The main difference is the Docker image.

Replace this in the Compose example:

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

with:

image: onlyoffice/documentserver:latest

For further ONLYOFFICE-specific notes, see ONLYOFFICE on Windows.

Additional Information