services: nextcloud: image: nextcloud ports: - 8080:80 volumes: # - ./config.php:/var/www/html/config/config.php - ./data/nextcloud:/var/www/html restart: always depends_on: - db - redis environment: - PHP_MEMORY_LIMIT=100G - PHP_UPLOAD_LIMIT=1024G - POST_MAX_SIZE=100M - NEXTCLOUD_TRUSTED_DOMAINS=${NEXTCLOUD_TRUSTED_DOMAINS} - TRUSTED_PROXIES=${TRUSTED_PROXIES} - OVERWRITEPROTOCOL=${OVERWRITEPROTOCOL} - OVERWRITECLIURL=${OVERWRITECLIURL} - MYSQL_USER=${NEXTCLOUD_MYSQL_USER} - MYSQL_PASSWORD=${NEXTCLOUD_MYSQL_PASSWORD} - MYSQL_DATABASE=${NEXTCLOUD_MYSQL_DATABASE} - MYSQL_HOST=${NEXTCLOUD_MYSQL_HOST} - REDIS_HOST=redis networks: - default - caddy-network notify_push: image: nextcloud restart: unless-stopped user: 33:33 # www-data 的 UID:GID depends_on: - nextcloud - redis - db volumes: - ./data/nextcloud:/var/www/html:ro # 建議設為唯讀 environment: - PORT=7867 - NEXTCLOUD_URL=http://nextcloud # 直連 Nextcloud 服務(走 Docker 內網) entrypoint: ["/var/www/html/custom_apps/notify_push/bin/x86_64/notify_push", "/var/www/html/config/config.php"] networks: - default - caddy-network db: image: mariadb:10.6 restart: always command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW volumes: - ./data/db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=${DB_MYSQL_ROOT_PASSWORD} - MYSQL_USER=${NEXTCLOUD_MYSQL_USER} - MYSQL_PASSWORD=${NEXTCLOUD_MYSQL_PASSWORD} - MYSQL_DATABASE=${NEXTCLOUD_MYSQL_DATABASE} redis: image: redis:alpine restart: always collabora: image: collabora/code:latest restart: always ports: - 8081:9980 environment: - domain=nc.awin.one # collabora 會被哪個 website 使用 - username=${COLLABORA_USERNAME} - password=${COLLABORA_PASSWORD} - extra_params=--o:ssl.enable=false --o:ssl.termination=true volumes: - /etc/localtime:/etc/localtime:ro cap_add: - MKNOD links: - nextcloud networks: caddy-network: external: true