--- version: '3.7' services: traefik: image: traefik:2.5 networks: - pubnet command: --web --docker --docker.swarmmode --docker.watch --docker.domain="services.jowj.net" --providers.docker.network=pubnet --logLevel=DEBUG ports: - 80:80/tcp - 443:443/tcp - 8080:8080/tcp volumes: - /home/josiah/apps/traefik/acme.json:/acme.json - traefik_logs:/var/log/access.log - /var/run/docker.sock:/var/run/docker.sock - /home/josiah/apps/traefik/traefik.yml:/traefik.yml deploy: mode: global placement: constraints: - node.role == manager environment: DO_AUTH_TOKEN: "{{ DO_AUTH_TOKEN }}" labels: # Dashboard shit I stole from Micah: # WARNING: A TRAILING SLASH IS MANDATORY IN THE BROWSER # e.g. https://example.com/dashboard/, not merely /dashboard - "traefik.enable=true" - "traefik.http.routers.mediaserver-traefik-api.tls.certResolver=mediaserver-resolver" - "traefik.http.routers.mediaserver-traefik-api.rule=Host(`hatchery.home.jowj.net`)&&(PathPrefix(`/api`)||PathPrefix(`/dashboard`)||PathPrefix(`/debug`))" - "traefik.http.routers.mediaserver-traefik-api.service=api@internal" - "traefik.http.services.mediaserver-traefik-api.loadbalancer.server.port=8080" # - "traefik.http.routers.mediaserver-traefik-api.entrypoints=http" - "traefik.http.routers.mediaserver-traefik-api.entrypoints=https" # middleware redirect - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https" # global redirect to https - "traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`)" - "traefik.http.routers.http-catchall.entrypoints=http" - "traefik.http.routers.http-catchall.middlewares=redirect-to-https" hydra2: image: linuxserver/hydra2:latest networks: - pubnet volumes: - /home/josiah/apps/hydra2/:/config - /home/josiah/Downloads/usenet-complete/:/downloads environment: PGID: 1000 PUID: 1000 TZ: American/Chicago labels: - "traefik.enable=true" - "traefik.http.services.mediaserver-hydra2.loadbalancer.server.port=5076" - "traefik.http.routers.mediaserver-hydra2.service=mediaserver-hydra2" - "traefik.http.routers.mediaserver-hydra2.rule=Host(`hydra.services.jowj.net`)" - "traefik.http.routers.mediaserver-hydra2.tls.certResolver=mediaserver-resolver" - "traefik.http.routers.mediaserver-hydra2.tls=true" sabnzb: image: "linuxserver/sabnzbd" networks: - pubnet environment: PUID: 1000 PGID: 1000 TZ: America/Chicago volumes: - "/home/josiah/apps/sabnzbd:/config" - "/home/josiah/Downloads/usenet-complete/:/downloads" - "/home/josiah/Downloads/usenet-incomplete/:/incomplete-downloads" - "/home/josiah/Downloads/usenet-watched/:/watched-folder" - "/media/usenet/tv:/tv" - "/media/usenet/audio/:/music" - "/media/usenet/movies/:/movies" - "/media/usenet/itunes-synology/iTunes Media/Automatically Add to iTunes.localized/:/itunes" - "/media/usenet/book-library/books/:/books" labels: - "traefik.enable=true" - "traefik.http.services.mediaserver-sabnzbd.loadbalancer.server.port=8080" - "traefik.http.routers.mediaserver-sabnzbd.service=mediaserver-sabnzbd" - "traefik.http.routers.mediaserver-sabnzbd.rule=Host(`sab.services.jowj.net`)" - "traefik.http.routers.mediaserver-sabnzbd.tls.certResolver=mediaserver-resolver" - "traefik.http.routers.mediaserver-sabnzbd.tls=true" sonarr: image: "linuxserver/sonarr" environment: PUID: 1000 PGID: 1000 TZ: America/Chicago volumes: - "/home/josiah/apps/sonarr:/config" - "/home/josiah/Downloads/usenet-complete/:/downloads" - "/media/usenet/tv/:/tv" labels: - "traefik.enable=true" - "traefik.http.services.mediaserver-sonarr.loadbalancer.server.port=8989" - "traefik.http.routers.mediaserver-sonarr.service=mediaserver-sonarr" - "traefik.http.routers.mediaserver-sonarr.rule=Host(`sonarr.services.jowj.net`)" - "traefik.http.routers.mediaserver-sonarr.tls.certResolver=mediaserver-resolver" - "traefik.http.routers.mediaserver-sonarr.tls=true" networks: - pubnet lidarr: image: "linuxserver/lidarr" environment: PUID: 1000 PGID: 1000 TZ: America/Chicago volumes: - "/home/josiah/apps/lidarr:/config" - "/home/josiah/Downloads/usenet-complete/:/downloads" - "/media/usenet/audio/:/music" labels: - "traefik.enable=true" - "traefik.http.services.mediaserver-lidarr.loadbalancer.server.port=8686" - "traefik.http.routers.mediaserver-lidarr.service=mediaserver-lidarr" - "traefik.http.routers.mediaserver-lidarr.rule=Host(`lidarr.services.jowj.net`)" - "traefik.http.routers.mediaserver-lidarr.tls.certResolver=mediaserver-resolver" - "traefik.http.routers.mediaserver-lidarr.tls=true" networks: - pubnet radarr: image: "linuxserver/radarr" environment: PUID: 1000 PGID: 1000 TZ: America/Chicago volumes: - "/home/josiah/apps/radarr:/config" - "/home/josiah/Downloads/usenet-complete/:/downloads" - "/media/usenet/movies/:/movies" labels: - "traefik.enable=true" - "traefik.http.services.mediaserver-radarr.loadbalancer.server.port=7878" - "traefik.http.routers.mediaserver-radarr.service=mediaserver-radarr" - "traefik.http.routers.mediaserver-radarr.rule=Host(`radarr.services.jowj.net`)" - "traefik.http.routers.mediaserver-radarr.tls.certResolver=mediaserver-resolver" - "traefik.http.routers.mediaserver-radarr.tls=true" networks: - pubnet whoami: image: containous/whoami:latest networks: - pubnet labels: - "traefik.enable=true" - "traefik.http.routers.mediaserver-whoami.rule=Host(`whoami.services.jowj.net`)" - "traefik.http.routers.mediaserver-whoami.service=mediaserver-whoami" - "traefik.http.services.mediaserver-whoami.loadbalancer.server.port=80" - "traefik.http.routers.mediaserver-whoami.tls.certResolver=mediaserver-resolver" - "traefik.http.routers.mediaserver-whoami.tls=true" tubesync: image: ghcr.io/meeb/tubesync:latest networks: - pubnet environment: PUID: 1000 PGID: 1000 TZ: America/Chicago LISTEN_HOST: "0.0.0.0" LISTEN_PORT: '8080' volumes: - "/home/josiah/apps/tubesync-config:/config" - "/media/usenet/youtube:/downloads" labels: - "traefik.enable=true" - "traefik.docker.network=pubnet" - "traefik.http.routers.mediaserver-tubesync.rule=Host(`tubesync.services.jowj.net`)" - "traefik.http.services.mediaserver-tubesync.loadbalancer.server.port=4848" - "traefik.http.routers.mediaserver-tubesync.service=mediaserver-tubesync" - "traefik.http.routers.mediaserver-tubesync.tls.certResolver=mediaserver-resolver" - "traefik.http.routers.mediaserver-tubesync.tls=true" audiobookshelf: image: ghcr.io/advplyr/audiobookshelf:latest networks: - pubnet environment: PUID: 1000 PGID: 1000 AUDIOBOOKSHELF_UID: 1000 AUDIOBOOKSHELF_GID: 1000 TZ: America/Chicago volumes: - "/home/josiah/apps/audiobookshelf/config:/config" - "/home/josiah/apps/audiobookshelf/metadata:/metadata" - "/media/usenet/audiobooks:/audiobooks" - "/media/usenet/podcasts:/podcasts" labels: - "traefik.enable=true" - "traefik.docker.network=pubnet" - "traefik.http.routers.mediaserver-audiobookshelf.rule=Host(`audiobookshelf.services.jowj.net`)" - "traefik.http.services.mediaserver-audiobookshelf.loadbalancer.server.port=80" - "traefik.http.routers.mediaserver-audiobookshelf.service=mediaserver-audiobookshelf" - "traefik.http.routers.mediaserver-audiobookshelf.tls.certResolver=mediaserver-resolver" - "traefik.http.routers.mediaserver-audiobookshelf.tls=true" readarr: image: lscr.io/linuxserver/readarr:develop container_name: readarr environment: PUID: 1000 PGID: 1000 TZ: America/Chicago volumes: - "/home/josiah/apps/readarr/config:/path/to/data:/config" - "/media/usenet/audiobooks:/data/audiobooks" - "/media/usenet/book-library/readarr:/data/books" # not ready - "/home/josiah/Downloads/usenet-complete/:/data/downloads" labels: - "traefik.enable=true" - "traefik.http.services.mediaserver-readarr.loadbalancer.server.port=8787" - "traefik.http.routers.mediaserver-readarr.service=mediaserver-readarr" - "traefik.http.routers.mediaserver-readarr.rule=Host(`readarr.services.jowj.net`)" - "traefik.http.routers.mediaserver-readarr.tls.certResolver=mediaserver-resolver" - "traefik.http.routers.mediaserver-readarr.tls=true" networks: - pubnet volumes: traefik_acme: traefik_logs: vol-webdav: networks: pubnet: driver: overlay