services: audiobookshelf: container_name: audiobookshelf image: ghcr.io/advplyr/audiobookshelf:2.24.0 volumes: - /mnt/storage/audiobookshelf/audiobooks:/audiobooks - /mnt/storage/audiobookshelf/podcasts:/podcasts - /mnt/storage/audiobookshelf/config:/config - /mnt/storage/audiobookshelf/metadata:/metadata networks: - traefik_network labels: - "traefik.enable=true" # Local - "traefik.http.routers.${COMPOSE_PROJECT_NAME}-local.rule=Host(`${COMPOSE_PROJECT_NAME}.local.tellserv.fr`)" - "traefik.http.routers.${COMPOSE_PROJECT_NAME}-local.entryPoints=local" - "traefik.http.routers.${COMPOSE_PROJECT_NAME}-local.tls.certresolver=cloudflare-local" - "traefik.http.routers.${COMPOSE_PROJECT_NAME}-local.tls=true" # Production - "traefik.http.routers.${COMPOSE_PROJECT_NAME}-prod.rule=Host(`${COMPOSE_PROJECT_NAME}.tellserv.fr`)" - "traefik.http.routers.${COMPOSE_PROJECT_NAME}-prod.entryPoints=websecure" - "traefik.http.routers.${COMPOSE_PROJECT_NAME}-prod.tls=true" - "traefik.http.routers.${COMPOSE_PROJECT_NAME}-prod.tls.certResolver=cloudflare" #- "traefik.http.routers.${COMPOSE_PROJECT_NAME}-prod.middlewares=tinyauth" - "traefik.http.services.${COMPOSE_PROJECT_NAME}.loadbalancer.server.port=80" # Flame Dashboard Integration # Watchtower Auto-Update - "com.centurylinklabs.watchtower.enable=true" restart: unless-stopped networks: traefik_network: external: true