You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
adc/ansible/roles/mediaserver/templates/mediaserver-compose.yml

238 lines
9.1 KiB

---
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