Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
134 changes: 134 additions & 0 deletions docs/admin/configuration/euro-office.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
---
sidebar_position: 95
id: euro-office
title: Euro Office
description: Community supported Euro Office setup for OpenCloud.
draft: false
---

# Euro Office

:::note Community Documentation
This guide is provided as community documentation.

EuroOffice 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](https://github.com/EURO-office/DocumentServer) is a sovereign document editing suite based on ONLYOFFICE that integrates with OpenCloud.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
[Euro Office](https://github.com/EURO-office/DocumentServer) is a sovereign document editing suite based on ONLYOFFICE that integrates with OpenCloud.
[Euro Office](https://github.com/EURO-office/DocumentServer) 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](https://github.com/zerox80) for the initial Euro Office documentation.

## Docker Compose Setup

Euro Office is available as a compose module in the [opencloud-compose](https://github.com/opencloud-eu/opencloud-compose) project.

### With Traefik (built-in reverse proxy)

Set the following in your `.env` file:

```env
COMPOSE_FILE=docker-compose.yml:weboffice/euroffice.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:

```env
COMPOSE_FILE=docker-compose.yml:weboffice/euroffice.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](../getting-started/container/docker-compose/external-proxy).

### SSL Certificates

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

```bash
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:

```nginx
# 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

| Variable | Default | Description |
| -------------------------- | ------------------------------------ | ------------------------------------------------------- |
| `EURO_OFFICE_DOMAIN` | `euro-office.opencloud.test` | Domain of the Euro Office document server |
| `EURO_OFFICE_JWT_SECRET` | `changeme` | JWT secret for Euro Office. Change this for production. |
| `EURO_OFFICE_DOCKER_IMAGE` | `ghcr.io/euro-office/documentserver` | Docker image for the document server |
| `EURO_OFFICE_DOCKER_TAG` | `latest` | Docker image tag |

## Exposed Ports (External Proxy)

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

| Service | Host Port | Description |
| --------------------------- | --------- | ------------------------------ |
| Euro Office Document Server | `9900` | The 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`:

```text
127.0.0.1 euro-office.opencloud.test
```
9 changes: 5 additions & 4 deletions docs/admin/configuration/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,12 @@ Use these guides to tune OpenCloud behavior, integrations, and default settings.
- [Authentication and Identity Management](./authentication-and-user-management/) - Internal and external IDP setup
- [Storage](./storage/) - Storage drivers and backend setup
- [Collabora](./collabora/) - Collabora integration and document compatibility
- [Default Language](./default-language.md)
- [Set Default Quota](./set-default-quota.md)
- [Frontend Update Check](./frontend-update-check.md)
- [Link Password Policy](./link-password-policy.md)
- [Logging](./logging.md)
- [Mail Notifications](./mail-notifications.md)
- [Radicale Integration](./radicale-integration.md)
- [Set Default Quota](./set-default-quota.md)
- [Web Applications](./web-applications.md)
- [Link Password Policy](./link-password-policy.md)
- [Euro Office](./euro-office.md) - Community supported Euro Office setup
- [Default Language](./default-language.md)
- [Logging](./logging.md)