josiah
7b38b89acb
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.
292 lines
11 KiB
YAML
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
|