services: jellyfin: image: jellyfin/jellyfin:latest container_name: jellyfin restart: unless-stopped environment: - PUID=1000 - PGID=1000 - TZ=Europe/Berlin volumes: - ./config/jellyfin:/config - ./cache/jellyfin:/cache - ./media:/media networks: - media-network - traefik-public labels: - "traefik.enable=true" # Route both movies.jeffemmett.com and music.jeffemmett.com to Jellyfin - "traefik.http.routers.jellyfin.rule=Host(`movies.jeffemmett.com`) || Host(`music.jeffemmett.com`)" - "traefik.http.routers.jellyfin.entrypoints=web" - "traefik.http.routers.jellyfin.middlewares=jellyfin-headers" - "traefik.http.services.jellyfin.loadbalancer.server.port=8096" - "traefik.http.middlewares.jellyfin-headers.headers.customRequestHeaders.X-Forwarded-Proto=https" - "traefik.docker.network=traefik-public" sonarr: image: linuxserver/sonarr:latest container_name: sonarr restart: unless-stopped environment: - PUID=1000 - PGID=1000 - TZ=Europe/Berlin volumes: - ./config/sonarr:/config - ./media/shows:/tv - ./downloads:/downloads ports: - 8989:8989 networks: - media-network radarr: image: linuxserver/radarr:latest container_name: radarr restart: unless-stopped environment: - PUID=1000 - PGID=1000 - TZ=Europe/Berlin volumes: - ./config/radarr:/config - ./media/movies:/movies - ./downloads:/downloads ports: - 7878:7878 networks: - media-network prowlarr: image: linuxserver/prowlarr:latest container_name: prowlarr restart: unless-stopped environment: - PUID=1000 - PGID=1000 - TZ=Europe/Berlin volumes: - ./config/prowlarr:/config ports: - 9696:9696 networks: - media-network transmission: image: linuxserver/transmission:latest container_name: transmission restart: unless-stopped environment: - PUID=1000 - PGID=1000 - TZ=Europe/Berlin - TRANSMISSION_WEB_HOME=/web volumes: - ./config/transmission:/config - ./downloads:/downloads - ./watch:/watch ports: - 9091:9091 - 51413:51413 - 51413:51413/udp networks: - media-network networks: media-network: driver: bridge traefik-public: external: true