Skip to content

Media-Center

WIP
version: "3.7"
services:
sonarr:
image: lscr.io/linuxserver/sonarr
hostname: sonarr
restart: unless-stopped
environment:
- PUID=${PUID}
- PGID=${PGID}
- UMASK=${UMASK}
- TZ=${TZ}
- DOCKER_MODS=${DOCKER_MODS}
ports:
- 8140:8989
volumes:
- /data/docker/media-center/config/sonarr:/config
- /data/docker/media-center/torrents:/data/docker/media-center/torrents
- /mnt/vulcain/media:/mnt/vulcain/media
networks:
- homelab
deploy:
labels:
- traefik.http.routers.sonarr.rule=Host(`sonarr.zrx.sh`)
- traefik.http.services.sonarr.loadbalancer.server.port=8989
- traefik.http.routers.sonarr.middlewares=homelab-whitelist@file
- traefik.http.routers.sonarr.tls=true
- traefik.http.routers.sonarr.tls.certresolver=production
- traefik.http.routers.sonarr.tls.domains[0].main=zrx.sh
- traefik.http.routers.sonarr.tls.domains[0].sans=*.zrx.sh
placement:
constraints:
- node.hostname == neptune
radarr:
image: lscr.io/linuxserver/radarr
hostname: radarr
restart: unless-stopped
environment:
- PUID=${PUID}
- PGID=${PGID}
- UMASK=${UMASK}
- TZ=${TZ}
- DOCKER_MODS=${DOCKER_MODS}
ports:
- 8141:7878
volumes:
- /data/docker/media-center/config/radarr:/config
- /data/docker/media-center/torrents:/data/docker/media-center/torrents
- /mnt/vulcain/media:/mnt/vulcain/media
networks:
- homelab
deploy:
labels:
- traefik.http.routers.radarr.rule=Host(`radarr.zrx.sh`)
- traefik.http.services.radarr.loadbalancer.server.port=7878
- traefik.http.routers.radarr.middlewares=homelab-whitelist@file
- traefik.http.routers.radarr.tls=true
- traefik.http.routers.radarr.tls.certresolver=production
- traefik.http.routers.radarr.tls.domains[0].main=zrx.sh
- traefik.http.routers.radarr.tls.domains[0].sans=*.zrx.sh
placement:
constraints:
- node.hostname == neptune
bazarr:
image: lscr.io/linuxserver/bazarr
hostname: bazarr
restart: unless-stopped
environment:
- PUID=${PUID}
- PGID=${PGID}
- UMASK=${UMASK}
- TZ=${TZ}
- DOCKER_MODS=${DOCKER_MODS}
ports:
- 8142:6767
volumes:
- /data/docker/media-center/config/bazarr:/config
- /mnt/vulcain/media:/mnt/vulcain/media
networks:
- homelab
deploy:
labels:
- traefik.http.routers.bazarr.rule=Host(`bazarr.zrx.sh`)
- traefik.http.services.bazarr.loadbalancer.server.port=6767
- traefik.http.routers.bazarr.middlewares=homelab-whitelist@file
- traefik.http.routers.bazarr.tls=true
- traefik.http.routers.bazarr.tls.certresolver=production
- traefik.http.routers.bazarr.tls.domains[0].main=zrx.sh
- traefik.http.routers.bazarr.tls.domains[0].sans=*.zrx.sh
placement:
constraints:
- node.hostname == neptune
prowlarr:
image: ghcr.io/linuxserver/prowlarr
hostname: prowlarr
restart: unless-stopped
environment:
- PUID=${PUID}
- PGID=${PGID}
- UMASK=${UMASK}
- TZ=${TZ}
- DOCKER_MODS=${DOCKER_MODS}
ports:
- 8143:9696
volumes:
- /data/docker/media-center/config/prowlarr:/config
- /data/docker/media-center/torrents:/data/docker/media-center/torrents
networks:
- homelab
deploy:
labels:
- traefik.http.routers.prowlarr.rule=Host(`prowlarr.zrx.sh`)
- traefik.http.services.prowlarr.loadbalancer.server.port=9696
- traefik.http.routers.prowlarr.middlewares=homelab-whitelist@file
- traefik.http.routers.prowlarr.tls=true
- traefik.http.routers.prowlarr.tls.certresolver=production
- traefik.http.routers.prowlarr.tls.domains[0].main=zrx.sh
- traefik.http.routers.prowlarr.tls.domains[0].sans=*.zrx.sh
placement:
constraints:
- node.hostname == neptune
flaresolverr:
image: ghcr.io/flaresolverr/flaresolverr
hostname: flaresolverr
restart: unless-stopped
environment:
- LOG_LEVEL=${LOG_LEVEL}
- TZ=${TZ}
- BROWSER_TIMEOUT=${BROWSER_TIMEOUT}
- DOCKER_MODS=${DOCKER_MODS}
sysctls:
- "net.ipv6.conf.all.disable_ipv6=1"
networks:
- homelab
deploy:
placement:
constraints:
- node.hostname == neptune
jellyfin:
image: lscr.io/linuxserver/jellyfin
hostname: jellyfin
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
- JELLYFIN_PublishedServerUrl=${JELLYFIN_PublishedServerUrl}
ports:
- 8145:8096
- 7359:7359/udp
volumes:
- /data/docker/media-center/config/jellyfin:/config
- /mnt/vulcain/media/tv:/data/tvshows
- /mnt/vulcain/media/movies:/data/movies
- /mnt/vulcain/media/animes:/data/animes
- /data/docker/media-center/torrents/others:/data/others
restart: unless-stopped
networks:
- homelab
deploy:
labels:
- traefik.http.routers.jellyfin.rule=Host(`jellyfin.zrx.sh`)
- traefik.http.services.jellyfin.loadbalancer.server.port=8096
- traefik.http.routers.jellyfin.tls=true
- traefik.http.routers.jellyfin.tls.certresolver=production
- traefik.http.routers.jellyfin.tls.domains[0].main=zrx.sh
- traefik.http.routers.jellyfin.tls.domains[0].sans=*.zrx.sh
placement:
constraints:
- node.hostname == neptune
jellyseerr:
image: fallenbagel/jellyseerr:latest
environment:
- LOG_LEVEL=${LOG_LEVEL}
- TZ=${TZ}
ports:
- 8146:5055
volumes:
- /data/docker/media-center/config/jellyseerr:/app/config
restart: unless-stopped
networks:
- homelab
deploy:
labels:
- traefik.http.routers.jellyseerr.rule=Host(`jellyseerr.zrx.sh`)
- traefik.http.services.jellyseerr.loadbalancer.server.port=5055
- traefik.http.routers.jellyseerr.middlewares=homelab-whitelist@file
- traefik.http.routers.jellyseerr.tls=true
- traefik.http.routers.jellyseerr.tls.certresolver=production
- traefik.http.routers.jellyseerr.tls.domains[0].main=zrx.sh
- traefik.http.routers.jellyseerr.tls.domains[0].sans=*.zrx.sh
placement:
constraints:
- node.hostname == neptune
networks:
homelab:
external: true