Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- version: '3'
- services:
- nc_db:
- image: mariadb:11.3
- networks:
- - nc_internal
- container_name: nc_db
- command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed
- restart: always
- labels:
- - "com.centurylinklabs.watchtower.enable=false"
- volumes:
- - nc_db_v2:/var/lib/mysql:Z
- env_file:
- - stack.env
- nc_redis:
- image: redis:alpine
- networks:
- - nc_internal
- hostname: redis
- container_name: nc_redis
- restart: always
- nc_app:
- image: nextcloud:28-fpm-alpine
- networks:
- - nc_internal
- restart: always
- hostname: nc_app
- container_name: nc_app
- volumes:
- - nextcloud_v2:/var/www/html:z
- - /dev/shm/nextcloud/ramdisk:/ramdisk
- env_file:
- - stack.env
- labels:
- - "com.centurylinklabs.watchtower.enable=false"
- depends_on:
- - nc_db
- - nc_redis
- nc_web:
- image: nginx:alpine
- hostname: nc_web
- container_name: nc_web
- restart: always
- networks:
- - proxy
- - nc_internal
- volumes:
- - nextcloud_v2:/var/www/html:z,ro
- - /opt/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- - /dev/shm/nginx:/dev/shm/
- labels:
- - "traefik.enable=true"
- - "traefik.http.routers.nextcloud.rule=Host(`example.com`)"
- - "traefik.http.routers.nextcloud.service=nextcloud"
- - "traefik.http.routers.nextcloud.entrypoints=websecure"
- - "traefik.http.services.nextcloud.loadbalancer.server.port=80"
- - "traefik.http.routers.nextcloud.tls=true"
- - "traefik.http.routers.nextcloud.tls.certresolver=cloudflare"
- - "traefik.http.services.nextcloud.loadbalancer.passhostheader=true"
- - "traefik.http.routers.nextcloud.middlewares=compresstraefik,redirect-to-https,nextcloud-redirectregex1,nextcloud-redirectregex2"
- - "traefik.http.middlewares.compresstraefik.compress=true"
- - "traefik.docker.network=proxy"
- - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
- - "traefik.http.middlewares.redirect-to-https.redirectscheme.permanent=true"
- - "traefik.http.routers.redir-to-https.entrypoints=web"
- - "traefik.http.routers.redir-to-https.rule=Host(`example.com`)"
- - "traefik.http.middlewares.nextcloud-redirectregex1.redirectregex.permanent=true"
- - "traefik.http.middlewares.nextcloud-redirectregex1.redirectregex.regex=https?://([^/]*)/.well-known/(card|cal)dav"
- - "traefik.http.middlewares.nextcloud-redirectregex1.redirectregex.replacement=https://$${1}/remote.php/dav/"
- - "traefik.http.middlewares.nextcloud-redirectregex2.redirectregex.permanent=true"
- - "traefik.http.middlewares.nextcloud-redirectregex2.redirectregex.regex=https?://([^/]*)(/.well-known[^#]*)"
- - "traefik.http.middlewares.nextcloud-redirectregex2.redirectregex.replacement=https://$${1}/index.php$${2}"
- depends_on:
- - nc_app
- nc_cron:
- image: nextcloud:28-fpm-alpine
- networks:
- - nc_internal
- container_name: nc_cron
- restart: always
- volumes:
- - nextcloud_v2:/var/www/html:z
- entrypoint: /cron.sh
- labels:
- - "com.centurylinklabs.watchtower.enable=false"
- depends_on:
- - nc_db
- - nc_redis
- volumes:
- nc_db_v2:
- nextcloud_v2:
- networks:
- proxy:
- external: true
- nc_internal:
- enable_ipv6: true
- ipam:
- config:
- - subnet: 2001:0DB9::/112
Advertisement