Mediaserver now works on docker-swarm!

master
josiah 4 years ago
parent 0245113532
commit 1145db811b

@ -36,6 +36,9 @@
- name: ensure traefik config directory exists
file: state=directory path=/home/josiah/apps/traefik/ owner=josiah group=josiah mode=0700
- name: ensure mediaserver config directory exists
file: state=directory path=/home/josiah/apps/mediaserver/ owner=josiah group=josiah mode=0700
- name: ensure traefik.log exists
file: state=file path=/home/josiah/apps/traefik/traefik.log owner=josiah group=josiah mode=0700
@ -55,21 +58,13 @@
dest: "{{ item.dest }}"
mode: 0777
with_items:
- {src: 'traefik-compose.yml', dest: '/home/josiah/apps/traefik/traefik-compose.yml'}
- {src: 'mediaserver-compose.yml', dest: '/home/josiah/apps/mediaserver/mediaserver-compose.yml'}
- {src: 'traefik.toml', dest: '/home/josiah/apps/traefik/traefik.toml'}
- {src: 'traefik.yml', dest: '/home/josiah/apps/traefik/traefik.yml'}
- name: Deploy network
docker_stack:
state: present
name: traefik
compose:
- /home/josiah/apps/traefik/traefik.yml
- name: Deploy traefik service
- name: Deploy mediaserver stack
docker_stack:
state: present
name: mediaserver
compose:
- /home/josiah/apps/traefik/traefik-compose.yml
- /home/josiah/apps/mediaserver/mediaserver-compose.yml

@ -0,0 +1,138 @@
---
version: '3.7'
services:
traefik:
image: traefik
networks:
- pubnet
command: --web --docker --docker.swarmmode --docker.watch --docker.domain="hatchery.home.jowj.net" --logLevel=DEBUG
ports:
- 80:80
- 443:443
volumes:
- traefik_acme:/acme/
- traefik_logs:/var/log/access.log
- /var/run/docker.sock:/var/run/docker.sock
- /home/josiah/apps/traefik/traefik.toml:/traefik.toml
deploy:
mode: global
placement:
constraints:
- node.role == manager
labels:
- "traefik.enable=true"
- "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.routers.mediaserver-traefik-api.entrypoints=http"
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(`hatchery.home.jowj.net`) && PathPrefix(`/hydra2`)"
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(`hatchery.home.jowj.net`) && PathPrefix(`/sabnzbd`)"
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(`hatchery.home.jowj.net`) && PathPrefix(`/sonarr`)"
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(`hatchery.home.jowj.net`) && PathPrefix(`/lidarr`)"
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(`hatchery.home.jowj.net`) && PathPrefix(`/radarr`)"
networks:
- pubnet
whoami:
image: containous/whoami:latest
networks:
- pubnet
labels:
- "traefik.enable=true"
- "traefik.http.routers.mediaserver-whoami.rule=Host(`hatchery.home.jowj.net`) && PathPrefix(`/whoami`)"
- "traefik.http.routers.mediaserver-whoami.service=mediaserver-whoami"
- "traefik.http.services.mediaserver-whoami.loadbalancer.server.port=80"
volumes:
traefik_acme:
traefik_logs:
networks:
pubnet:
driver: overlay

@ -1,62 +0,0 @@
---
version: '3'
services:
traefik:
image: traefik:v2.0
command: --web --docker --docker.swarmmode --docker.watch --docker.domain="hatchery.home.jowj.net" --logLevel=DEBUG
container_name: traefik
ports:
- 8080:8080
- 80:80
- 443:443
volumes:
- traefik_acme:/acme/
- traefik_logs:/var/log/access.log
- /var/run/docker.sock:/var/run/docker.sock
- /home/josiah/apps/traefik/traefik.toml:/etc/traefik/traefik.toml
networks:
- pubnet
- privnet
deploy:
placement:
constraints:
- node.role == manager
labels:
- "traefik.enable=true"
- "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.routers.mediaserver-traefik-api.entrypoints=http"
hydra2:
image: linuxserver/hydra2:latest
container_name: hydra2
hostname: hydra2
volumes:
- /home/josiah/apps/hydra2/:/config
- /home/josiah/Downloads/usenet-complete/:/downloads
environment:
PGID: 1000
PUID: 1000
TZ: American/Chicago
deploy:
labels:
- "traefik.enable=true"
- "traefik.http.routers.hydra2.service=hydra2"
- "traefik.http.routers.hydra2.rule=Host(`hatchery.home.jowj.net`) && PathPrefix(`/hydra2`))"
- "traefik.http.routers.hydra2.entrypoints=http"
- "traefik.http.services.hydra2.loadbalancer.server.port=5076"
networks:
- privnet
volumes:
traefik_acme:
traefik_logs:
networks:
pubnet:
external: true
networks:
pubnet:
driver: overlay
privnet:
driver: overlay

@ -1,29 +0,0 @@
version: "3.2"
# What is this?
#
# This stack exists solely to deploy the traefik_public overlay network, so that
# other stacks (including traefik-app) can attach to it
services:
scratch:
image: scratch
deploy:
replicas: 0
networks:
- pubnet
networks:
pubnet:
driver: overlay
attachable: true
ipam:
config:
- subnet: 172.16.200.0/24
privnet:
driver: overlay
attachable: true
ipam:
config:
- subnet: 172.16.219.0/24
Loading…
Cancel
Save