Compare commits

..

6 Commits

Author SHA1 Message Date
Michael Barz
c5ab316d45 Merge pull request #311 from Cassolette/patch/eo-clean
Euro office fixups
2026-06-18 17:16:09 +02:00
Michael Barz
b3b820f32b Merge pull request #308 from opencloud-eu/docs-eurooffice
docs: add euro office
2026-06-18 17:02:39 +02:00
v.scharf
0636b2c871 set OC_EVENTS_ENDPOINT for collaboration (EO) 2026-06-18 14:36:53 +00:00
cazo
03ba22ed4e fix: cleanup no longer required scripts
WOPI fixes have been integrated into the docker image from v9.3.2-rc.1 onwards
2026-06-18 14:36:52 +00:00
cazo
4531d137ef feat: system fonts to EO
matching what was done for Collabora.
2026-06-18 13:11:00 +00:00
Michael Barz
75941df428 docs: add euro office 2026-06-17 17:42:59 +02:00
5 changed files with 59 additions and 668 deletions

1
.gitattributes vendored
View File

@@ -1 +0,0 @@
config/euro-office/init-wopi.sh text eol=lf

View File

@@ -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 |

View File

@@ -1,57 +0,0 @@
#!/bin/sh
set -e
CONFIG_FILE="/etc/onlyoffice/documentserver/local.json"
CONFIG_DIR="$(dirname "$CONFIG_FILE")"
DATA_DIR="/var/www/onlyoffice/Data"
WOPI_PRIVATE_KEY="${DATA_DIR}/wopi_private.key"
WOPI_PUBLIC_KEY="${DATA_DIR}/wopi_public.key"
if [ "${WOPI_ENABLED:-false}" = "true" ]; then
mkdir -p "$CONFIG_DIR" "$DATA_DIR"
[ -f "$CONFIG_FILE" ] || echo '{}' > "$CONFIG_FILE"
if [ ! -f "$WOPI_PRIVATE_KEY" ]; then
echo "Generating WOPI private key..."
openssl genpkey -algorithm RSA -outform PEM -out "$WOPI_PRIVATE_KEY" >/dev/null 2>&1
fi
if [ ! -f "$WOPI_PUBLIC_KEY" ]; then
echo "Generating WOPI public key..."
openssl rsa -RSAPublicKey_out -in "$WOPI_PRIVATE_KEY" \
-outform "MS PUBLICKEYBLOB" -out "$WOPI_PUBLIC_KEY" >/dev/null 2>&1
fi
WOPI_PRIVATE_KEY_CONTENT=$(cat "$WOPI_PRIVATE_KEY")
WOPI_PUBLIC_KEY_CONTENT=$(openssl base64 -in "$WOPI_PUBLIC_KEY" -A)
WOPI_MODULUS=$(openssl rsa -pubin -inform "MS PUBLICKEYBLOB" -modulus -noout \
-in "$WOPI_PUBLIC_KEY" | sed 's/Modulus=//' | \
python3 -c "import sys,binascii,base64; print(base64.b64encode(binascii.unhexlify(sys.stdin.read().strip())).decode())")
WOPI_EXPONENT=$(openssl rsa -pubin -inform "MS PUBLICKEYBLOB" -text -noout \
-in "$WOPI_PUBLIC_KEY" | grep -oP '(?<=Exponent: )\d+')
# Merge WOPI config into local.json
jq \
--argjson wopiEnabled "true" \
--arg wopiPrivateKey "$WOPI_PRIVATE_KEY_CONTENT" \
--arg wopiPublicKey "$WOPI_PUBLIC_KEY_CONTENT" \
--arg wopiModulus "$WOPI_MODULUS" \
--arg wopiExponent "$WOPI_EXPONENT" \
'.wopi.enable = $wopiEnabled |
.wopi.privateKey = $wopiPrivateKey |
.wopi.privateKeyOld = $wopiPrivateKey |
.wopi.publicKey = $wopiPublicKey |
.wopi.publicKeyOld = $wopiPublicKey |
.wopi.modulus = $wopiModulus |
.wopi.modulusOld = $wopiModulus |
.wopi.exponent = ($wopiExponent | tonumber) |
.wopi.exponentOld = ($wopiExponent | tonumber)' \
"$CONFIG_FILE" > "${CONFIG_FILE}.tmp"
mv "${CONFIG_FILE}.tmp" "$CONFIG_FILE"
echo "WOPI configuration injected successfully."
fi
# Hand over to the official DocumentServer entrypoint
exec /entrypoint.sh "$@"

View File

@@ -1,604 +0,0 @@
[
{
"name": "doc",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "md", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/msword"]
},
{
"name": "docm",
"type": "word",
"actions": ["view", "edit", "review", "comment", "encrypt"],
"convert": ["docx", "bmp", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "md", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/vnd.ms-word.document.macroenabled.12"]
},
{
"name": "docx",
"type": "word",
"actions": ["view", "edit", "review", "comment", "encrypt"],
"convert": ["bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "md", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/vnd.openxmlformats-officedocument.wordprocessingml.document"]
},
{
"name": "dot",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "md", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/msword"]
},
{
"name": "dotm",
"type": "word",
"actions": ["view", "edit", "review", "comment", "encrypt"],
"convert": ["docx", "bmp", "docm", "dotx", "epub", "fb2", "gif", "html", "jpg", "md", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/vnd.ms-word.template.macroenabled.12"]
},
{
"name": "dotx",
"type": "word",
"actions": ["view", "edit", "review", "comment", "encrypt"],
"convert": ["docx", "bmp", "docm", "dotm", "epub", "fb2", "gif", "html", "jpg", "md", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/vnd.openxmlformats-officedocument.wordprocessingml.template"]
},
{
"name": "epub",
"type": "word",
"actions": ["view", "lossy-edit", "auto-convert"],
"convert":["docx", "bmp", "docm", "dotm", "dotx", "fb2", "gif", "html", "jpg", "md", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/epub+zip"]
},
{
"name": "fb2",
"type": "word",
"actions": ["view", "lossy-edit", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "gif", "html", "jpg", "md", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["text/fb2+xml", "application/x-fictionbook+xml"]
},
{
"name": "fodt",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "md", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/vnd.oasis.opendocument.text-flat-xml"]
},
{
"name": "gdoc",
"type": "word",
"actions": ["view"],
"convert": [],
"mime": ["application/vnd.google-apps.document"]
},
{
"name": "hml",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "md", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["multipart/related"]
},
{
"name": "htm",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "jpg", "md", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["text/html"]
},
{
"name": "html",
"type": "word",
"actions": ["view", "lossy-edit", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "jpg", "md", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["text/html"]
},
{
"name": "hwp",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "md", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/x-hwp", "application/x-hwp-v5"]
},
{
"name": "hwpx",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "md", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/x-hwpx"]
},
{
"name": "md",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["text/markdown"]
},
{
"name": "mht",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "md", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["message/rfc822"]
},
{
"name": "mhtml",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "md", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["message/rfc822"]
},
{
"name": "odt",
"type": "word",
"actions": ["view", "lossy-edit", "auto-convert", "review", "comment", "encrypt"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "md", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/vnd.oasis.opendocument.text"]
},
{
"name": "ott",
"type": "word",
"actions": ["view", "lossy-edit", "auto-convert", "review", "comment", "encrypt"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "md", "odt", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/vnd.oasis.opendocument.text-template"]
},
{
"name": "pages",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "md", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/vnd.apple.pages", "application/x-iwork-pages-sffpages"]
},
{
"name": "rtf",
"type": "word",
"actions": ["view", "lossy-edit", "auto-convert", "review", "comment"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "md", "odt", "ott", "pdf", "pdfa", "png", "txt"],
"mime": ["application/rtf", "text/rtf"]
},
{
"name": "stw",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "md", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/vnd.sun.xml.writer.template"]
},
{
"name": "sxw",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "md", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/vnd.sun.xml.writer"]
},
{
"name": "txt",
"type": "word",
"actions": ["view", "lossy-edit"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "md", "odt", "ott", "pdf", "pdfa", "png", "rtf"],
"mime": ["text/plain"]
},
{
"name": "wps",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "md", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/vnd.ms-works"]
},
{
"name": "wpt",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "md", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": []
},
{
"name": "xml",
"type": "word",
"actions": ["view", "auto-convert"],
"convert": ["docx", "xlsx", "bmp", "csv", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "md", "ods", "odt", "ots", "ott", "pdf", "pdfa", "png", "rtf", "txt", "tsv", "xlsm", "xltm", "xltx"],
"mime": ["application/xml", "text/xml"]
},
{
"name": "csv",
"type": "cell",
"actions": ["view", "lossy-edit", "customfilter"],
"convert": ["xlsx", "bmp", "gif", "jpg", "ods", "ots", "pdf", "pdfa", "png", "tsv", "xlsm", "xltm", "xltx"],
"mime": ["text/csv", "application/csv", "text/x-comma-separated-values", "text/x-csv"]
},
{
"name": "et",
"type": "cell",
"actions": ["view", "auto-convert"],
"convert": ["xlsx", "bmp", "csv", "gif", "jpg", "ods", "ots", "pdf", "pdfa", "png", "tsv", "xlsm", "xltm", "xltx"],
"mime": []
},
{
"name": "ett",
"type": "cell",
"actions": ["view", "auto-convert"],
"convert": ["xlsx", "bmp", "csv", "gif", "jpg", "ods", "ots", "pdf", "pdfa", "png", "tsv", "xlsm", "xltm", "xltx"],
"mime": []
},
{
"name": "fods",
"type": "cell",
"actions": ["view", "auto-convert"],
"convert": ["xlsx", "bmp", "csv", "gif", "jpg", "ods", "ots", "pdf", "pdfa", "png", "tsv", "xlsm", "xltm", "xltx"],
"mime": ["application/vnd.oasis.opendocument.spreadsheet-flat-xml"]
},
{
"name": "gsheet",
"type": "cell",
"actions": ["view"],
"convert": [],
"mime": ["application/vnd.google-apps.spreadsheet"]
},
{
"name": "numbers",
"type": "cell",
"actions": ["view", "auto-convert"],
"convert": ["xlsx", "bmp", "csv", "gif", "jpg", "ods", "ots", "pdf", "pdfa", "png", "tsv", "xlsm", "xltm", "xltx"],
"mime": ["application/vnd.apple.numbers", "application/x-iwork-numbers-sffnumbers"]
},
{
"name": "ods",
"type": "cell",
"actions": ["view", "lossy-edit", "auto-convert", "customfilter", "comment", "encrypt"],
"convert": ["xlsx", "bmp", "csv", "gif", "jpg", "ots", "pdf", "pdfa", "png", "tsv", "xlsm", "xltm", "xltx"],
"mime": ["application/vnd.oasis.opendocument.spreadsheet"]
},
{
"name": "ots",
"type": "cell",
"actions": ["view", "lossy-edit", "auto-convert", "customfilter", "comment", "encrypt"],
"convert": ["xlsx", "bmp", "csv", "gif", "jpg", "ods", "pdf", "pdfa", "png", "tsv", "tsv", "xlsm", "xltm", "xltx"],
"mime": ["application/vnd.oasis.opendocument.spreadsheet-template"]
},
{
"name": "tsv",
"type": "cell",
"actions": ["view", "lossy-edit", "customfilter"],
"convert": ["xlsx", "bmp", "csv", "gif", "jpg", "ods", "ots", "pdf", "pdfa", "png", "xlsm", "xltm", "xltx"],
"mime": ["text/tab-separated-values"]
},
{
"name": "sxc",
"type": "cell",
"actions": ["view", "auto-convert"],
"convert": ["xlsx", "bmp", "csv", "gif", "jpg", "ods", "ots", "pdf", "pdfa", "png", "tsv", "xlsm", "xltm", "xltx"],
"mime": ["application/vnd.sun.xml.calc"]
},
{
"name": "xls",
"type": "cell",
"actions": ["view", "auto-convert"],
"convert": ["xlsx", "bmp", "csv", "gif", "jpg", "ods", "ots", "pdf", "pdfa", "png", "tsv", "xlsm", "xltm", "xltx"],
"mime": ["application/vnd.ms-excel"]
},
{
"name": "xlsb",
"type": "cell",
"actions": ["view", "edit", "customfilter", "comment", "encrypt"],
"convert": ["xlsx", "bmp", "csv", "gif", "jpg", "ods", "ots", "pdf", "pdfa", "png", "tsv", "xlsm", "xltm", "xltx"],
"mime": ["application/vnd.ms-excel.sheet.binary.macroenabled.12"]
},
{
"name": "xlsm",
"type": "cell",
"actions": ["view", "edit", "customfilter", "comment", "encrypt"],
"convert": ["xlsx", "bmp", "csv", "gif", "jpg", "ods", "ots", "pdf", "pdfa", "png", "tsv", "xltm", "xltx"],
"mime": ["application/vnd.ms-excel.sheet.macroenabled.12", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"]
},
{
"name": "xlsx",
"type": "cell",
"actions": ["view", "edit", "customfilter", "comment", "encrypt"],
"convert": ["bmp", "csv", "gif", "jpg", "ods", "ots", "pdf", "pdfa", "png", "tsv", "xlsm", "xltm", "xltx"],
"mime": ["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"]
},
{
"name": "xlt",
"type": "cell",
"actions": ["view", "auto-convert"],
"convert": ["xlsx", "bmp", "csv", "gif", "jpg", "ods", "ots", "pdf", "pdfa", "png", "tsv", "xlsm", "xltm", "xltx"],
"mime": ["application/vnd.ms-excel"]
},
{
"name": "xltm",
"type": "cell",
"actions": ["view", "edit", "customfilter", "comment", "encrypt"],
"convert": ["xlsx", "bmp", "csv", "gif", "jpg", "ods", "ots", "pdf", "pdfa", "png", "tsv", "xlsm", "xltx"],
"mime": ["application/vnd.ms-excel.template.macroenabled.12"]
},
{
"name": "xltx",
"type": "cell",
"actions": ["view", "edit", "customfilter", "comment", "encrypt"],
"convert": ["xlsx", "bmp", "csv", "gif", "jpg", "ods", "ots", "pdf", "pdfa", "png", "tsv", "xlsm", "xltm"],
"mime": ["application/vnd.openxmlformats-officedocument.spreadsheetml.template"]
},
{
"name": "dps",
"type": "slide",
"actions": ["view", "auto-convert"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potm", "potx", "ppsm", "ppsx", "pptm"],
"mime": []
},
{
"name": "dpt",
"type": "slide",
"actions": ["view", "auto-convert"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potm", "potx", "ppsm", "ppsx", "pptm"],
"mime": []
},
{
"name": "fodp",
"type": "slide",
"actions": ["view", "auto-convert"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potm", "potx", "ppsm", "ppsx", "pptm"],
"mime": ["application/vnd.oasis.opendocument.presentation-flat-xml"]
},
{
"name": "gslides",
"type": "slide",
"actions": ["view"],
"convert": [],
"mime": ["application/vnd.google-apps.presentation"]
},
{
"name": "key",
"type": "slide",
"actions": ["view", "auto-convert"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potm", "potx", "ppsm", "ppsx", "pptm", "txt"],
"mime": ["application/vnd.apple.keynote", "application/x-iwork-keynote-sffkey", "application/vnd.apple.keynote.13"]
},
{
"name": "odg",
"type": "slide",
"actions": ["view", "auto-convert"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potm", "potx", "ppsm", "ppsx", "pptm", "txt"],
"mime": ["application/vnd.oasis.opendocument.graphics", "application/x-vnd.oasis.opendocument.graphics"]
},
{
"name": "odp",
"type": "slide",
"actions": ["view", "lossy-edit", "auto-convert", "comment", "encrypt"],
"convert": ["pptx", "bmp", "gif", "jpg", "otp", "pdf", "pdfa", "png", "potm", "potx", "ppsm", "ppsx", "pptm", "txt"],
"mime": ["application/vnd.oasis.opendocument.presentation"]
},
{
"name": "otp",
"type": "slide",
"actions": ["view", "lossy-edit", "auto-convert", "comment", "encrypt"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "pdf", "pdfa", "png", "potm", "potx", "ppsm", "ppsx", "pptm", "txt"],
"mime": ["application/vnd.oasis.opendocument.presentation-template"]
},
{
"name": "pot",
"type": "slide",
"actions": ["view", "auto-convert"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potm", "potx", "ppsm", "ppsx", "pptm", "txt"],
"mime": ["application/vnd.ms-powerpoint"]
},
{
"name": "potm",
"type": "slide",
"actions": ["view", "edit", "comment", "encrypt"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potx", "ppsm", "ppsx", "pptm", "txt"],
"mime": ["application/vnd.ms-powerpoint.template.macroenabled.12"]
},
{
"name": "potx",
"type": "slide",
"actions": ["view", "edit", "comment", "encrypt"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potm", "ppsm", "ppsx", "pptm", "txt"],
"mime": ["application/vnd.openxmlformats-officedocument.presentationml.template"]
},
{
"name": "pps",
"type": "slide",
"actions": ["view", "auto-convert"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potm", "potx", "ppsm", "ppsx", "pptm", "txt"],
"mime": ["application/vnd.ms-powerpoint"]
},
{
"name": "ppsm",
"type": "slide",
"actions": ["view", "edit", "comment", "encrypt"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potm", "potx", "ppsx", "pptm", "txt"],
"mime": ["application/vnd.ms-powerpoint.slideshow.macroenabled.12"]
},
{
"name": "ppsx",
"type": "slide",
"actions": ["view", "edit", "comment", "encrypt"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potm", "potx", "ppsm", "pptm", "txt"],
"mime": ["application/vnd.openxmlformats-officedocument.presentationml.slideshow"]
},
{
"name": "ppt",
"type": "slide",
"actions": ["view", "auto-convert"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potm", "potx", "ppsm", "ppsx", "pptm", "txt"],
"mime": ["application/vnd.ms-powerpoint"]
},
{
"name": "pptm",
"type": "slide",
"actions": ["view", "edit", "comment", "encrypt"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potm", "potx", "ppsm", "ppsx", "txt"],
"mime": ["application/vnd.ms-powerpoint.presentation.macroenabled.12"]
},
{
"name": "pptx",
"type": "slide",
"actions": ["view", "edit", "comment", "encrypt"],
"convert": ["bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potm", "potx", "ppsm", "ppsx", "pptm", "txt"],
"mime": ["application/vnd.openxmlformats-officedocument.presentationml.presentation"]
},
{
"name": "sxi",
"type": "slide",
"actions": ["view", "auto-convert"],
"convert": ["pptx", "bmp", "gif", "jpg", "odp", "otp", "pdf", "pdfa", "png", "potm", "potx", "ppsm", "ppsx", "pptm", "txt"],
"mime": ["application/vnd.sun.xml.impress"]
},
{
"name": "djvu",
"type": "pdf",
"actions": ["view"],
"convert": ["bmp", "gif", "jpg", "pdf", "pdfa", "png"],
"mime": ["image/vnd.djvu"]
},
{
"name": "docxf",
"type": "pdf",
"actions": ["view"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "md", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/vnd.openxmlformats-officedocument.wordprocessingml.document.docxf"]
},
{
"name": "oform",
"type": "pdf",
"actions": ["view"],
"convert": ["pdf"],
"mime": ["application/vnd.openxmlformats-officedocument.wordprocessingml.document.oform"]
},
{
"name": "oxps",
"type": "pdf",
"actions": ["view"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "md", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/oxps"]
},
{
"name": "pdf",
"type": "pdf",
"actions": ["view", "edit", "comment", "fill", "encrypt"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "md", "odt", "ott", "pdfa", "png", "rtf", "txt"],
"mime": ["application/pdf", "application/acrobat", "application/nappdf", "application/x-pdf", "image/pdf"]
},
{
"name": "xps",
"type": "pdf",
"actions": ["view"],
"convert": ["docx", "bmp", "docm", "dotm", "dotx", "epub", "fb2", "gif", "html", "jpg", "md", "odt", "ott", "pdf", "pdfa", "png", "rtf", "txt"],
"mime": ["application/vnd.ms-xpsdocument", "application/xps"]
},
{
"name": "vsdx",
"type": "diagram",
"actions": ["view"],
"convert": ["bmp", "gif", "jpg", "pdf", "pdfa", "png"],
"mime": ["application/vnd.ms-visio.drawing, application/vnd.visio2013", "application/vnd.visio"]
},
{
"name": "vsdm",
"type": "diagram",
"actions": ["view"],
"convert": ["bmp", "gif", "jpg", "pdf", "pdfa", "png"],
"mime": ["application/vnd.ms-visio.drawing.macroEnabled.12"]
},
{
"name": "vssm",
"type": "diagram",
"actions": ["view"],
"convert": ["bmp", "gif", "jpg", "pdf", "pdfa", "png"],
"mime": ["application/vnd.ms-visio.stencil.macroEnabled.12"]
},
{
"name": "vssx",
"type": "diagram",
"actions": ["view"],
"convert": ["bmp", "gif", "jpg", "pdf", "pdfa", "png"],
"mime": ["application/vnd.ms-visio.stencil"]
},
{
"name": "vstm",
"type": "diagram",
"actions": ["view"],
"convert": ["bmp", "gif", "jpg", "pdf", "pdfa", "png"],
"mime": ["application/vnd.ms-visio.template.macroEnabled.12"]
},
{
"name": "vstx",
"type": "diagram",
"actions": ["view"],
"convert": ["bmp", "gif", "jpg", "pdf", "pdfa", "png"],
"mime": ["application/vnd.ms-visio.template"]
},
{
"name": "bmp",
"type": "",
"actions": [],
"convert": [],
"mime": ["image/bmp"]
},
{
"name": "gif",
"type": "",
"actions": [],
"convert": [],
"mime": ["image/gif"]
},
{
"name": "heic",
"type": "",
"actions": [],
"convert": [],
"mime": ["image/heic"]
},
{
"name": "heif",
"type": "",
"actions": [],
"convert": [],
"mime": ["image/heif"]
},
{
"name": "jpg",
"type": "",
"actions": [],
"convert": [],
"mime": ["image/jpeg"]
},
{
"name": "pdfa",
"type": "",
"actions": [],
"convert": [],
"mime": ["application/pdf", "application/acrobat", "application/nappdf", "application/x-pdf", "image/pdf"]
},
{
"name": "png",
"type": "",
"actions": [],
"convert": [],
"mime": ["image/png"]
},
{
"name": "tif",
"type": "",
"actions": [],
"convert": [],
"mime": ["image/tif", "image/x-tif", "application/tif", "application/x-tif"]
},
{
"name": "tiff",
"type": "",
"actions": [],
"convert": [],
"mime": ["image/tiff", "image/x-tiff", "application/tiff", "application/x-tiff"]
},
{
"name": "webp",
"type": "",
"actions": [],
"convert": [],
"mime": ["image/webp"]
},
{
"name": "zip",
"type": "",
"actions": [],
"convert": [],
"mime": ["application/zip"]
}
]

View File

@@ -41,6 +41,7 @@ services:
COLLABORATION_APP_PROOF_DISABLE: "true"
COLLABORATION_LOG_LEVEL: ${LOG_LEVEL:-info}
OC_URL: https://${OC_DOMAIN:-cloud.opencloud.test}${TRAEFIK_PORT_HTTPS:+:}${TRAEFIK_PORT_HTTPS:-}
OC_EVENTS_ENDPOINT: "opencloud:9233"
volumes:
# configure the .env file to use own paths instead of docker internal volumes
- ${OC_CONFIG_DIR:-opencloud-config}:/etc/opencloud
@@ -55,15 +56,12 @@ services:
opencloud-net:
environment:
WOPI_ENABLED: "true"
JWT_SECRET: "${EURO_OFFICE_JWT_SECRET:-changeme}"
# self-signed certificates
USE_UNAUTHORIZED_STORAGE: "${INSECURE:-false}"
entrypoint:
- /bin/sh
- /init-wopi.sh
volumes:
- ./config/euro-office/init-wopi.sh:/init-wopi.sh:ro
- ./config/euro-office/onlyoffice-docs-formats.json:/var/www/onlyoffice/documentserver/document-formats/onlyoffice-docs-formats.json
# Mount local TrueType fonts so the container can use system fonts
# (e.g. Microsoft fonts like Arial, Calibri, Cambria by installing the `ttf-mscorefonts-installer` package).
- /usr/share/fonts/truetype:/usr/share/fonts/truetype/more:ro
logging:
driver: ${LOG_DRIVER:-local}
restart: always