Compare commits

...

64 Commits

Author SHA1 Message Date
Michael Barz
6ecf59f078 Revert "fix: slow kit jail error server audit in collabora" 2025-12-12 15:42:09 +01:00
Michael Barz
adf5c3a388 Merge pull request #175 from opencloud-eu/fix-collabora-server-audit-slow-kit
fix: slow kit jail error server audit in collabora
2025-12-12 09:08:26 +01:00
Ralf Haferkamp
a2411f8cec Merge pull request #170 from opencloud-eu/issue/165
Fix bash default substitution
2025-12-10 17:29:00 +01:00
Alexander Ackermann
e897106b58 remove privileged 2025-12-09 18:58:56 +01:00
Alexander Ackermann
7386b21d7c make work on debian based systems 2025-12-09 18:49:31 +01:00
Alexander Ackermann
f3ea0ee978 fix: slow kit jail error server audit in collabora 2025-12-09 15:34:46 +01:00
Alex
2f1f0d3149 fix: WOPI/Collabora incompatibility with traefik v3.6.4 (#174) 2025-12-09 12:47:40 +01:00
Ralf Haferkamp
537de1a843 Fix bash default substitution
Closes: #165
2025-12-02 11:04:15 +01:00
Michael Barz
497f09669c Merge pull request #166 from Diekos/smtp_insecure-default-to-false
Added SMTP_INSECURE defaults to false
2025-11-27 23:23:46 +01:00
Michael Barz
a650026624 Merge pull request #155 from chillymattster/oc_port_configurable
feat: port configuration
2025-11-27 15:26:29 +01:00
Diekos
171235f0b8 Added SMTP_INSECURE defaults to false
The SMTP_INSECURE did not yet have a default to false.
2025-11-27 11:32:23 +01:00
chillymattster
50254df2ab align variable names in docker compose yml and environment 2025-11-26 19:11:37 +01:00
chillymattster
95c03733d7 Merge branch 'main' into oc_port_configurable 2025-11-26 19:06:49 +01:00
Michael Barz
79782cdd5f Merge pull request #157 from chillymattster/configure_uid_gid
feat: improve security - configure container uid and gid
2025-11-25 10:28:03 +01:00
Michael Barz
afe6399374 Merge pull request #163 from kellergoech/kellergoech-add-exposed-ports
Added the exposed ports yml files for external proxies
2025-11-24 09:42:22 +01:00
kellergoech
8d8b8dfc73 Update collabora-exposed.yml 2025-11-22 07:14:32 +01:00
kellergoech
eca5b1117e Update keycloak-exposed.yml 2025-11-22 07:14:10 +01:00
kellergoech
cfd356a155 Update description opencloud-exposed.yml 2025-11-22 07:13:49 +01:00
kellergoech
4e4fe65a97 Update description keycloak-exposed.yml 2025-11-22 07:13:15 +01:00
kellergoech
dede740c0e Update description collabora-exposed.yml 2025-11-22 07:12:47 +01:00
kellergoech
0d389800b5 Create opencloud-exposed.yml for service exposure
Add configuration to expose OpenCloud service on port 9200
2025-11-21 17:29:55 +01:00
kellergoech
df7dfc0a02 Create keycloak-exposed.yml for service ports
Add Keycloak service configuration with exposed ports
2025-11-21 17:29:01 +01:00
kellergoech
0e35e4d6b9 add collabora exposed 2025-11-21 17:27:18 +01:00
Viktor Scharf
c1a9d82702 Merge pull request #159 from opencloud-eu/fix-cert.yml-example
fix cert.yml-example
2025-11-21 11:28:03 +01:00
Michael Barz
7b2bd36f30 Merge pull request #162 from opencloud-eu/support-check-for-updates
feat: enable check for updates flag
2025-11-20 13:51:53 +01:00
Alexander Ackermann
13e076b305 feat: enable check for updates flag 2025-11-20 13:45:08 +01:00
Michael Barz
cfe3f0f612 Merge pull request #161 from opencloud-eu/fix-external-proxy
fix: bind ports on localhost for external proxy
2025-11-20 11:05:45 +01:00
Michael Barz
6a5950da36 fix: bind ports on localhost for external proxy 2025-11-20 10:35:37 +01:00
Viktor Scharf
8c96301523 fix 2025-11-19 16:21:42 +01:00
Viktor Scharf
39412c7297 fix cert.yml-example 2025-11-19 15:19:33 +01:00
Michael Barz
5873484022 Merge pull request #158 from opencloud-eu/fix-tika-image
fix: tika image name
2025-11-18 11:23:09 +01:00
Anja Barz
6b3a1e36e1 Update README.md with latest and not small 2025-11-18 10:42:53 +01:00
Michael Barz
fc67954f76 fix: tika image name 2025-11-18 08:48:41 +01:00
Michael Barz
c392985614 Merge pull request #149 from opencloud-eu/fix-tika-image
fix: use apache/tika:slim by default
2025-11-17 09:54:50 +01:00
chillymattster
900a05c2c0 avoid enforcing visible default port at the end of urls 2025-11-14 15:38:21 +01:00
chillymattster
ba14b78f58 feat: port configuration 2025-11-14 10:26:09 +01:00
chillymattster
4d2ad78f6d feat: configure container uid and gid 2025-11-13 21:26:55 +01:00
Michael Barz
df985a5304 Merge pull request #150 from opencloud-eu/bump-collabora-25.04.7.1.1
chore: bump collabora to 25.04.7.1.1
2025-11-10 14:15:39 +01:00
Michael Barz
fddd76a560 Merge pull request #133 from dkarv/antivirus
Add ClamAV
2025-11-10 14:09:23 +01:00
Alexander Ackermann
74d359b85c chore: bump collabora to 25.04.7.1.1 2025-11-10 14:08:39 +01:00
Michael Barz
73fdc8a96a fix: use apache/tika:slim by default 2025-11-10 13:58:55 +01:00
Alex
6e40d2d96e Merge pull request #148 from opencloud-eu/bump-maps-1.0.2
chore: bump web app maps to v1.0.2
2025-11-10 13:43:36 +01:00
Alex
f24923f95e Merge pull request #146 from opencloud-eu/mount-local-fonts-to-collabora-followup
feat: mount local system font dir to collabora followup
2025-11-07 11:23:09 +01:00
Alexander Ackermann
4f79e9ab7b feat: mount local system font dir to collabora followup 2025-11-07 11:19:22 +01:00
Alex
cd5d97cda9 Merge pull request #144 from opencloud-eu/mount-local-fonts-to-collabora 2025-11-07 11:07:13 +01:00
Alex
b501311d0f Apply suggestion from @kulmann
Co-authored-by: Benedikt Kulmann <benedikt@kulmann.biz>
2025-11-06 13:55:10 +01:00
Alex
85deada0d2 Update weboffice/collabora.yml 2025-11-06 13:48:52 +01:00
Michael Barz
522ced8c96 Merge pull request #99 from opencloud-eu/move_production_to_docs
Move production deployment infos to docs
2025-11-06 12:12:35 +01:00
Alexander Ackermann
0622cf6e60 fix typo 2025-11-06 10:53:37 +01:00
Alexander Ackermann
69b40132c0 feat: mount local system font dir to collabora 2025-11-06 10:51:07 +01:00
Alex
f466650a97 Merge pull request #142 from opencloud-eu/add-app-maps 2025-11-06 08:40:03 +01:00
Alexander Ackermann
a27c40c4dc feat: add app maps 2025-11-05 23:08:30 +01:00
Viktor Scharf
94c8075b36 Merge pull request #140 from opencloud-eu/fix-secure-view
fix: fix app addr for secure view
2025-11-05 15:20:42 +01:00
Michael Barz
7543aa2eec fix: fix app addr for secure view 2025-11-05 15:15:52 +01:00
Viktor Scharf
d51d43825a Merge pull request #139 from a-schuetz/add_collabora_home_mode
feat: add home mode option to Collabora
2025-11-05 15:15:13 +01:00
a-schuetz
723fb73fb4 feat: add home mode option to Collabora 2025-11-05 09:01:01 +00:00
Ralf Haferkamp
16dd321bf2 Merge pull request #130 from opencloud-eu/web/704
feat: Allow collabora to download images from the cloud instance
2025-11-04 16:01:42 +01:00
dkarv
6d0454d7a2 document the clamav max stream setting 2025-11-01 12:34:29 +01:00
David
6f71feff30 Remove blank lines in clamav.yml 2025-10-31 14:37:50 +01:00
dkarv
f5df55fedc add compose file and documentation how to use it 2025-10-30 22:46:25 +01:00
Michael Barz
df98c14b80 Merge pull request #132 from bilogic/patch-1
document the mandatory OC_DOMAIN
2025-10-30 10:14:45 +01:00
bilogic
53ec7140da document the mandatory OC_DOMAIN 2025-10-30 16:16:03 +08:00
Michael 'Flimmy' Flemming
f3c5f8f591 add link to docs for production deployment 2025-09-26 15:09:52 +02:00
Michael 'Flimmy' Flemming
fc560119f4 remove production deployment section 2025-09-26 15:09:12 +02:00
19 changed files with 211 additions and 63 deletions

View File

@@ -56,8 +56,11 @@ TRAEFIK_SERVICES_TLS_CONFIG="tls.certresolver=letsencrypt"
# certificates:
# - certFile: /certs/opencloud.test.crt
# keyFile: /certs/opencloud.test.key
# stores:
# - default
# stores:
# default:
# defaultCertificate:
# certFile: /certs/opencloud.test.crt
# keyFile: /certs/opencloud.test.key
#
# The certificates need to be copied into ./certs/, the absolute path inside the container is /certs/.
# You can also use TRAEFIK_CERTS_DIR=/path/on/host to set the path to the certificates directory.
@@ -66,7 +69,14 @@ TRAEFIK_ACCESS_LOG=
# Configure the log level for Traefik.
# Possible values are "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL" and "PANIC". Default is "ERROR".
TRAEFIK_LOG_LEVEL=
# The default for traefik is to run in privileged mode.
# If you want to run traefik non-privileged, use the following variable and the format [UID]:[GID] to set user and group of your choice.
# Ensure that the user has access to docker.sock and traefik volumes defined in traefik/opencloud.yml
#TRAEFIK_CONTAINER_UID_GID="1000:1000"
# Configure ports for HTTP and HTTPS when necessary, defaults are 80 and 443
# Don't use ports in the range of 8000-9999 and 5232 as those ports are used internally and therefore might create conflicts.
#TRAEFIK_PORT_HTTP=4080
#TRAEFIK_PORT_HTTPS=4443
## OpenCloud Settings ##
# The opencloud container image.
@@ -77,6 +87,11 @@ OC_DOCKER_IMAGE=opencloudeu/opencloud-rolling
# The openCloud container version.
# Defaults to "latest" and points to the latest stable tag.
OC_DOCKER_TAG=
# The default id used in opencloud containers is 1000 for user and group.
# If you want to change the default, use the following variable and the format [UID]:[GID].
# The change affects all containers with access to data volumes.
# Ensure that the user has access to all volumes defined in docker-compose.yml
#OC_CONTAINER_UID_GID="1000:1000"
# Domain of openCloud, where you can find the frontend.
# Defaults to "cloud.opencloud.test"
OC_DOMAIN=
@@ -93,6 +108,9 @@ DEMO_USERS=
# After the first initialization, the admin password can only be changed via the OpenCloud User Settings UI or by using the OpenCloud CLI.
# Documentation: https://docs.opencloud.eu/docs/admin/resources/common-issues#-change-admin-password-set-in-env
INITIAL_ADMIN_PASSWORD=
# Whether clients should check for updates.
# Defaults to "true".
CHECK_FOR_UPDATES=
# Define the openCloud loglevel used.
#
LOG_LEVEL=
@@ -175,7 +193,11 @@ START_ADDITIONAL_SERVICES=""
# search/tika.yml or by using the following command:
# docker compose -f docker-compose.yml -f search/tika.yml up -d
# Set the desired docker image tag or digest.
# Defaults to "apache/tika:latest-full"
# Defaults to "apache/tika:latest"
# The slim variant is recommended for most use cases as it provides core text extraction
# functionality with a smaller image size and faster startup time.
# Only use the full variant (apache/tika:latest-full) if you need specialized features
# like advanced OCR or specific image processing capabilities.
TIKA_IMAGE=
### IMPORTANT Note for Online Office Apps ###
@@ -204,12 +226,18 @@ COLLABORA_SSL_ENABLE=false
# If you're on an internet-facing server, enable SSL verification for Collabora Online.
# Please comment out the following line:
COLLABORA_SSL_VERIFICATION=false
# Enable home mode in Collabore Online.
# Home users can enable this setting, which in turn disables welcome screen and user feedback popups,
# but also limits concurrent open connections to 20 and concurrent open documents to 10.
# Default is false if not specified.
COLLABORA_HOME_MODE=
### Virusscanner Settings ###
# IMPORTANT: If you enable antivirus, you also MUST configure the START_ADDITIONAL_SERVICES
# envvar in the OpenCloud Settings above by adding 'antivirus' to the list.
# The maximum scan size the virus scanner can handle, needs adjustment in the scanner config as well.
# The maximum scan size the virus scanner can handle, needs adjustment in the scanner config as well:
# For ClamAV, set CLAMD_CONF_StreamMaxLength in antivirus/clamav.yml to the same or a higher value.
# Usable common abbreviations: [KB, KiB, MB, MiB, GB, GiB, TB, TiB, PB, PiB, EB, EiB], example: 2GB.
# Defaults to "100MB"
#ANTIVIRUS_MAX_SCAN_SIZE=

1
.gitignore vendored
View File

@@ -5,6 +5,7 @@
# exclude the apps folder
/config/opencloud/apps/*
!/config/opencloud/apps/.gitkeep
!/config/opencloud/apps/maps
# exclude custom compose files
/custom

View File

@@ -2,6 +2,9 @@
This repository provides Docker Compose configurations for deploying OpenCloud in various environments.
> [!IMPORTANT]
> Please use the [official docs](https://docs.opencloud.eu/docs/admin/getting-started/container/docker-compose/docker-compose-base) for a **Production Deployment**.
## Overview
OpenCloud Compose offers a modular approach to deploying OpenCloud with several configuration options:
@@ -13,6 +16,7 @@ OpenCloud Compose offers a modular approach to deploying OpenCloud with several
- **Full text search** with Apache Tika for content extraction and metadata analysis
- **Monitoring** with metrics endpoints for observability and performance monitoring
- **Radicale** integration for Calendar and Contacts
- **ClamAV** antivirus scanning with ClamAV
## Quick Start Guide
@@ -42,8 +46,9 @@ OpenCloud Compose offers a modular approach to deploying OpenCloud with several
3. **Set admin password**:
set `INITIAL_ADMIN_PASSWORD=your_secure_password` environment variable in your `.env` file
4. **Configure deployment options**:
4. **Domain**:
optionally, set `OC_DOMAIN=your-domain.com` to overwrite the default `cloud.opencloud.test`
5. **Configure deployment options**:
You can deploy using explicit `-f` flags:
```bash
@@ -60,38 +65,18 @@ OpenCloud Compose offers a modular approach to deploying OpenCloud with several
docker compose up -d
```
5. **Add local domains to `/etc/hosts`** (for local development only):
6. **Add local domains to `/etc/hosts`** (for local development only):
```
127.0.0.1 cloud.opencloud.test
127.0.0.1 traefik.opencloud.test
127.0.0.1 keycloak.opencloud.test
```
6. **Access OpenCloud**:
7. **Access OpenCloud**:
- URL: https://cloud.opencloud.test
- Username: `admin`
- Password: value of your `INITIAL_ADMIN_PASSWORD`
### Production Deployment
> **DNS Requirements**: For production deployments, you need real DNS entries pointing to your server for all required subdomains. You can either create individual DNS A/AAAA records for each subdomain (e.g., `cloud.example.com`, `collabora.example.com`, `keycloak.example.com`) or use a wildcard DNS entry (`*.example.com`) that covers all subdomains.
1. **Edit the `.env` file** and configure:
- Domain names (replace `.opencloud.test` domains with your real domains)
- Admin password
- SSL certificate email
- Storage paths
2. **Configure deployment options** in `.env`:
```
COMPOSE_FILE=docker-compose.yml:weboffice/collabora.yml:traefik/opencloud.yml:traefik/collabora.yml
```
3. **Start OpenCloud**:
```bash
docker compose up -d
```
## Deployment Options
### With Keycloak and LDAP using a Shared User Directory
@@ -163,6 +148,14 @@ This setup includes:
- Full text search functionality in the OpenCloud interface
- Support for documents, PDFs, images, and other file types
**Tika Image Variant:**
By default, OpenCloud Compose uses `apache/tika:latest` which provides:
- Smaller image size (~300MB vs ~1.2GB for the full variant)
- Faster container startup and deployment
- Core text extraction functionality for common document formats (PDF, Office docs, text files, etc.)
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 Radicale
Enable CalDAV (calendars, to-do lists) and CardDAV (contacts) server.
@@ -239,6 +232,25 @@ This exposes the necessary ports:
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**.
### ClamAV anti-virus
Enable anti-virus scans for uploaded files.
Using `-f` flags:
```bash
docker compose -f docker-compose.yml -f antivirus/clamav.yml -f traefik/opencloud.yml up -d
```
Or by setting in `.env`:
```
COMPOSE_FILE=docker-compose.yml:antivirus/clamav.yml:traefik/opencloud.yml
```
**Important:** adjust the variable in `.env` to start the antivirus service. Add additional services separated by comma, e.g. `notifications,antivirus`:
```
START_ADDITIONAL_SERVICES="antivirus"
```
## SSL Certificate Support
@@ -334,7 +346,7 @@ Key variables:
| `INSECURE` | Skip certificate validation | true |
| `COLLABORA_DOMAIN` | Collabora domain | collabora.opencloud.test |
| `WOPISERVER_DOMAIN` | WOPI server domain | wopiserver.opencloud.test |
| `TIKA_IMAGE` | Apache Tika image tag | apache/tika:latest-full |
| `TIKA_IMAGE` | Apache Tika image tag | apache/tika:slim |
| `KEYCLOAK_DOMAIN` | Keycloak domain | keycloak.opencloud.test |
| `KEYCLOAK_ADMIN` | Keycloak admin username | kcadmin |
| `KEYCLOAK_ADMIN_PASSWORD` | Keycloak admin password | admin |

31
antivirus/clamav.yml Normal file
View File

@@ -0,0 +1,31 @@
---
services:
opencloud:
environment:
POSTPROCESSING_STEPS: "virusscan"
STORAGE_USERS_DATA_GATEWAY_URL: "http://opencloud:9200/data"
ANTIVIRUS_MAX_SCAN_SIZE: ${ANTIVIRUS_MAX_SCAN_SIZE:-100MB}
ANTIVIRUS_INFECTED_FILE_HANDLING: abort
ANTIVIRUS_MAX_SCAN_SIZE_MODE: ${ANTIVIRUS_MAX_SCAN_SIZE_MODE:-partial}
ANTIVIRUS_WORKERS: 1
ANTIVIRUS_CLAMAV_SOCKET: /var/run/clamav/clamd.sock
ANTIVIRUS_SCANNER_TYPE: clamav
volumes:
- clamav-socket:/var/run/clamav
clamav:
image: clamav/clamav:${CLAMAV_DOCKER_TAG:-latest}
environment:
# Accepts a number with optional K, M or G suffix. Must be greater or equal to ANTIVIRUS_MAX_SCAN_SIZE above.
# K = KiB (1024), M = MiB (1024 * 1024), G = GiB (1024 * 1024 * 1024)
CLAMD_CONF_StreamMaxLength: 100M
networks:
opencloud-net:
volumes:
- clamav-socket:/tmp
- clamav-db:/var/lib/clamav
logging:
driver: ${LOG_DRIVER:-local}
restart: always
volumes:
clamav-db:
clamav-socket:

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,3 @@
{
"entrypoint": "js/maps-uKkx1qsf.js"
}

View File

@@ -4,10 +4,10 @@ directives:
connect-src:
- '''self'''
- 'blob:'
- 'https://${COMPANION_DOMAIN|companion.opencloud.test}/'
- 'wss://${COMPANION_DOMAIN|companion.opencloud.test}/'
- 'https://${COMPANION_DOMAIN|companion.opencloud.test}${TRAEFIK_PORT_HTTPS}/'
- 'wss://${COMPANION_DOMAIN|companion.opencloud.test}${TRAEFIK_PORT_HTTPS}/'
- 'https://raw.githubusercontent.com/opencloud-eu/awesome-apps/'
- 'https://${IDP_DOMAIN|keycloak.opencloud.test}/'
- 'https://${IDP_DOMAIN|keycloak.opencloud.test}${TRAEFIK_PORT_HTTPS}/'
- 'https://update.opencloud.eu/'
default-src:
- '''none'''
@@ -20,7 +20,7 @@ directives:
- 'blob:'
- 'https://embed.diagrams.net/'
# In contrary to bash and docker the default is given after the | character
- 'https://${COLLABORA_DOMAIN|collabora.opencloud.test}/'
- 'https://${COLLABORA_DOMAIN|collabora.opencloud.test}${TRAEFIK_PORT_HTTPS}/'
# This is needed for the external-sites web extension when embedding sites
- 'https://docs.opencloud.eu'
img-src:
@@ -28,8 +28,9 @@ directives:
- 'data:'
- 'blob:'
- 'https://raw.githubusercontent.com/opencloud-eu/awesome-apps/'
- 'https://tile.openstreetmap.org/'
# In contrary to bash and docker the default is given after the | character
- 'https://${COLLABORA_DOMAIN|collabora.opencloud.test}/'
- 'https://${COLLABORA_DOMAIN|collabora.opencloud.test}${TRAEFIK_PORT_HTTPS}/'
manifest-src:
- '''self'''
media-src:
@@ -40,7 +41,7 @@ directives:
script-src:
- '''self'''
- '''unsafe-inline'''
- 'https://${IDP_DOMAIN|keycloak.opencloud.test}/'
- 'https://${IDP_DOMAIN|keycloak.opencloud.test}${TRAEFIK_PORT_HTTPS}/'
style-src:
- '''self'''
- '''unsafe-inline'''

View File

@@ -14,15 +14,19 @@ add_arg "--log.level=${TRAEFIK_LOG_LEVEL:-ERROR}"
# enable dashboard
add_arg "--api.dashboard=true"
# define entrypoints
add_arg "--entryPoints.http.address=:80"
add_arg "--entryPoints.http.address=:${TRAEFIK_PORT_HTTP:-80}"
add_arg "--entryPoints.http.http.redirections.entryPoint.to=https"
add_arg "--entryPoints.http.http.redirections.entryPoint.scheme=https"
add_arg "--entryPoints.https.address=:443"
add_arg "--entryPoints.https.address=:${TRAEFIK_PORT_HTTPS:-443}"
# change default timeouts for long-running requests
# this is needed for webdav clients that do not support the TUS protocol
add_arg "--entryPoints.https.transport.respondingTimeouts.readTimeout=12h"
add_arg "--entryPoints.https.transport.respondingTimeouts.writeTimeout=12h"
add_arg "--entryPoints.https.transport.respondingTimeouts.idleTimeout=3m"
# allow encoded characters required for WOPI/Collabora
add_arg "--entryPoints.https.http.encodedCharacters.allowEncodedSlash=true"
add_arg "--entryPoints.https.http.encodedCharacters.allowEncodedQuestionMark=true"
add_arg "--entryPoints.https.http.encodedCharacters.allowEncodedPercent=true"
# docker provider (get configuration from container labels)
add_arg "--providers.docker.endpoint=unix:///var/run/docker.sock"
add_arg "--providers.docker.exposedByDefault=false"

View File

@@ -4,6 +4,7 @@ services:
image: ${OC_DOCKER_IMAGE:-opencloudeu/opencloud-rolling}:${OC_DOCKER_TAG:-latest}
# 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}
networks:
opencloud-net:
entrypoint:
@@ -15,7 +16,7 @@ services:
environment:
# enable services that are not started automatically
OC_ADD_RUN_SERVICES: ${START_ADDITIONAL_SERVICES}
OC_URL: https://${OC_DOMAIN:-cloud.opencloud.test}
OC_URL: https://${OC_DOMAIN:-cloud.opencloud.test}${TRAEFIK_PORT_HTTPS:+:}${TRAEFIK_PORT_HTTPS:-}
OC_LOG_LEVEL: ${LOG_LEVEL:-info}
OC_LOG_COLOR: "${LOG_PRETTY:-false}"
OC_LOG_PRETTY: "${LOG_PRETTY:-false}"
@@ -35,10 +36,11 @@ services:
NOTIFICATIONS_SMTP_SENDER: "${SMTP_SENDER:-OpenCloud Notifications <notifications@cloud.opencloud.test>}"
NOTIFICATIONS_SMTP_USERNAME: "${SMTP_USERNAME}"
NOTIFICATIONS_SMTP_PASSWORD: "${SMTP_PASSWORD}"
NOTIFICATIONS_SMTP_INSECURE: "${SMTP_INSECURE}"
NOTIFICATIONS_SMTP_INSECURE: "${SMTP_INSECURE:-false}"
NOTIFICATIONS_SMTP_AUTHENTICATION: "${SMTP_AUTHENTICATION}"
NOTIFICATIONS_SMTP_ENCRYPTION: "${SMTP_TRANSPORT_ENCRYPTION:-none}"
FRONTEND_ARCHIVER_MAX_SIZE: "10000000000"
FRONTEND_CHECK_FOR_UPDATES: "${CHECK_FOR_UPDATES:-true}"
PROXY_CSP_CONFIG_FILE_LOCATION: /etc/opencloud/csp.yaml
# enable to allow using the banned passwords list
OC_PASSWORD_POLICY_BANNED_PASSWORDS_LIST: banned-password-list.txt

View File

@@ -0,0 +1,11 @@
---
# only expose the ports when you know what you are doing!
services:
collaboration:
ports:
# expose the wopi server on all interfaces
- "0.0.0.0:9300:9300"
collabora:
ports:
# expose the collabora server on all interfaces
- "0.0.0.0:9980:9980"

View File

@@ -2,9 +2,9 @@
services:
collaboration:
ports:
# expose the wopi server
- "9300:9300"
# expose the wopi server on localhost
- "127.0.0.1:9300:9300"
collabora:
ports:
# expose the collabora server
- "9980:9980"
# expose the collabora server on localhost
- "127.0.0.1:9980:9980"

View File

@@ -0,0 +1,8 @@
---
# only expose the ports when you know what you re doing!
services:
keycloak:
ports:
# expose the keycloak server on all interfaces
- "0.0.0.0:9000:9000"
- "0.0.0.0:8080:8080"

View File

@@ -2,5 +2,6 @@
services:
keycloak:
ports:
- "9000:9000"
- "8080:8080"
# expose the keycloak server on localhost
- "127.0.0.1:9000:9000"
- "127.0.0.1:8080:8080"

View File

@@ -0,0 +1,10 @@
---
# only expose the ports when you know what you are doing!
services:
opencloud:
environment:
# bind to all interfaces
PROXY_HTTP_ADDR: "0.0.0.0:9200"
ports:
# expose the opencloud server on all interfaces
- "0.0.0.0:9200:9200"

View File

@@ -5,5 +5,5 @@ services:
# bind to all interfaces
PROXY_HTTP_ADDR: "0.0.0.0:9200"
ports:
# expose the opencloud server
- "9200:9200"
# expose the opencloud server on localhost
- "127.0.0.1:9200:9200"

View File

@@ -6,6 +6,7 @@ services:
- ./config/opencloud/proxy.yaml:/etc/opencloud/proxy.yaml
radicale:
image: ${RADICALE_DOCKER_IMAGE:-opencloudeu/radicale}:${RADICALE_DOCKER_TAG:-latest}
user: ${OC_CONTAINER_UID_GID:-1000:1000}
networks:
opencloud-net:
logging:

View File

@@ -1,7 +1,10 @@
---
services:
tika:
image: ${TIKA_IMAGE:-apache/tika:latest-full}
image: ${TIKA_IMAGE:-apache/tika:latest}
# Using the base variant for smaller image size and faster startup
# The base variant includes core functionality for text extraction
# Full variant is only needed for specialized OCR/image processing
# release notes: https://tika.apache.org
networks:
opencloud-net:

View File

@@ -9,8 +9,9 @@ services:
- "traefik.http.services.opencloud.loadbalancer.server.port=9200"
- "traefik.http.routers.opencloud.${TRAEFIK_SERVICES_TLS_CONFIG}"
traefik:
image: traefik:v3
image: traefik:v3.6.4
# release notes: https://github.com/traefik/traefik/releases
user: ${TRAEFIK_CONTAINER_UID_GID:-0:0}
networks:
opencloud-net:
aliases:
@@ -22,9 +23,11 @@ services:
- "TRAEFIK_ACME_CASERVER=${TRAEFIK_ACME_CASERVER:-https://acme-v02.api.letsencrypt.org/directory}"
- "TRAEFIK_LOG_LEVEL=${TRAEFIK_LOG_LEVEL:-ERROR}"
- "TRAEFIK_ACCESS_LOG=${TRAEFIK_ACCESS_LOG:-false}"
- "TRAEFIK_PORT_HTTP=${TRAEFIK_PORT_HTTP:-80}"
- "TRAEFIK_PORT_HTTPS=${TRAEFIK_PORT_HTTPS:-443}"
ports:
- "80:80"
- "443:443"
- "${TRAEFIK_PORT_HTTP:-80}:${TRAEFIK_PORT_HTTP:-80}"
- "${TRAEFIK_PORT_HTTPS:-443}:${TRAEFIK_PORT_HTTPS:-443}"
volumes:
- "${DOCKER_SOCKET_PATH:-/var/run/docker.sock}:/var/run/docker.sock:ro"
- "./config/traefik/docker-entrypoint-override.sh:/opt/traefik/bin/docker-entrypoint-override.sh"

View File

@@ -5,15 +5,17 @@ services:
environment:
# this is needed for setting the correct CSP header
COLLABORA_DOMAIN: ${COLLABORA_DOMAIN:-collabora.opencloud.test}
TRAEFIK_PORT_HTTPS: ${TRAEFIK_PORT_HTTPS:+:}${TRAEFIK_PORT_HTTPS:-}
# expose nats and the reva gateway for the collaboration service
NATS_NATS_HOST: 0.0.0.0
GATEWAY_GRPC_ADDR: 0.0.0.0:9142
# make collabora the secure view app
FRONTEND_APP_HANDLER_SECURE_VIEW_APP_ADDR: eu.opencloud.api.collaboration.CollaboraOnline
FRONTEND_APP_HANDLER_SECURE_VIEW_APP_ADDR: eu.opencloud.api.collaboration
GRAPH_AVAILABLE_ROLES: "b1e2218d-eef8-4d4c-b82d-0f1a1b48f3b5,a8d5fe5e-96e3-418d-825b-534dbdf22b99,fb6c3e19-e378-47e5-b277-9732f9de6e21,58c63c02-1d89-4572-916a-870abc5a1b7d,2d00ce52-1fc2-4dbc-8b95-a73b73395f5a,1c996275-f1c9-4e71-abdf-a42f6495e960,312c0871-5ef7-4b3a-85b6-0e4074c64049,aa97fe03-7980-45ac-9e50-b325749fd7e6"
collaboration:
image: ${OC_DOCKER_IMAGE:-opencloudeu/opencloud-rolling}:${OC_DOCKER_TAG:-latest}
user: ${OC_CONTAINER_UID_GID:-1000:1000}
networks:
opencloud-net:
depends_on:
@@ -29,15 +31,15 @@ services:
COLLABORATION_HTTP_ADDR: 0.0.0.0:9300
MICRO_REGISTRY: "nats-js-kv"
MICRO_REGISTRY_ADDRESS: "opencloud:9233"
COLLABORATION_WOPI_SRC: https://${WOPISERVER_DOMAIN:-wopiserver.opencloud.test}
COLLABORATION_WOPI_SRC: https://${WOPISERVER_DOMAIN:-wopiserver.opencloud.test}${TRAEFIK_PORT_HTTPS:+:}${TRAEFIK_PORT_HTTPS:-}
COLLABORATION_APP_NAME: "CollaboraOnline"
COLLABORATION_APP_PRODUCT: "Collabora"
COLLABORATION_APP_ADDR: https://${COLLABORA_DOMAIN:-collabora.opencloud.test}
COLLABORATION_APP_ICON: https://${COLLABORA_DOMAIN:-collabora.opencloud.test}/favicon.ico
COLLABORATION_APP_ADDR: https://${COLLABORA_DOMAIN:-collabora.opencloud.test}${TRAEFIK_PORT_HTTPS:+:}${TRAEFIK_PORT_HTTPS:-}
COLLABORATION_APP_ICON: https://${COLLABORA_DOMAIN:-collabora.opencloud.test}${TRAEFIK_PORT_HTTPS:+:}${TRAEFIK_PORT_HTTPS:-}/favicon.ico
COLLABORATION_APP_INSECURE: "${INSECURE:-true}"
COLLABORATION_CS3API_DATAGATEWAY_INSECURE: "${INSECURE:-true}"
COLLABORATION_LOG_LEVEL: ${LOG_LEVEL:-info}
OC_URL: https://${OC_DOMAIN:-cloud.opencloud.test}
OC_URL: https://${OC_DOMAIN:-cloud.opencloud.test}${TRAEFIK_PORT_HTTPS:+:}${TRAEFIK_PORT_HTTPS:-}
volumes:
# configure the .env file to use own paths instead of docker internal volumes
- ${OC_CONFIG_DIR:-opencloud-config}:/etc/opencloud
@@ -46,29 +48,35 @@ services:
restart: always
collabora:
image: collabora/code:25.04.4.2.1
image: collabora/code:25.04.7.1.1
# release notes: https://www.collaboraonline.com/release-notes/
networks:
opencloud-net:
environment:
aliasgroup1: https://${WOPISERVER_DOMAIN:-wopiserver.opencloud.test}:443
aliasgroup1: https://${WOPISERVER_DOMAIN:-wopiserver.opencloud.test}${TRAEFIK_PORT_HTTPS:+:}${TRAEFIK_PORT_HTTPS:-}
DONT_GEN_SSL_CERT: "YES"
extra_params: |
--o:ssl.enable=${COLLABORA_SSL_ENABLE:-true} \
--o:ssl.ssl_verification=${COLLABORA_SSL_VERIFICATION:-true} \
--o:ssl.termination=true \
--o:welcome.enable=false \
--o:net.frame_ancestors=${OC_DOMAIN:-cloud.opencloud.test} \
--o:net.lok_allow.host[14]=${OC_DOMAIN-cloud.opencloud.test}
--o:net.frame_ancestors=${OC_DOMAIN:-cloud.opencloud.test}${TRAEFIK_PORT_HTTPS:+:}${TRAEFIK_PORT_HTTPS:-} \
--o:net.lok_allow.host[14]=${OC_DOMAIN:-cloud.opencloud.test}${TRAEFIK_PORT_HTTPS:+:}${TRAEFIK_PORT_HTTPS:-} \
--o:home_mode.enable=${COLLABORA_HOME_MODE:-false}
username: ${COLLABORA_ADMIN_USER:-admin}
password: ${COLLABORA_ADMIN_PASSWORD:-admin}
cap_add:
- MKNOD
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).
- /usr/share/fonts/truetype:/usr/share/fonts/truetype/more:ro
- /usr/share/fonts/truetype:/opt/cool/systemplate/usr/share/fonts/truetype/more:ro
logging:
driver: ${LOG_DRIVER:-local}
restart: always
entrypoint: ['/bin/bash', '-c']
command: ['coolconfig generate-proof-key && /start-collabora-online.sh']
entrypoint: [ '/bin/bash', '-c' ]
command: [ 'coolconfig generate-proof-key && /start-collabora-online.sh' ]
healthcheck:
test: [ "CMD", "curl", "-f", "http://localhost:9980/hosting/discovery" ]
interval: 15s