Files
nextcloud/docker-compose.yml
2026-03-09 16:38:22 +01:00

98 lines
2.3 KiB
YAML

services:
nginx:
image: nginx:1.27-alpine
container_name: nextcloud-nginx
restart: unless-stopped
depends_on:
- app
- collabora
ports:
- "${NGINX_PORT}:80"
volumes:
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
networks:
nextcloud_internal:
ipv4_address: 172.30.0.10
db:
image: mariadb:11.4
container_name: nextcloud-db
restart: unless-stopped
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
environment:
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
TZ: ${TZ}
volumes:
- db_data:/var/lib/mysql
networks:
- nextcloud_internal
redis:
image: redis:7-alpine
container_name: nextcloud-redis
restart: unless-stopped
command: redis-server --requirepass ${REDIS_PASSWORD}
networks:
- nextcloud_internal
app:
image: nextcloud:30-apache
container_name: nextcloud-app
restart: unless-stopped
depends_on:
- db
- redis
expose:
- "80"
environment:
MYSQL_HOST: db
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
REDIS_HOST: redis
REDIS_HOST_PASSWORD: ${REDIS_PASSWORD}
NEXTCLOUD_TRUSTED_DOMAINS: ${NEXTCLOUD_DOMAIN}
TRUSTED_PROXIES: ${TRUSTED_PROXIES}
OVERWRITEHOST: ${NEXTCLOUD_DOMAIN}
OVERWRITEPROTOCOL: https
OVERWRITECLIURL: https://${NEXTCLOUD_DOMAIN}
PHP_MEMORY_LIMIT: 1024M
PHP_UPLOAD_LIMIT: 20G
TZ: ${TZ}
volumes:
- nextcloud_data:/var/www/html
networks:
- nextcloud_internal
collabora:
image: collabora/code:latest
container_name: collabora
restart: unless-stopped
expose:
- "9980"
environment:
domain: ${NEXTCLOUD_DOMAIN_REGEX}
username: ${COLLABORA_USERNAME}
password: ${COLLABORA_PASSWORD}
dictionaries: en_US it_IT
extra_params: --o:ssl.enable=false --o:ssl.termination=true --o:welcome.enable=false
TZ: ${TZ}
cap_add:
- MKNOD
networks:
- nextcloud_internal
volumes:
db_data:
nextcloud_data:
networks:
nextcloud_internal:
driver: bridge
ipam:
config:
- subnet: 172.30.0.0/24