version: "3.7"
services:
booksonic:
image: lscr.io/linuxserver/booksonic-air:2201.1.0
container_name: booksonic
environment:
- PUID=1000
- PGID=1000
- TZ=${TZ}
- CONTEXT_PATH={APP_PROTOCOL:-http}://${APP_DOMAIN}
volumes:
- ${APP_DATA_DIR}/config:/config
- ${ROOT_FOLDER_HOST}/media/data/books/spoken:/audiobooks
- ${ROOT_FOLDER_HOST}/media/data/podcasts:/podcasts
ports:
- ${APP_PORT}:4040
restart: unless-stopped
networks:
- tipi_main_network
labels:
# Main
traefik.enable: true
traefik.http.middlewares.booksonic-web-redirect.redirectscheme.scheme: https
traefik.http.services.booksonic.loadbalancer.server.port: 4040
# Web
traefik.http.routers.booksonic-insecure.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.booksonic-insecure.entrypoints: web
traefik.http.routers.booksonic-insecure.service: booksonic
traefik.http.routers.booksonic-insecure.middlewares: booksonic-web-redirect
# Websecure
traefik.http.routers.booksonic.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.booksonic.entrypoints: websecure
traefik.http.routers.booksonic.service: booksonic
traefik.http.routers.booksonic.tls.certresolver: myresolver
# Local domain
traefik.http.routers.booksonic-local-insecure.rule: Host(`booksonic.${LOCAL_DOMAIN}`)
traefik.http.routers.booksonic-local-insecure.entrypoints: web
traefik.http.routers.booksonic-local-insecure.service: booksonic
traefik.http.routers.booksonic-local-insecure.middlewares: booksonic-web-redirect
# Local domain secure
traefik.http.routers.booksonic-local.rule: Host(`booksonic.${LOCAL_DOMAIN}`)
traefik.http.routers.booksonic-local.entrypoints: websecure
traefik.http.routers.booksonic-local.service: booksonic
traefik.http.routers.booksonic-local.tls: true