services: db: image: mariadb:11.4 container_name: nextcloud-db restart: unless-stopped command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW environment: MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} TZ: ${TZ} volumes: - db_data:/var/lib/mysql networks: - nextcloud_internal redis: image: redis:7-alpine container_name: nextcloud-redis restart: unless-stopped command: redis-server --requirepass ${REDIS_PASSWORD} networks: - nextcloud_internal app: image: nextcloud:30-apache container_name: nextcloud-app restart: unless-stopped depends_on: - db - redis ports: - "${NEXTCLOUD_PORT}:80" environment: MYSQL_HOST: db MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} REDIS_HOST: redis REDIS_HOST_PASSWORD: ${REDIS_PASSWORD} NEXTCLOUD_TRUSTED_DOMAINS: ${NEXTCLOUD_DOMAIN} TRUSTED_PROXIES: ${TRUSTED_PROXY_IP} OVERWRITEHOST: ${NEXTCLOUD_DOMAIN} OVERWRITEPROTOCOL: https OVERWRITECLIURL: https://${NEXTCLOUD_DOMAIN} PHP_MEMORY_LIMIT: 1024M PHP_UPLOAD_LIMIT: 20G TZ: ${TZ} volumes: - nextcloud_data:/var/www/html networks: - nextcloud_internal collabora: image: collabora/code:latest container_name: collabora restart: unless-stopped ports: - "${COLLABORA_PORT}:9980" environment: domain: ${NEXTCLOUD_DOMAIN_REGEX} username: ${COLLABORA_USERNAME} password: ${COLLABORA_PASSWORD} dictionaries: en_US it_IT extra_params: --o:ssl.enable=false --o:ssl.termination=true --o:welcome.enable=false TZ: ${TZ} cap_add: - MKNOD networks: - nextcloud_internal volumes: db_data: nextcloud_data: networks: nextcloud_internal: driver: bridge