Skip to main content
Version: 7.2

Euro-Office

Community Documentation

This guide is provided as community documentation.

Euro-Office is not officially supported by OpenCloud. The configuration shown here is maintained as a community contribution and is not covered by official OpenCloud support.

Use this guide as a reference for community-based setups. For officially supported office integrations, use the officially documented OpenCloud options.

Euro-Office is a sovereign document editing suite maintained by several european organisations as a joint effort. It integrates with OpenCloud via WOPI and the app provider mechanism.

warning

The Euro-Office project is currently in its early stages and may have stability issues.

Thanks to zerox80 for the initial Euro-Office documentation.

Docker Compose Setup​

Euro-Office is available as a compose module in the opencloud-compose project.

With Traefik (built-in reverse proxy)​

Set the following in your .env file:

COMPOSE_FILE=docker-compose.yml:weboffice/euro-office.yml:traefik/opencloud.yml:traefik/euroffice.yml

EURO_OFFICE_DOMAIN=euro-office.YOUR.DOMAIN
EURO_OFFICE_JWT_SECRET=YOUR.SECRET

With an external proxy (Nginx, Caddy, etc.)​

Set the following in your .env file:

COMPOSE_FILE=docker-compose.yml:weboffice/euro-office.yml:external-proxy/opencloud.yml:external-proxy/euroffice.yml

EURO_OFFICE_DOMAIN=euro-office.YOUR.DOMAIN
EURO_OFFICE_JWT_SECRET=YOUR.SECRET

Nginx Configuration for External Proxy​

When running Euro-Office behind an external Nginx reverse proxy, add the following server blocks to your Nginx configuration.

For the general OpenCloud external proxy setup, see Behind External Proxy.

SSL Certificates​

Make sure your SSL certificates also cover the Euro-Office domain. Add it to your certbot command:

sudo certbot certonly --webroot \
-w /var/www/certbot \
-d euro-office.YOUR.DOMAIN \
--email your@email.com \
--agree-tos \
--no-eff-email

Euro-Office Nginx Server Blocks​

Add this server block to your Nginx configuration alongside the OpenCloud and Collabora blocks:

# Euro Office Document Server
server {
listen 443 ssl http2;
server_name euro-office.YOUR.DOMAIN;

ssl_certificate /etc/letsencrypt/live/cloud.YOUR.DOMAIN/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/cloud.YOUR.DOMAIN/privkey.pem;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
client_max_body_size 100M;

location / {
proxy_pass http://127.0.0.1:9900;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}

location ~ ^/(web-apps/apps/.*/(main|mobile|embed)/.*\.json|doc/.*/(c|s)/.*) {
proxy_pass http://127.0.0.1:9900;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto https;
}
}

Make sure to also add euro-office.YOUR.DOMAIN to the server_name directive of your HTTP-to-HTTPS redirect block.

Environment Variables​

VariableDefaultDescription
EURO_OFFICE_DOMAINeuro-office.opencloud.testDomain of the Euro Office document server
EURO_OFFICE_JWT_SECRETchangemeJWT secret for Euro Office. Change this for production.
EURO_OFFICE_DOCKER_IMAGEghcr.io/euro-office/documentserverDocker image for the document server
EURO_OFFICE_DOCKER_TAGlatestDocker image tag

Exposed Ports (External Proxy)​

When using an external reverse proxy, the following port is exposed on the host:

ServiceHost PortDescription
Euro Office Document Server9900The document editing interface

DNS Entries​

When deploying with custom domains, make sure a DNS record points to your server for:

  • euro-office.YOUR.DOMAIN

For local testing with .test domains, add to /etc/hosts:

127.0.0.1 euro-office.opencloud.test