| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- version: "3.9"
- volumes:
- traefik:
- nextcloud:
- driver: local
- driver_opts:
- type: nfs
- o: addr=10.10.20.254,nfsvers=4,nolock,soft,async,rw
- device: ":/mnt/documents/files/cloud"
- db:
-
- plex_config:
- plex_transcode:
-
- media_movies:
- driver: local
- driver_opts:
- type: nfs
- o: addr=10.10.20.200,nfsvers=4,nolock,soft,async,rw
- device: ":/mnt/media/Movies"
- media_movies_archive:
- driver: local
- driver_opts:
- type: nfs
- o: addr=10.10.20.200,nfsvers=4,nolock,soft,async,rw
- device: ":/mnt/media/Movie Archive"
-
- media_music:
- driver: local
- driver_opts:
- type: nfs
- o: addr=10.10.20.200,nfsvers=4,nolock,soft,async,rw
- device: "::/mnt/media/Music"
-
- media_music_backup:
-
-
- media_movies_kids:
- driver: local
- driver_opts:
- type: nfs
- o: addr=10.10.20.200,nfsvers=4,nolock,soft,async,rw
- device: ":/mnt/media/Kids Movies"
-
- media_tv:
- driver: local
- driver_opts:
- type: nfs
- o: addr=10.10.20.200,nfsvers=4,nolock,soft,async,rw
- device: ":/mnt/media/TV"
-
-
- services:
- reverse-proxy:
- restart: always
- # The official v2 Traefik docker image
- image: traefik:v2.7
- # Enables the web UI and tells Traefik to listen to docker //--api.insecure=true
- command:
- - "--api=true"
- - "--api.dashboard=true"
- - "--accesslog"
- - "--log.level=DEBUG"
- - "--providers.docker"
- - "--providers.docker.endpoint=unix:///var/run/docker.sock"
- - "--providers.docker.swarmMode=true"
- - "--entrypoints.web.address=:80"
- - "--entrypoints.websecure.address=:443"
- - "--certificatesresolvers.letsencrypt.acme.email=jason@jasonplayne.com"
- - "--certificatesresolvers.letsencrypt.acme.storage=/etc/traefik/acme.json"
- - "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web"
- - "--certificatesresolvers.letsencrypt.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
-
- ports:
- # The HTTP port
- - "80:80"
- - "443:443"
- volumes:
- # So that Traefik can listen to the Docker events
- - /var/run/docker.sock:/var/run/docker.sock
- - traefik:/etc/traefik
- deploy:
- mode: replicated
- replicas: 1
- endpoint_mode: vip
- labels:
- - "traefik.enable=true"
- - "traefik.http.routers.dashboard.rule=Host(`10.10.20.197`) && (PathPrefix(`/api`) || PathPrefix(`/dashboard`))"
- - "traefik.http.routers.dashboard.service=api@internal"
- - "traefik.http.routers.dashboard.entrypoints=web"
- # - "traefik.http.routers.dashboard.middlewares=local-ips@docker"
- # - "traefik.http.middlewares.local-ips.ipwhitelist.sourcerange=10.0.0.0/8"
- # Dummy service for Swarm port detection. The port can be any valid integer value.
- - "traefik.http.services.dashboard-svc.loadbalancer.server.port=9999"
-
- placement:
- constraints:
- - node.role == manager
- resources:
- limits:
- memory: 1G
-
- postgres:
- image: postgres
- restart: always
- environment:
- POSTGRES_USER: nextcloud
- POSTGRES_PASSWORD: disgrace-quickstep-fleshy
- volumes:
- - db:/var/lib/postgresql/data
- ports:
- - "5432"
- deploy:
- labels:
- - traefik.enable=false
- mode: replicated
- replicas: 1
- resources:
- limits:
- memory: 2G
-
- nextcloud:
- image: nextcloud:stable-apache
- restart: always
- ports:
- - "80"
- labels:
- - traefik.http.routers.nextcloud.rule=Host(`cloud.playne.au`)
- volumes:
- - "nextcloud:/var/www/html/data"
- deploy:
- mode: replicated
- replicas: 1
- labels:
- - "traefik.enable=true"
- - "traefik.http.routers.nextcloud.rule=Host(`cloud.playne.au`)"
- - "traefik.http.routers.nextcloud.tls=true"
- - "traefik.http.routers.nextcloud.tls.certresolver=letsencrypt"
- - "traefik.http.routers.nextcloud.entrypoints=websecure"
- - "traefik.http.services.nextcloud.loadbalancer.server.port=80"
- resources:
- limits:
- memory: 2G
-
- plex:
- image: linuxserver/plex
- restart: unless-stopped
- ports:
- - "32400:32400"
- volumes:
- - /etc/timezone:/etc/timezone:ro
- - /etc/localtime:/etc/localtime:ro
- - plex_config:/config
- - media_tv:/data/tv
- - media_movies:/data/movies
- - media_movies_archive:/data/movies-archive
- - media_movies_kids:/data/movies-kids
- - plex_transcode:/transcode
- environment:
- - PUID=1001
- - PGID=1001
- - VERSION=latest
- deploy:
- mode: replicated
- replicas: 1
- labels:
- - "traefik.enable=true"
- - "traefik.http.routers.plex.rule=Host(`plex.playne.au`)"
- - "traefik.http.routers.plex.entrypoints=web"
- - "traefik.http.services.plex.loadbalancer.server.port=32400"
- resources:
- limits:
- memory: 2G
|