Skip to content

WIP: Add Euro Office (ONLYOFFICE) integration#271

Open
zerox80 wants to merge 2 commits intoopencloud-eu:mainfrom
zerox80:main
Open

WIP: Add Euro Office (ONLYOFFICE) integration#271
zerox80 wants to merge 2 commits intoopencloud-eu:mainfrom
zerox80:main

Conversation

@zerox80
Copy link
Copy Markdown

@zerox80 zerox80 commented Apr 10, 2026

Add Euro Office (ONLYOFFICE) integration

Summary

  • Add Euro Office as a first-class web office option alongside Collabora
  • Support for both Traefik and external reverse proxy (Nginx, Caddy, etc.)
  • Include app-registry, CSP configuration, and all required config files
  • Follow the exact same modular pattern as the existing Collabora integration

Details

This PR adds full Euro Office (based on EURO-office/DocumentServer) integration to opencloud-compose, modeled after the existing Collabora setup.

New files:

File Purpose
weboffice/euroffice.yml Service definitions: collaboration-eo, euro-office, and OpenCloud env overrides
traefik/euroffice.yml Traefik routing with network aliases and WebSocket middleware
external-proxy/euroffice.yml Localhost port exposure (9302 for WOPI, 9900 for Document Server)
external-proxy/euroffice-exposed.yml All-interfaces port exposure variant
config/euro-office/entrypoint-override.sh Startup script handling WOPI key generation, JWT config, and service init
config/euro-office/onlyoffice-docs-formats.json Supported document format definitions
config/euro-office/app-registry.yaml MIME type → app mappings (OOXML → Euro-Office, ODF → Collabora)

Modified files:

File Change
config/opencloud/csp.yaml Add Euro Office domain to frame-src and img-src
.env.example Add Euro Office env vars and COMPOSE_FILE examples for all combinations

Supported deployment modes:

# Euro Office only (Traefik)
COMPOSE_FILE=docker-compose.yml:weboffice/euroffice.yml:traefik/opencloud.yml:traefik/euroffice.yml

# Euro Office only (external proxy)
COMPOSE_FILE=docker-compose.yml:weboffice/euroffice.yml:external-proxy/opencloud.yml:external-proxy/euroffice.yml

# Both Collabora + Euro Office (Traefik)
COMPOSE_FILE=docker-compose.yml:weboffice/collabora.yml:weboffice/euroffice.yml:traefik/opencloud.yml:traefik/collabora.yml:traefik/euroffice.yml

# Both Collabora + Euro Office (external proxy)
COMPOSE_FILE=docker-compose.yml:weboffice/collabora.yml:weboffice/euroffice.yml:external-proxy/opencloud.yml:external-proxy/collabora.yml:external-proxy/euroffice.yml

How this was built

This integration was vibe-coded using Claude Opus 4.6 (max effort) with the following repositories as input context to eliminate hallucination:

All config files, environment variables, service names, and port mappings were derived from reading the actual source code across these repos — not from guessing.

Test plan

  • Tested with Nginx reverse proxy on a public server
  • Tested Euro Office standalone (without Collabora) — works
  • Verified CSP headers resolve correctly with custom domains (not .opencloud.test defaults)
  • Verified WOPI discovery endpoint responds (/hosting/discovery)
  • Verified document editing works (opening .docx in Euro Office)
  • Test with Traefik (built-in reverse proxy)
  • Test both Collabora + Euro Office simultaneously

@micbar micbar changed the title Add Euro Office (ONLYOFFICE) integration WIP: Add Euro Office (ONLYOFFICE) integration Apr 10, 2026
@micbar
Copy link
Copy Markdown
Member

micbar commented Apr 10, 2026

@zerox80 Thanks for your contribution!

We need to wait until the official status of EuroOffice is clarified.

This branch should be kept as Work In Progress until then.

@streaminganger
Copy link
Copy Markdown
Contributor

agreed with above. they dont have a proper release cycle yet

i think its also fair to mention the work to @tiran133 who was the first to get EuroOffice working in Opencloud and figure out the onlyoffice-docs-formats trick

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants