Files
docker-compose-cookbooks/nextcloud/compose.yaml
T
codeandClaude Opus 5.5 66fd5c3cac nextcloud: add redis, cron and proxy settings, pin versions, cache previews
- Add nextcloud-redis (caching/file locking) and nextcloud-cron (/cron.sh)
- Add trusted domains, trusted proxies and overwrite settings for NPM
- Pin nextcloud:35 and mariadb:11.8, add MARIADB_AUTO_UPGRADE
- Add VOL_CACHE (default /var/cache) preview volume via NEXTCLOUD_PREVIEW_DIR
- Fix README: correct image, ports, docker run, gotchas, AIO notes

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 18:08:17 +00:00

66 lines
2.2 KiB
YAML

services:
nextcloud-db:
image: ${MARIADB_IMAGE:-mariadb:11.8}
restart: ${MARIADB_RESTART:-unless-stopped}
volumes:
- ${VOL_PATH:-/data}/nextcloud/db:/var/lib/mysql
environment:
- MARIADB_DATABASE=${NEXTCLOUD_DB:-nextcloud}
- MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD:-ChangeThisPassword}
- MARIADB_USER=${NEXTCLOUD_DB_USER:-nextcloud}
- MARIADB_PASSWORD=${NEXTCLOUD_DB_PASSWORD:-ChangeThisPassword}
- MARIADB_AUTO_UPGRADE=1
networks:
- internal
command: --transaction-isolation=READ-COMMITTED
nextcloud-redis:
image: ${REDIS_IMAGE:-redis:alpine}
restart: ${REDIS_RESTART:-unless-stopped}
volumes:
- ${VOL_PATH:-/data}/nextcloud/redis:/data
networks:
- internal
nextcloud:
image: ${NEXTCLOUD_IMAGE:-nextcloud:35}
restart: ${NEXTCLOUD_RESTART:-unless-stopped}
volumes:
- ${VOL_PATH:-/data}/nextcloud/data:/var/www/html
- ${VOL_CACHE:-/var/cache}/nextcloud/preview:${NEXTCLOUD_PREVIEW_DIR:-/mnt/nextcloud-preview}
environment:
- MYSQL_PASSWORD=${NEXTCLOUD_DB_PASSWORD:-ChangeThisPassword}
- MYSQL_DATABASE=${NEXTCLOUD_DB:-nextcloud}
- MYSQL_USER=${NEXTCLOUD_DB_USER:-nextcloud}
- MYSQL_HOST=${NEXTCLOUD_DB_HOST:-nextcloud-db}
- REDIS_HOST=${NEXTCLOUD_REDIS_HOST:-nextcloud-redis}
- NEXTCLOUD_TRUSTED_DOMAINS=${NEXTCLOUD_DOMAIN:-cloud.example.com}
- TRUSTED_PROXIES=${NEXTCLOUD_TRUSTED_PROXIES:-172.16.0.0/12}
- OVERWRITEPROTOCOL=${NEXTCLOUD_OVERWRITEPROTOCOL:-https}
- OVERWRITECLIURL=https://${NEXTCLOUD_DOMAIN:-cloud.example.com}
networks:
- proxy
- internal
depends_on:
- nextcloud-db
- nextcloud-redis
# Runs background jobs every 5 minutes — volumes and image must match the nextcloud service
nextcloud-cron:
image: ${NEXTCLOUD_IMAGE:-nextcloud:35}
restart: ${NEXTCLOUD_RESTART:-unless-stopped}
volumes:
- ${VOL_PATH:-/data}/nextcloud/data:/var/www/html
- ${VOL_CACHE:-/var/cache}/nextcloud/preview:${NEXTCLOUD_PREVIEW_DIR:-/mnt/nextcloud-preview}
networks:
- internal
depends_on:
- nextcloud-db
- nextcloud-redis
entrypoint: /cron.sh
networks:
proxy:
external: true
internal: