2020-11-28 22:51:37 +01:00
|
|
|
version: "3"
|
|
|
|
|
|
|
|
services:
|
|
|
|
|
|
|
|
web:
|
2021-01-09 17:09:55 +01:00
|
|
|
image: nginx
|
2020-11-28 22:51:37 +01:00
|
|
|
depends_on:
|
|
|
|
- app
|
|
|
|
volumes:
|
|
|
|
- ${VOLUMES_PATH}/nextcloud_html:/var/www/html:ro
|
2021-01-09 17:09:55 +01:00
|
|
|
- $PWD/nginx.conf:/etc/nginx/nginx.conf:ro
|
2020-11-28 22:51:37 +01:00
|
|
|
restart: unless-stopped
|
|
|
|
networks:
|
|
|
|
- web
|
|
|
|
- nextcloud
|
|
|
|
labels:
|
|
|
|
- "traefik.enable=true"
|
|
|
|
- "traefik.http.routers.nextcloud.rule=Host(`cloud.${DOMAIN}`)"
|
|
|
|
- "traefik.http.routers.nextcloud.entrypoints=websecure"
|
2021-03-20 01:32:35 +01:00
|
|
|
- "traefik.http.routers.nextcloud.tls.certresolver=netcup"
|
2020-11-28 22:51:37 +01:00
|
|
|
- "traefik.http.routers.nextcloud.tls.options=intermediate@file"
|
|
|
|
- "traefik.http.middlewares.nextcloudHeader.headers.customRequestHeaders.X-Forwarded-Proto=https"
|
|
|
|
- "traefik.http.middlewares.nextcloudHeader.headers.stsSeconds=15552000"
|
|
|
|
- "traefik.http.middlewares.nextcloudHeader.headers.stsIncludeSubdomains=true"
|
|
|
|
- "traefik.http.middlewares.nextcloudHeader.headers.stsPreload=true"
|
|
|
|
- "traefik.http.middlewares.nextcloudHeader.headers.forceSTSHeader=true"
|
|
|
|
- "traefik.http.routers.nextcloud.middlewares=nextcloudHeader"
|
2021-03-28 13:50:02 +02:00
|
|
|
- "docker.group=netxtcloud"
|
2020-11-28 22:51:37 +01:00
|
|
|
|
|
|
|
app:
|
2021-05-17 15:10:58 +02:00
|
|
|
image: nextcloud:21-fpm
|
2020-11-28 22:51:37 +01:00
|
|
|
volumes:
|
|
|
|
- ${VOLUMES_PATH}/nextcloud_html:/var/www/html
|
|
|
|
- ${VOLUMES_PATH}/nextcloud_data:/var/www/html/data
|
|
|
|
restart: unless-stopped
|
|
|
|
networks:
|
|
|
|
- nextcloud
|
|
|
|
environment:
|
|
|
|
- NEXTCLOUD_TRUSTED_DOMAINS=${NEXTCLOUD_TRUSTED_DOMAINS}
|
|
|
|
- MYSQL_HOST=db
|
|
|
|
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
|
|
|
- MYSQL_DATABASE=${MYSQL_DATABASE}
|
|
|
|
- MYSQL_USER=${MYSQL_USER}
|
|
|
|
- REDIS_HOST=redis
|
|
|
|
- REDIS_HOST_PASSWORD=${REDIS_HOST_PASSWORD}
|
|
|
|
depends_on:
|
|
|
|
- db
|
|
|
|
- redis
|
2021-04-01 19:20:45 +02:00
|
|
|
labels:
|
|
|
|
- "docker.group=netxtcloud"
|
|
|
|
|
2020-11-28 22:51:37 +01:00
|
|
|
|
|
|
|
db:
|
|
|
|
image: mariadb:10
|
|
|
|
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
|
|
|
|
volumes:
|
|
|
|
- ${VOLUMES_PATH}/nextcloud_db:/var/lib/mysql
|
|
|
|
restart: unless-stopped
|
|
|
|
environment:
|
|
|
|
- PUID=1000
|
|
|
|
- PGID=1000
|
|
|
|
- TZ=Europe/Berlin
|
|
|
|
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
|
|
|
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
|
|
|
- MYSQL_DATABASE=${MYSQL_DATABASE}
|
|
|
|
- MYSQL_USER=${MYSQL_USER}
|
|
|
|
networks:
|
|
|
|
- nextcloud
|
2021-03-28 13:50:02 +02:00
|
|
|
labels:
|
|
|
|
- "docker.group=netxtcloud"
|
2020-11-28 22:51:37 +01:00
|
|
|
|
|
|
|
redis:
|
|
|
|
image: redis:alpine
|
|
|
|
restart: unless-stopped
|
|
|
|
command: redis-server --requirepass ${REDIS_HOST_PASSWORD}
|
|
|
|
networks:
|
|
|
|
- nextcloud
|
|
|
|
volumes:
|
|
|
|
- ${VOLUMES_PATH}/nextcloud_redis:/data
|
2021-03-28 13:50:02 +02:00
|
|
|
labels:
|
|
|
|
- "docker.group=netxtcloud"
|
2020-11-28 22:51:37 +01:00
|
|
|
|
|
|
|
|
|
|
|
office:
|
|
|
|
image: onlyoffice/documentserver:latest
|
|
|
|
stdin_open: true
|
|
|
|
tty: true
|
|
|
|
restart: unless-stopped
|
|
|
|
networks:
|
|
|
|
- nextcloud
|
|
|
|
- web
|
|
|
|
expose:
|
|
|
|
- '80'
|
|
|
|
- '443'
|
|
|
|
volumes:
|
|
|
|
- ${VOLUMES_PATH}/nextcloud_documents:/var/www/onlyoffice/Data
|
|
|
|
# - ${VOLUMES_PATH}/onlyoffice_log:/var/log/onlyoffice
|
|
|
|
labels:
|
|
|
|
- "traefik.enable=true"
|
|
|
|
- "traefik.http.routers.office.rule=Host(`office.${DOMAIN}`)"
|
|
|
|
- "traefik.http.routers.office.entrypoints=websecure"
|
2021-03-20 01:32:35 +01:00
|
|
|
- "traefik.http.routers.office.tls.certresolver=netcup"
|
2020-11-28 22:51:37 +01:00
|
|
|
- "traefik.http.routers.office.tls.options=intermediate@file"
|
|
|
|
- "traefik.http.middlewares.officeHeader.headers.customRequestHeaders.X-Forwarded-Proto=https"
|
|
|
|
- "traefik.http.middlewares.officeHeader.headers.stsSeconds=15552000"
|
|
|
|
- "traefik.http.middlewares.officeHeader.headers.stsIncludeSubdomains=true"
|
|
|
|
- "traefik.http.middlewares.officeHeader.headers.stsPreload=true"
|
|
|
|
- "traefik.http.middlewares.officeHeader.headers.forceSTSHeader=true"
|
|
|
|
- "traefik.http.routers.office.middlewares=officeHeader"
|
2021-03-28 13:50:02 +02:00
|
|
|
- "docker.group=netxtcloud"
|
2020-11-28 22:51:37 +01:00
|
|
|
|
|
|
|
|
|
|
|
networks:
|
|
|
|
web:
|
|
|
|
external: true
|
|
|
|
nextcloud:
|
|
|
|
external: false
|