adc/ansible/roles/mediaserver/templates/mediaserver-compose.yml
josiah 7b38b89acb Fuck with ansible layout.
1. Fuck around with Goof configuration. I think ultimately this never
went anywhere, and I'll probably rip it out, but I forgot to commit it
at the time so i'm including it just to be safe.

2. Home services and home net refactor. Smaller clean ups

3. Removal of wg stuff.
2023-07-28 09:47:04 -05:00

292 lines
11 KiB
YAML

---
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/nzbhydra2:latest
networks:
- pubnet
volumes:
- /home/josiah/apps/hydra2/:/config
- /home/josiah/Downloads/usenet-complete/:/data/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/:/data/downloads"
- "/home/josiah/Downloads/usenet-incomplete/:/data/incomplete-downloads"
- "/home/josiah/Downloads/usenet-watched/:/data/watched-folder"
- "/media/usenet/tv:/data/tv"
- "/media/usenet/audio/:/data/music"
- "/media/usenet/movies/:/data/movies"
- "/media/usenet/book-library/yet-to-be-added:/data/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/:/data/downloads"
- "/media/usenet/tv/:/data/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/:/data/downloads"
- "/media/usenet/audio/:/data/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/:/data/downloads"
- "/media/usenet/movies/:/data/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:/config"
- "/media/usenet/audiobooks:/media/usenet/book-library/readarr/audiobooks"
- "/media/usenet/book-library/readarr:/media/usenet/book-library/readarr" # not ready
- "/home/josiah/Downloads/usenet-complete/:/media/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
bazarr:
image: lscr.io/linuxserver/bazarr:latest
environment:
PUID: 1000
PGID: 1000
TZ: America/Chicago
volumes:
- "/home/josiah/apps/bazarr/config:/config"
- "/home/josiah/Downloads/usenet-complete/:/media/downloads"
- "/media/usenet/tv/:/media/tv"
- "/media/usenet/movies/:/media/movies"
labels:
- "traefik.enable=true"
- "traefik.http.services.mediaserver-bazarr.loadbalancer.server.port=6767"
- "traefik.http.routers.mediaserver-bazarr.service=mediaserver-bazarr"
- "traefik.http.routers.mediaserver-bazarr.rule=Host(`bazarr.services.jowj.net`)"
- "traefik.http.routers.mediaserver-bazarr.tls.certResolver=mediaserver-resolver"
- "traefik.http.routers.mediaserver-bazarr.tls=true"
networks:
- pubnet
stash:
image: git.awful.club/packages/hoard:latest
## If you intend to use stash's DLNA functionality uncomment the below network mode and comment out the above ports section
# network_mode: host
logging:
driver: "json-file"
options:
max-file: "10"
max-size: "2m"
environment:
- STASH_STASH=/data/
- STASH_GENERATED=/generated/
- STASH_METADATA=/metadata/
- STASH_CACHE=/cache/
## Adjust below to change default port (9999)
# - STASH_PORT=9999
volumes:
- /etc/localtime:/etc/localtime:ro
- "{{ vault_stash_config }}:/root/.stash"
- "{{ vault_stash_data }}:/data"
- "{{ vault_stash_metadata }}:/metadata"
- "{{ vault_stash_cache }}:/cache"
- "{{ vault_stash_generated }}:/generated"
labels:
- "traefik.enable=true"
- "traefik.http.services.mediaserver-hoard.loadbalancer.server.port=9999"
- "traefik.http.routers.mediaserver-hoard.service=mediaserver-hoard"
- "traefik.http.routers.mediaserver-hoard.rule=Host(`hoard.services.jowj.net`)"
- "traefik.http.routers.mediaserver-hoard.tls.certResolver=mediaserver-resolver"
- "traefik.http.routers.mediaserver-hoard.tls=true"
networks:
- pubnet
volumes:
traefik_acme:
traefik_logs:
vol-webdav:
networks:
pubnet:
driver: overlay