version: '3' services: jellyfin: image: jellyfin/jellyfin:latest restart: unless-stopped ports: - 1900:1900 - 7359:7359 - ${JELLYFIN_PORT_HTTP}:8096 - ${JELLYFIN_PORT_HTTPS}:8920 volumes: - ./cache:/cache - ${JELLYFIN_DIR}:/config:r - ${JELLYFIN_MEDIA_DIR}:/data/media:ro env_file: - stack.env labels: - traefik.enable=true # HTTP redirection to HTTPS - traefik.http.routers.jellyfin.entrypoints=web - traefik.http.routers.jellyfin.rule=Host(`${JELLYFIN_URL}`) - traefik.http.middlewares.jellyfin-https-redirect.redirectscheme.scheme=https - traefik.http.routers.jellyfin.middlewares=jellyfin-https-redirect # HTTPS config - traefik.http.routers.jellyfin-secure.entrypoints=websecure - traefik.http.routers.jellyfin-secure.rule=Host(`${JELLYFIN_URL}`) - traefik.http.routers.jellyfin-secure.tls=true - traefik.http.routers.jellyfin-secure.tls.certresolver=myresolver - traefik.http.services.jellyfin-secure.loadbalancer.server.port=8096 - traefik.docker.network=proxy - homepage.group=Media - homepage.name=Jellyfin - homepage.icon=jellyfin.png - homepage.href=${JELLYFIN_URL} - homepage.description=Movies - homepage.widget.type=jellyfin - homepage.widget.url=${JELLYFIN_URL} - homepage.widget.key=${JELLYFIN_API_KEY} - homepage.widget.enableBlocks=true - homepage.widget.enableNowPlaying=false