services: nextcloud-db: image: ${MARIADB_IMAGE:-mariadb:11.8} restart: ${MARIADB_RESTART:-unless-stopped} volumes: - ${VOL_PATH:-/data}/nextcloud/db:/var/lib/mysql - ${VOL_PATH:-/data}/nextcloud/db-conf/nextcloud-tuning.cnf:/etc/mysql/conf.d/nextcloud-tuning.cnf:ro 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_CACHE:-/var/cache}/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 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} ports: # Can remove this for proxy - "${NEXTCLOUD_PORT:-8084}:80" 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 networks: - internal depends_on: - nextcloud-db - nextcloud-redis entrypoint: /cron.sh networks: proxy: external: true internal: