167 lines
5.2 KiB
YAML
167 lines
5.2 KiB
YAML
networks:
|
|
proxy:
|
|
external: true
|
|
media:
|
|
driver: bridge
|
|
|
|
services:
|
|
flaresolverr:
|
|
image: ghcr.io/flaresolverr/flaresolverr:latest
|
|
container_name: flaresolverr
|
|
environment:
|
|
- LOG_LEVEL=${LOG_LEVEL:-info}
|
|
- LOG_HTML=${LOG_HTML:-false}
|
|
- CAPTCHA_SOLVER=${CAPTCHA_SOLVER:-none}
|
|
- TZ=${TZ:-Europe/Madrid}
|
|
restart: unless-stopped
|
|
networks:
|
|
- media
|
|
shm_size: "1gb"
|
|
|
|
prowlarr:
|
|
image: lscr.io/linuxserver/prowlarr:latest
|
|
container_name: prowlarr
|
|
environment:
|
|
- PUID=0
|
|
- PGID=0
|
|
- TZ=${TZ:-Europe/Madrid}
|
|
volumes:
|
|
- ${COMMON_PATH}/configs/prowlarr:/config:Z
|
|
restart: unless-stopped
|
|
networks:
|
|
- media
|
|
- proxy
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.docker.network=proxy
|
|
- traefik.http.routers.prowlarr.rule=Host(`${PROWLARR_HOST}`)
|
|
- traefik.http.routers.prowlarr.entrypoints=websecure
|
|
- traefik.http.routers.prowlarr.tls=true
|
|
- traefik.http.routers.prowlarr.tls.certresolver=letsencrypt
|
|
- traefik.http.routers.prowlarr.middlewares=ths-authentik@docker
|
|
- traefik.http.services.prowlarr.loadbalancer.server.port=9696
|
|
|
|
jackett:
|
|
image: lscr.io/linuxserver/jackett:latest
|
|
container_name: jackett
|
|
environment:
|
|
- PUID=0
|
|
- PGID=0
|
|
- TZ=${TZ:-Europe/Madrid}
|
|
volumes:
|
|
- ${COMMON_PATH}/configs/jackett:/config:Z
|
|
restart: unless-stopped
|
|
networks:
|
|
- media
|
|
- proxy
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.docker.network=proxy
|
|
- traefik.http.routers.jackett.rule=Host(`${JACKETT_HOST}`)
|
|
- traefik.http.routers.jackett.entrypoints=websecure
|
|
- traefik.http.routers.jackett.tls=true
|
|
- traefik.http.routers.jackett.tls.certresolver=letsencrypt
|
|
- traefik.http.routers.jackett.middlewares=ths-authentik@docker
|
|
- traefik.http.services.jackett.loadbalancer.server.port=9117
|
|
|
|
sonarr:
|
|
image: lscr.io/linuxserver/sonarr:latest
|
|
container_name: sonarr
|
|
environment:
|
|
- PUID=0
|
|
- PGID=0
|
|
- TZ=${TZ:-Europe/Madrid}
|
|
volumes:
|
|
- ${COMMON_PATH}/configs/sonarr:/config:Z
|
|
- /mnt/media/tv:/tv
|
|
- /mnt/media/downloads:/downloads
|
|
restart: unless-stopped
|
|
networks:
|
|
- media
|
|
- proxy
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.docker.network=proxy
|
|
- traefik.http.routers.sonarr.rule=Host(`${SONARR_HOST}`)
|
|
- traefik.http.routers.sonarr.entrypoints=websecure
|
|
- traefik.http.routers.sonarr.tls=true
|
|
- traefik.http.routers.sonarr.tls.certresolver=letsencrypt
|
|
- traefik.http.routers.sonarr.middlewares=ths-authentik@docker
|
|
- traefik.http.services.sonarr.loadbalancer.server.port=8989
|
|
|
|
radarr:
|
|
image: lscr.io/linuxserver/radarr:latest
|
|
container_name: radarr
|
|
environment:
|
|
- PUID=0
|
|
- PGID=0
|
|
- TZ=${TZ:-Europe/Madrid}
|
|
volumes:
|
|
- ${COMMON_PATH}/configs/radarr:/config:Z
|
|
- /mnt/media/movies:/movies
|
|
- /mnt/media/downloads:/downloads
|
|
restart: unless-stopped
|
|
networks:
|
|
- media
|
|
- proxy
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.docker.network=proxy
|
|
- traefik.http.routers.radarr.rule=Host(`${RADARR_HOST}`)
|
|
- traefik.http.routers.radarr.entrypoints=websecure
|
|
- traefik.http.routers.radarr.tls=true
|
|
- traefik.http.routers.radarr.tls.certresolver=letsencrypt
|
|
- traefik.http.routers.radarr.middlewares=ths-authentik@docker
|
|
- traefik.http.services.radarr.loadbalancer.server.port=7878
|
|
|
|
jellyseerr:
|
|
image: fallenbagel/jellyseerr:latest
|
|
container_name: jellyseerr
|
|
environment:
|
|
- LOG_LEVEL=debug
|
|
- TZ=${TZ:-Europe/Madrid}
|
|
volumes:
|
|
- ${COMMON_PATH}/configs/jellyseerr:/app/config:Z
|
|
restart: unless-stopped
|
|
networks:
|
|
- media
|
|
- proxy
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.docker.network=proxy
|
|
- traefik.http.routers.jellyseerr.rule=Host(`${JELLYSEERR_HOST}`)
|
|
- traefik.http.routers.jellyseerr.entrypoints=websecure
|
|
- traefik.http.routers.jellyseerr.tls=true
|
|
- traefik.http.routers.jellyseerr.tls.certresolver=letsencrypt
|
|
- traefik.http.routers.jellyseerr.middlewares=ths-authentik@docker
|
|
- traefik.http.services.jellyseerr.loadbalancer.server.port=5055
|
|
|
|
# Opcional: Jellyfin en VPS (sin GPU)
|
|
jellyfin:
|
|
image: lscr.io/linuxserver/jellyfin:latest
|
|
container_name: jellyfin-vps
|
|
environment:
|
|
- PUID=0
|
|
- PGID=0
|
|
- TZ=${TZ:-Europe/Madrid}
|
|
volumes:
|
|
- ${COMMON_PATH}/configs/jellyfin-vps:/config:Z
|
|
- ${COMMON_PATH}/jellyfin/cache-vps:/cache:Z
|
|
- /mnt/media/tv:/data/tvshows
|
|
- /mnt/media/movies:/data/movies
|
|
- /mnt/media/downloads:/data/media_downloads
|
|
restart: unless-stopped
|
|
networks:
|
|
- media
|
|
- proxy
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.docker.network=proxy
|
|
- traefik.http.routers.jellyfin.rule=Host(`${JELLYFIN_HOST}`)
|
|
- traefik.http.routers.jellyfin.entrypoints=websecure
|
|
- traefik.http.routers.jellyfin.tls=true
|
|
- traefik.http.routers.jellyfin.tls.certresolver=letsencrypt
|
|
- traefik.http.routers.jellyfin.middlewares=ths-authentik@docker
|
|
- traefik.http.services.jellyfin.loadbalancer.server.port=8096
|
|
|