110 lines
2.9 KiB
YAML
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
|
|
|