diff --git a/README.md b/README.md index 7b35c0c..5c7fa14 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ OpenCloud Compose offers a modular approach to deploying OpenCloud with several - **Standard deployment** with Traefik reverse proxy and Let's Encrypt certificates or certificates from files - **External proxy** support for environments with existing reverse proxies (like Nginx, Caddy, etc.) - **Collabora Online** integration for document editing +- **Euro Office** integration for document editing - **Keycloak and LDAP** integration for centralized identity management - **Full text search** with Apache Tika for content extraction and metadata analysis - **Monitoring** with metrics endpoints for observability and performance monitoring @@ -107,6 +108,9 @@ This setup includes: ### With Collabora Online +> [!NOTE] +> Collabora Online and [Euro Office](#with-euro-office) are mutually exclusive web office backends — both use the same `collaboration` (WOPI) service. Enable only one of them at a time. + Include Collabora for document editing using either method: > **DNS Requirements**: This setup requires DNS entries for the main OpenCloud domain, Collabora subdomain, and WOPI server subdomain. Configure DNS A/AAAA records for your domains (e.g., `cloud.example.com`, `collabora.example.com`, `wopiserver.example.com`) or use a wildcard DNS entry (`*.example.com`). @@ -127,6 +131,34 @@ COMPOSE_FILE=docker-compose.yml:weboffice/collabora.yml:traefik/opencloud.yml:tr > 127.0.0.1 wopiserver.opencloud.test > ``` +### With Euro Office + +> [!NOTE] +> Euro Office and [Collabora Online](#with-collabora-online) are mutually exclusive web office backends — both use the same `collaboration` (WOPI) service. Enable only one of them at a time. + +Include Euro Office for document editing using either method: + +> **DNS Requirements**: This setup requires DNS entries for the main OpenCloud domain, Euro Office subdomain, and WOPI server subdomain. Configure DNS A/AAAA records for your domains (e.g., `cloud.example.com`, `euro-office.example.com`, `wopiserver.example.com`) or use a wildcard DNS entry (`*.example.com`). + +Using `-f` flags: +```bash +docker compose -f docker-compose.yml -f weboffice/euroffice.yml -f traefik/opencloud.yml -f traefik/euroffice.yml up -d +``` + +Or by setting in `.env`: +``` +COMPOSE_FILE=docker-compose.yml:weboffice/euroffice.yml:traefik/opencloud.yml:traefik/euroffice.yml +``` + +> **For local development only**: Add to `/etc/hosts`: +> ``` +> 127.0.0.1 euro-office.opencloud.test +> 127.0.0.1 wopiserver.opencloud.test +> ``` + +> [!IMPORTANT] +> Set a strong `EURO_OFFICE_JWT_SECRET` in your `.env` file for production. The default value (`changeme`) is intended for local development only. + ### With Full Text Search Enable full text search capabilities with Apache Tika using either method: @@ -228,6 +260,25 @@ This exposes the necessary ports: - Collabora: 9980 - WOPI server: 9300 +To use Euro Office instead of Collabora behind an external proxy, swap the web office compose files: + +```bash +docker compose -f docker-compose.yml -f weboffice/euroffice.yml -f external-proxy/opencloud.yml -f external-proxy/euroffice.yml up -d +``` + +Or by setting in `.env`: +``` +COMPOSE_FILE=docker-compose.yml:weboffice/euroffice.yml:external-proxy/opencloud.yml:external-proxy/euroffice.yml +``` + +This exposes the necessary ports: +- OpenCloud: 9200 +- Euro Office: 9900 +- WOPI server: 9300 + +> [!WARNING] +> `external-proxy/euroffice.yml` binds the exposed ports to `127.0.0.1` only. If your external proxy runs on a different host, use `external-proxy/euroffice-exposed.yml`, which binds to all interfaces (`0.0.0.0`). Only expose these ports when you know what you are doing. + **Please note:** If you're using **Nginx Proxy Manager (NPM)**, you **should NOT** activate **"Block Common Exploits"** for the Proxy Host. Otherwise, the desktop app authentication will return **error 403 Forbidden**. @@ -342,6 +393,10 @@ Key variables: | `INSECURE` | Skip certificate validation | true | | `COLLABORA_DOMAIN` | Collabora domain | collabora.opencloud.test | | `WOPISERVER_DOMAIN` | WOPI server domain | wopiserver.opencloud.test | +| `EURO_OFFICE_DOMAIN` | Euro Office document server domain | euro-office.opencloud.test | +| `EURO_OFFICE_JWT_SECRET` | JWT secret for Euro Office (change for production!) | changeme | +| `EURO_OFFICE_DOCKER_IMAGE` | Euro Office Docker image | ghcr.io/euro-office/documentserver | +| `EURO_OFFICE_DOCKER_TAG` | Euro Office Docker tag | latest | | `TIKA_IMAGE` | Apache Tika image tag | apache/tika:slim | | `KEYCLOAK_DOMAIN` | Keycloak domain | keycloak.opencloud.test | | `KEYCLOAK_ADMIN` | Keycloak admin username | kcadmin |