Skip to main content

06-audiobookshelf.md

kstack: book: Centerpoint Home Lab chapter: Media & Entertainment page: Audiobookshelf tags: [audiobookshelf, audiobooks, podcasts, media]

Overview

emptyAudiobookshelf is a self-hosted audiobook and podcast server. It manages and streams audiobook and podcast content from the UnRAID NFS share, tracks listening progress across devices, and supports mobile apps for on-the-go listening.

A notable configuration detail: the Step-CA root certificate is injected into the container's trust store so that Audiobookshelf can make HTTPS calls to internal *.home.local services (e.g. for metadata lookups or integrations).

Access

Type URL Notes External https://audio.jeeves5454.ddns.net GeoBlock (CA/US/IN) + CrowdSec — no Authentik

No *.home.local internal Traefik route — accessible externally or via direct LAN IP. Audiobookshelf uses its own account-based authentication.

Configuration

Image: ghcr.io/advplyr/audiobookshelf:latest Compose project: Standalone (managed via Portainer)

Traefik Labels

traefik.enable: "true"
traefik.http.routers.audio.rule: Host(`audio.jeeves5454.ddns.net`)
traefik.http.routers.audio.entrypoints: websecure
traefik.http.routers.audio.tls.certresolver: letsencrypt
traefik.http.routers.audio.middlewares: plex-geoblock@file,crowdsec-bouncer@file,audio-headers
traefik.http.middlewares.audio-headers.headers.customrequestheaders.X-Forwarded-Proto: https
traefik.http.services.audio.loadbalancer.server.port: 80

Volumes / Bind Mounts

Host Path Container Path Purpose /home/jeeves/docker/audiobookshelf/config /config App database and settings /home/jeeves/docker/audiobookshelf/metadata /metadata Cover art and cached metadata /mnt/Multimedia/Audio/Audio_Books /audiobooks Audiobook files (NFS from UnRAID) /mnt/Multimedia/Audio/podcasts /podcasts Podcast episode files (NFS from UnRAID) /home/jeeves/docker/step-ca/config/certs/root_ca.crt /usr/local/share/ca-certificates/step-ca.crt:ro Step-CA root cert trust injection

The Step-CA root certificate is bind-mounted into the container's CA trust directory, allowing Audiobookshelf to trust *.home.local TLS certificates when making outbound HTTPS requests to internal services.

Networks

Network Purpose traefik-net Exposes the Audiobookshelf UI

Dependencies

    NFS mount /mnt/Multimedia/Audio must be healthy for content to be accessible Step-CA root certificate at /home/jeeves/docker/step-ca/config/certs/root_ca.crt must exist for the bind mount to succeed

    Notes / Gotchas

      Audiobookshelf has its own user authentication — no Authentik ForwardAuth is applied. Manage users in the Admin panel. The X-Forwarded-Proto: https middleware is required for Audiobookshelf to generate correct callback and share URLs when behind Traefik. Podcast episode downloads are stored in /mnt/Multimedia/Audio/podcasts. Ensure UnRAID has sufficient free space for automatic podcast downloads. If Step-CA root cert is updated (e.g. after CA renewal), the container must be restarted to pick up the new cert from the bind mount. Listening progress is stored in the SQLite database under /config. Back up this directory before upgrades to preserve progress data.

      Last Updated: 2026-06-16