Installing via Docker
The quickest way to run Euro-Office Document Server is via the official Docker image.
Prerequisites
Docker Engine 20.10 or later
4 GB RAM minimum
5 GB disk space for the image
Quick start
docker run -d \
--name euro-office \
--restart=unless-stopped \
-p 80:80 \
-e JWT_ENABLED=true \
-e JWT_SECRET=your-secret \
ghcr.io/euro-office/documentserver:latest
Warning
Replace your-secret with a strong random string. The JWT secret is shared between the
Document Server and the Nextcloud connector app — both must use the same value.
The server is ready when the health check returns true:
curl http://localhost/healthcheck
Persistent data
By default, documents and configuration are lost when the container is removed. Mount volumes to persist them:
docker run -d \
--name euro-office \
--restart=unless-stopped \
-p 80:80 \
-e JWT_ENABLED=true \
-e JWT_SECRET=your-secret \
-v /path/to/data:/var/lib/euro-office/documentserver \
-v /path/to/logs:/var/log/euro-office/documentserver \
-v /path/to/config:/etc/euro-office/documentserver \
ghcr.io/euro-office/documentserver:latest
Environment variables
Variable |
Default |
Description |
|---|---|---|
|
|
Enable JWT authentication |
|
— |
Shared secret — set this in production |
|
|
HTTP header carrying the JWT |
|
|
Enable WOPI protocol support |
|
|
Allow the Document Server to fetch files from private IP ranges |
|
|
Number of nginx worker processes |
|
|
Regenerate font cache on startup |
|
|
PostgreSQL host (for external database) |
|
|
PostgreSQL database name |
|
|
PostgreSQL user |
|
|
Redis host (for external Redis) |
|
|
RabbitMQ host (for external RabbitMQ) |
Updating
docker pull ghcr.io/euro-office/documentserver:latest
docker stop euro-office && docker rm euro-office
# re-run with the same docker run command used during installation
Uninstalling
docker stop euro-office
docker rm euro-office
docker rmi ghcr.io/euro-office/documentserver:latest