Files
docker-compose-cookbooks/nextcloud/compose.yaml
T
2026-10-10 23:53:59 +00:00

67 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
- ${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: