Media, checked 2026-10-17
Audiobookshelf: Docker configuration reference
Self-hosted server for audiobooks and podcasts with per-user progress sync and companion mobile apps.
At a glance
- Image:
ghcr.io/advplyr/audiobookshelf - Tags:
latest,edge,2.37.1,2.37.0,2.36.1 - Licence: GPL-3.0
- Source: https://github.com/advplyr/audiobookshelf
- Docs: https://audiobookshelf.org/docs
Ports
| Port | What listens | Source |
|---|---|---|
80 | HTTP listener inside the container. The official compose file maps host port 13378 to it; only the host side should be changed. | source for port 80 |
Environment variables
| Variable | Required | What it does | Example | Source |
|---|---|---|---|---|
CONFIG_PATH | No | Path to the config directory holding the users, books, libraries and settings database. Must not be on a network mount. | /config | source for CONFIG_PATH |
METADATA_PATH | No | Path to the metadata directory: cache, streams, covers, downloads, backups and logs. | /metadata | source for METADATA_PATH |
JWT_SECRET_KEY | No | Secret used to sign auth tokens. Generated randomly if unset. Changing it after deployment logs every client out. | source for JWT_SECRET_KEY | |
DISABLE_SSRF_REQUEST_FILTER | No | Turns off the server side request forgery filter, which otherwise can block self-hosted podcast feeds on the same server. | 1 | source for DISABLE_SSRF_REQUEST_FILTER |
Volumes that must persist
| Path | What is in it | Source |
|---|---|---|
/config | The SQLite database: users, libraries, progress and settings. The one directory that must be backed up. | source for /config |
/metadata | Cache, cover art, backups and logs, including any automated database backups the server creates. | source for /metadata |
/audiobooks | Audiobook library files, mounted read access for the server to scan and stream. | source for /audiobooks |
Behind a reverse proxy
- Requires a websocket connection; the nginx example sets Upgrade and Connection headers, without which playback and sync break. source for this reverse-proxy note
- Sub-path hosting is supported but the path is fixed to /audiobookshelf; it cannot be changed to anything else. source for this reverse-proxy note
- Raise client_max_body_size well above the nginx default; large audiobook and cover uploads otherwise fail with a 413. source for this reverse-proxy note
- Forward X-Forwarded-For, X-Forwarded-Proto and Host so the server logs real client IPs and builds correct links. source for this reverse-proxy note
Release timeline
| Version | Date | Breaking | What changed | Source |
|---|---|---|---|---|
v2.37.1 | 2026-09-29 | No | Fixes a Debian install EACCES error and abandoned OIDC mobile login sessions; extends the OIDC callback cookie expiry to 10 minutes. | source for release v2.37.1 |
v2.37.0 | 2026-09-28 | No | Moves the server and Docker image to Node.js 24, lets API keys authenticate websocket connections, and fixes two server crashes. | source for release v2.37.0 |
v2.36.1 | 2026-09-16 | No | Fixes collapsed series with filters and a podcast rescan emitting stale episodes, plus several API access-check and sanitization hardening changes. | source for release v2.36.1 |
v2.36.0 | 2026-07-27 | No | Adds a logout-all-devices button and an auth sessions table on the account page, plus a weak-protocol fix. | source for release v2.36.0 |
v2.35.1 | 2026-05-28 | No | Fixes duplicate refresh tokens across sessions causing unexpected logouts, and a crash renaming a duplicate author. | source for release v2.35.1 |
v2.35.0 | 2026-05-17 | No | Adds an access token refresh grace period so users stop being logged out frequently. | source for release v2.35.0 |
v2.34.0 | 2026-04-27 | No | Adds Japanese language and podcast region support, plus password manager autocomplete on login and setup fields. | source for release v2.34.0 |
v2.33.2 | 2026-04-19 | No | Fixes Matroska audiobooks with the Opus codec failing to play in the web client. | source for release v2.33.2 |
If it is not coming up
- WebSocket connection to 'wss://<your-domain>:6001/app/...' failed (UI shows "WARNING: Cannot connect to real-time service")
- Coolify volume data lost after redeploy / a new empty volume is created every deploy
Read from the upstream documentation, repository and container registry by Keita Emsden on 2026-10-17. Every row links the page it came from. Upstream changes without telling anyone, so check the source link before you rely on a value.