Files
Server-scripts/docker_compose/mediahost/nextcloud/docker-compose.yaml
T
2026-10-01 14:07:55 +00:00

110 lines
2.9 KiB
YAML

services:
nextcloud:
image: nextcloud:latest
container_name: nextcloud
restart: unless-stopped
depends_on:
db:
condition: service_healthy
environment:
# PHP
- PHP_UPLOAD_LIMIT=16G
# APACHE2
- APACHE_BODY_LIMIT=0
# MYSQL
- MYSQL_HOST=db
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
# REDIS
- REDIS_HOST=redis
- REDIS_HOST_PASSWORD=${REDIS_PASSWORD}
# NEXTCLOUD
- NEXTCLOUD_ADMIN_USER=${NEXTCLOUD_ADMIN_USER}
- NEXTCLOUD_ADMIN_PASSWORD=${NEXTCLOUD_ADMIN_PASSWORD}
- NEXTCLOUD_TRUSTED_DOMAINS=${NEXTCLOUD_DOMAIN} 192.168.0.4
- NEXTCLOUD_MIMI_PASSWORD=${NEXTCLOUD_MIMI_PASSWORD}
- OVERWRITEPROTOCOL=https
- OVERWRITECLIURL=https://${NEXTCLOUD_DOMAIN}
- OVERWRITEHOST=${NEXTCLOUD_DOMAIN}
- TRUSTED_PROXIES=nginx 172.16.0.0/12
# SMTP
- SMTP_HOST=${SMTP_HOST}
- SMTP_PORT=${SMTP_PORT}
- SMTP_SECURE=${SMTP_SECURE}
- SMTP_USER=${SMTP_USER}
- SMTP_PASSWORD=${SMTP_PASSWORD}
- SMTP_FROM_ADDRESS=${SMTP_FROM_ADDRESS}
- SMTP_FROM_DOMAIN=${SMTP_FROM_DOMAIN}
# Collabora
- COLLABORA_DOMAIN=${COLLABORA_DOMAIN}
- LUCAS_EMAIL=${LUCAS_EMAIL}
volumes:
- ./html:/var/www/html
- /data/nextcloud/data:/var/www/html/data
# Post-installation hooks
- ./hooks/nextcloud-init.sh:/docker-entrypoint-hooks.d/post-installation/nextcloud-init.sh:ro
ports:
- "8082:80"
networks:
- default
- shared-proxy-services
- shared-redis-services
db:
image: mariadb:11
container_name: nextcloud-db
restart: unless-stopped
command:
- --transaction-isolation=READ-COMMITTED
- --log-bin=binlog
- --binlog-format=ROW
- --slow-query-log=ON
- --slow-query-log-file=/var/lib/mysql/slow-query.log
- --long-query-time=2
- --innodb-log-file-size=256M
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
volumes:
- ./db:/var/lib/mysql
healthcheck:
test:
[
"CMD-SHELL",
"healthcheck.sh --connect --innodb_initialized"
]
interval: 10s
timeout: 5s
retries: 10
start_period: 30s
collabora:
image: collabora/code
expose:
- 9980
cap_add:
- MKNOD
environment:
- domain=${NEXTCLOUD_DOMAIN}
- VIRTUAL_HOST=${COLLABORA_DOMAIN}
- VIRTUAL_PORT=9980
- VIRTUAL_PROTO=https
- LETSENCRYPT_HOST=${COLLABORA_DOMAIN}
- LETSENCRYPT_EMAIL=${LUCAS_EMAIL}
networks:
- shared-proxy-services
restart: always
networks:
default:
driver: bridge
shared-redis-services:
external: true
shared-proxy-services:
external: true