services: komga: image: gotson/komga:latest container_name: komga environment: - TZ=${TZ} - PUID=${APP_USER_ID} - PGID=${APP_GROUP_ID} - SERVER_PORT=${KOMGA_PORT} # Kobo/KOReader support - KOMGA_KOBO_PROXY=false volumes: - ./config:/config - /mnt/media/books:/books - /mnt/media/bookdrop:/bookdrop restart: unless-stopped networks: - homelab labels: # Traefik traefik.enable: true traefik.docker.network: homelab # Middleware for Kobo sync support - increased buffer sizes traefik.http.middlewares.komga-buffering.buffering.maxRequestBodyBytes: 268435456 traefik.http.middlewares.komga-buffering.buffering.memRequestBodyBytes: 268435456 traefik.http.middlewares.komga-buffering.buffering.retryExpression: IsNetworkError() && Attempts() < 3 traefik.http.middlewares.komga-headers.headers.customrequestheaders.X-Forwarded-Proto: https # Authelia middleware for /api and /opds endpoints (main web UI) traefik.http.middlewares.komga-auth.forwardauth.address: http://authelia:9091/api/authz/forward-auth traefik.http.middlewares.komga-auth.forwardauth.trustForwardHeader: true traefik.http.middlewares.komga-auth.forwardauth.authResponseHeaders: Remote-User,Remote-Groups,Remote-Name,Remote-Email # Kobo router - NO Authelia (uses Kobo's built-in auth) - Higher priority to match first traefik.http.routers.komga-kobo.rule: Host(`${TRAEFIK_HOST}`) && PathPrefix(`/kobo`) traefik.http.routers.komga-kobo.entrypoints: websecure traefik.http.routers.komga-kobo.tls.certresolver: letsencrypt traefik.http.routers.komga-kobo.middlewares: komga-buffering,komga-headers traefik.http.routers.komga-kobo.service: komga traefik.http.routers.komga-kobo.priority: 100 # Main router for web UI - NO Authelia for initial setup traefik.http.routers.komga.rule: Host(`${TRAEFIK_HOST}`) traefik.http.routers.komga.entrypoints: websecure traefik.http.routers.komga.tls.certresolver: letsencrypt traefik.http.routers.komga.middlewares: komga-buffering,komga-headers traefik.http.routers.komga.service: komga traefik.http.routers.komga.priority: 50 # Service definition traefik.http.services.komga.loadbalancer.server.port: ${KOMGA_PORT} # Homarr Discovery homarr.name: Komga homarr.group: Services homarr.icon: mdi:book-open-variant networks: homelab: external: true