Compare commits

...

23 Commits

Author SHA1 Message Date
renovate[bot]
f10d63c572 chore(deps): update traefik docker tag to v3.7.14 2026-10-07 02:41:26 +00:00
Viktor Scharf
d6efecf176 Merge pull request #397 from opencloud-eu/renovate/main-opencloudeu-opencloud-rolling-8.x
chore(deps): update opencloudeu/opencloud-rolling docker tag to v8.1.0 (main)
2026-10-05 21:59:11 +02:00
renovate[bot]
05b2aefa97 chore(deps): update opencloudeu/opencloud-rolling docker tag to v8.1.0 2026-10-05 19:58:28 +00:00
Benedikt Kulmann
34555ec2db Merge pull request #396 from opencloud-eu/renovate/main-opencloudeu-yjs-1.x
chore(deps): update opencloudeu/yjs docker tag to v1.1.0 (main)
2026-10-05 16:35:34 +02:00
renovate[bot]
0cd92a3d59 chore(deps): update opencloudeu/yjs docker tag to v1.1.0 2026-10-05 14:19:12 +00:00
Benedikt Kulmann
2d423cca0c Merge pull request #395 from opencloud-eu/chore/yjs-version-default
chore: instruct renovate to bump the yjs server image
2026-10-05 16:18:20 +02:00
Jannik Stehle
a38dc348f4 chore: instruct renovate to bump the yjs server image 2026-10-05 16:08:52 +02:00
renovate[bot]
e6ae9deb4f chore(deps): update alpine/openssl docker tag to v3.5.9 (#393)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-05 10:52:19 +02:00
renovate[bot]
8f80c01d7e chore(deps): update collabora/code docker tag to v26.04.4.2.1 (#386)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-05 10:50:12 +02:00
renovate[bot]
55ee3523a0 chore(deps): update quay.io/keycloak/keycloak docker tag to v26.8.0 (#385)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-05 10:49:27 +02:00
renovate[bot]
53e3c0d95b chore(deps): update traefik docker tag to v3.7.13 (#378)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-05 10:45:15 +02:00
Viktor Scharf
87e3c61615 Merge pull request #384 from opencloud-eu/flimmy-patch-1
chore(deps): update opencloud-rolling docker tag to v8.0.1
2026-09-16 16:45:21 +02:00
Michael Flemming
2d992b77de chore(deps): update opencloud-rolling docker tag to v8.0.1
renovate is too slow, it uses a cached response from docker.io.
Image is available and tested.
2026-09-16 16:42:26 +02:00
renovate[bot]
81e347d300 chore(deps): update opencloudeu/opencloud-rolling docker tag to v8 (#381)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-15 15:31:30 +02:00
Jannik Stehle
fcfc216f16 feat: add yjs collaboration service (#380) 2026-09-15 15:29:49 +02:00
renovate[bot]
2b10bd8cb9 chore(deps): update collabora/code docker tag to v26.04.3.2.1 (#375)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-01 09:43:36 +02:00
renovate[bot]
442017268a chore(deps): update quay.io/keycloak/keycloak docker tag to v26.7.3 (#374)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-31 16:22:03 +02:00
Madipodo
b31c3943fd Fix: EURO_OFFICE_JWT_SECRET was not passed to the container (#360)
* Fix: EURO_OFFICE_JWT_SECRET was not passed to the container

This issue has been open for a while and I ran into the same
problem, so I tried to fix it.

Fixes #340

* removed , what was added by auto formating

* Addes Line again, which was removed by auto formating
2026-08-31 16:21:30 +02:00
Michael Barz
cb23d6af18 Merge pull request #372 from opencloud-eu/renovate/main-alpine-openssl-3.x
chore(deps): update alpine/openssl docker tag to v3.5.8 (main)
2026-08-31 16:19:10 +02:00
renovate[bot]
8a1193f2d4 chore(deps): update alpine/openssl docker tag to v3.5.8 2026-08-31 14:18:57 +00:00
Michael Barz
18dc807be0 Merge pull request #363 from opencloud-eu/renovate/main-quay.io-keycloak-keycloak-26.x
chore(deps): update quay.io/keycloak/keycloak docker tag to v26.7.2 (main)
2026-08-31 16:18:35 +02:00
Michael Barz
0fab6e73a0 Merge pull request #364 from opencloud-eu/renovate/main-traefik-3.x
chore(deps): update traefik docker tag to v3.7.12 (main)
2026-08-31 16:18:06 +02:00
renovate[bot]
871b6ae4c8 chore(deps): update traefik docker tag to v3.7.12 2026-08-28 06:08:18 +00:00
11 changed files with 76 additions and 16 deletions

View File

@@ -10,24 +10,24 @@ INSECURE=true
## Features ##
# The following variable is a convenience variable to enable or disable features of this compose project.
# Example: if you want to use traefik and letsencrypt, you can set the variable to
#COMPOSE_FILE=docker-compose.yml:traefik/opencloud.yml
#COMPOSE_FILE=docker-compose.yml:yjs/yjs.yml:traefik/opencloud.yml
# This enables you to just run `docker compose up -d` and the compose files will be added to the stack.
# As alternative approach you can run `docker compose -f docker-compose.yml -f docker-compose.traefik.yml up -d`
# Default: OpenCloud and Collabora with traefik and letsencypt
# This needs DNS entries for the domain names used in the .env file.
#COMPOSE_FILE=docker-compose.yml:weboffice/collabora.yml:traefik/opencloud.yml:traefik/collabora.yml
#COMPOSE_FILE=docker-compose.yml:yjs/yjs.yml:weboffice/collabora.yml:traefik/opencloud.yml:traefik/collabora.yml
# If you want to use the external proxy, you can use the following combination.
# DNS entries and certificates need to be managed by the external environment.
# The domain names need to be entered into the .env file.
#COMPOSE_FILE=docker-compose.yml:weboffice/collabora.yml:external-proxy/opencloud.yml:external-proxy/collabora.yml
#COMPOSE_FILE=docker-compose.yml:yjs/yjs.yml:weboffice/collabora.yml:external-proxy/opencloud.yml:external-proxy/collabora.yml
# Keycloak Shared User Directory
#COMPOSE_FILE=docker-compose.yml:weboffice/collabora.yml:traefik/opencloud.yml:traefik/collabora.yml:idm/ldap-keycloak.yml:traefik/ldap-keycloak.yml
#COMPOSE_FILE=docker-compose.yml:yjs/yjs.yml:weboffice/collabora.yml:traefik/opencloud.yml:traefik/collabora.yml:idm/ldap-keycloak.yml:traefik/ldap-keycloak.yml
# External IDP
#COMPOSE_FILE=docker-compose.yml:weboffice/collabora.yml:traefik/opencloud.yml:traefik/collabora.yml:idm/external-idp.yml
#COMPOSE_FILE=docker-compose.yml:yjs/yjs.yml:weboffice/collabora.yml:traefik/opencloud.yml:traefik/collabora.yml:idm/external-idp.yml
# Euro Office with traefik and letsencrypt
#COMPOSE_FILE=docker-compose.yml:weboffice/euro-office.yml:traefik/opencloud.yml:traefik/euro-office.yml
#COMPOSE_FILE=docker-compose.yml:yjs/yjs.yml:weboffice/euro-office.yml:traefik/opencloud.yml:traefik/euro-office.yml
# Euro Office with external proxy (Nginx, Caddy, etc.)
#COMPOSE_FILE=docker-compose.yml:weboffice/euro-office.yml:external-proxy/opencloud.yml:external-proxy/euro-office.yml
#COMPOSE_FILE=docker-compose.yml:yjs/yjs.yml:weboffice/euro-office.yml:external-proxy/opencloud.yml:external-proxy/euro-office.yml
## Traefik Settings ##
# Note: Traefik is always enabled and can't be disabled.
@@ -383,9 +383,23 @@ KC_DB_PASSWORD=
# - ./config/ldap/ldif/30_demo_users.ldif:/ldifs/30_demo_users.ldif
# - ./config/ldap/ldif/40_demo_groups.ldif:/ldifs/40_demo_groups.ldif
#
# Then add it to: COMPOSE_FILE=docker-compose.yml:weboffice/collabora.yml:traefik/opencloud.yml:traefik/collabora.yml:idm/ldap-keycloak.yml:traefik/ldap-keycloak.yml:custom/ldap-keycloak-demo-users.yml
# Then add it to: COMPOSE_FILE=docker-compose.yml:yjs/yjs.yml:weboffice/collabora.yml:traefik/opencloud.yml:traefik/collabora.yml:idm/ldap-keycloak.yml:traefik/ldap-keycloak.yml:custom/ldap-keycloak-demo-users.yml
# WARNING: Do not use in production.
### Yjs Settings ###
# The yjs server relays updates between users editing the same file.
# It is enabled by default via yjs/yjs.yml in the COMPOSE_FILE variable.
# The browser reaches it under https://{OC_DOMAIN}/yjs, the OpenCloud proxy forwards it.
# Docker image to use for the yjs container.
#YJS_DOCKER_IMAGE=opencloudeu/yjs
# Docker tag to pull for the yjs container.
#YJS_DOCKER_TAG=
# URL the yjs server uses to reach OpenCloud. Defaults to "http://opencloud:9200".
#YJS_OPENCLOUD_URL=
# Grace period in milliseconds for a graceful shutdown. Defaults to "15000".
# Keep it below the stop_grace_period set in yjs/yjs.yml.
#YJS_SHUTDOWN_GRACE_PERIOD_MS=
### Radicale Setting ###
# Radicale is a small open-source CalDAV (calendars, to-do lists) and CardDAV (contacts) server.
# When enabled OpenCloud is configured as a reverse proxy for Radicale, providing all authenticated

View File

@@ -195,6 +195,22 @@ By default, OpenCloud Compose uses `apache/tika:latest` which provides:
The base variant is recommended for most use cases. If you need advanced features like specialized OCR processing or specific image format support, you can override the image by setting `TIKA_IMAGE=apache/tika:latest-full` in your `.env` file.
### With the Yjs Server
The yjs server enables collaborative editing of files. The browser connects to `wss://{OC_DOMAIN}/yjs`. The OpenCloud proxy forwards this route to the yjs container, so no extra DNS entry or port is needed.
Using `-f` flags:
```bash
docker compose -f docker-compose.yml -f yjs/yjs.yml -f traefik/opencloud.yml up -d
```
Or by setting in `.env`:
```
COMPOSE_FILE=docker-compose.yml:yjs/yjs.yml:traefik/opencloud.yml
```
The service keeps documents in memory only. All users of one file must reach the same instance, so run a single instance.
### With Radicale
Enable CalDAV (calendars, to-do lists) and CardDAV (contacts) server.
@@ -466,6 +482,7 @@ This repository uses a modular approach with multiple compose files:
- `traefik/` - Traefik reverse proxy configurations
- `external-proxy/` - Configuration for external reverse proxies
- `radicale/` - Radicale configuration
- `yjs/` - Yjs server configuration (collaborative editing)
- `config/` - Configuration files for OpenCloud, Keycloak, and LDAP
## Advanced Usage

View File

@@ -1,9 +1,13 @@
# This adds four additional routes to the proxy. Forwarding
# This adds additional routes to the proxy. Forwarding
# request on '/carddav/', '/caldav/' and the respective '/.well-knwown'
# endpoints to the radicale container and setting the required headers.
# '/yjs' is forwarded to the yjs container.
additional_policies:
- name: default
routes:
- endpoint: /yjs
backend: http://yjs:1234
unprotected: true
- endpoint: /caldav/
backend: http://radicale:5232
remote_user_header: X-Remote-User

View File

@@ -2,7 +2,7 @@
services:
opencloud:
# renovate: depName=opencloudeu/opencloud-rolling
image: ${OC_DOCKER_IMAGE:-opencloudeu/opencloud-rolling}:${OC_DOCKER_TAG:-7.5.0}
image: ${OC_DOCKER_IMAGE:-opencloudeu/opencloud-rolling}:${OC_DOCKER_TAG:-8.1.0}
# changelog: https://github.com/opencloud-eu/opencloud/tree/main/changelog
# release notes: https://docs.opencloud.eu/opencloud_release_notes.html
user: ${OC_CONTAINER_UID_GID:-1000:1000}

View File

@@ -78,7 +78,7 @@ services:
restart: always
keycloak:
image: quay.io/keycloak/keycloak:26.7.2
image: quay.io/keycloak/keycloak:26.8.0
networks:
opencloud-net:
command: [ "start", "--spi-connections-http-client-default-disable-trust-manager=${INSECURE:-false}", "--import-realm" ]

View File

@@ -33,7 +33,8 @@
"customType": "regex",
"managerFilePatterns": [
"/^docker-compose\\.yml$/",
"/^weboffice\\/collabora\\.yml$/"
"/^weboffice\\/collabora\\.yml$/",
"/^yjs\\/yjs\\.yml$/"
],
"matchStrings": [
"# renovate: depName=(?<depName>[^\\s]+)\\n\\s+image: \\$\\{[^}]+\\}:\\$\\{[^}]+-(?<currentValue>[0-9]+\\.[0-9]+\\.[0-9]+)\\}"

View File

@@ -15,7 +15,7 @@ services:
restart: always
keycloak:
image: quay.io/keycloak/keycloak:26.7.2
image: quay.io/keycloak/keycloak:26.8.0
networks:
opencloud-net:
command: [ "start", "--spi-connections-http-client-default-disable-trust-manager=${INSECURE:-false}", "--import-realm" ]

View File

@@ -16,7 +16,7 @@ services:
- "traefik.http.services.opencloud.loadbalancer.server.port=9200"
- "traefik.http.routers.opencloud.${TRAEFIK_SERVICES_TLS_CONFIG}"
traefik:
image: traefik:v3.7.10
image: traefik:v3.7.14
# release notes: https://github.com/traefik/traefik/releases
user: ${TRAEFIK_CONTAINER_UID_GID:-0:0}
networks:

View File

@@ -29,7 +29,7 @@ services:
# To rotate the key, remove the volume and start again:
# docker compose down collabora && docker volume rm <project>_collabora-proof-key
collabora-proof-key:
image: alpine/openssl:3.5.7
image: alpine/openssl:3.5.9
entrypoint: ["/bin/sh"]
command:
- -ec
@@ -50,7 +50,7 @@ services:
restart: "no"
collabora:
image: collabora/code:26.04.3.1.1
image: collabora/code:26.04.4.2.1
# release notes: https://www.collaboraonline.com/release-notes/
networks:
opencloud-net:

View File

@@ -32,6 +32,7 @@ services:
WOPI_ENABLED: "true"
# self-signed certificates
USE_UNAUTHORIZED_STORAGE: "${INSECURE:-false}"
JWT_SECRET: "${EURO_OFFICE_JWT_SECRET}"
volumes:
# 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).

23
yjs/yjs.yml Normal file
View File

@@ -0,0 +1,23 @@
---
services:
opencloud:
environment:
WEB_OPTION_YJS_SERVER_URL: wss://${OC_DOMAIN:-cloud.opencloud.test}${TRAEFIK_PORT_HTTPS:+:}${TRAEFIK_PORT_HTTPS:-}/yjs
volumes:
# the /yjs route is configured in the proxy
- ./config/opencloud/proxy.yaml:/etc/opencloud/proxy.yaml
yjs:
# renovate: depName=opencloudeu/yjs
image: ${YJS_DOCKER_IMAGE:-opencloudeu/yjs}:${YJS_DOCKER_TAG:-1.1.0}
user: ${OC_CONTAINER_UID_GID:-1000:1000}
networks:
opencloud-net:
environment:
PORT: '1234'
# internal address, no TLS between the containers
OPENCLOUD_URL: ${YJS_OPENCLOUD_URL:-http://opencloud:9200}
SHUTDOWN_GRACE_PERIOD_MS: '${YJS_SHUTDOWN_GRACE_PERIOD_MS:-15000}'
logging:
driver: ${LOG_DRIVER:-local}
restart: always
stop_grace_period: 20s