Install via docker compose
# docker-compose.yml
services:
audiobookshelf:
image: ghcr.io/advplyr/audiobookshelf:latest
container_name: audiobookshelf
restart: unless-stopped
user: "1000:1000" # match the owner of your media files
ports:
- "127.0.0.1:13378:80"
volumes:
- ./config:/config
- ./metadata:/metadata
- /mnt/media/audiobooks:/audiobooks:ro
- /mnt/media/podcasts:/podcasts
- /mnt/media/ebooks:/ebooks:ro
environment:
TZ: "America/Toronto"
docker compose up -d
docker compose logs -f audiobookshelf
Reverse proxy
# Caddy
audiobooks.example.com {
reverse_proxy 127.0.0.1:13378
request_body { max_size 5GB }
}
Set the SERVER_URL in Audiobookshelf settings to the public URL so the mobile apps can connect from outside the LAN.
First-run setup
Browse to http://<host>:13378:
- Create the root user (becomes admin).
- Add libraries:
- Type: Books → Folder:
/audiobooks→ Match: Audible / Google Books - Type: Podcasts → Folder:
/podcasts - Type: Books → Folder:
/ebooks(treated as ePub library)
- Type: Books → Folder:
- Click "Scan" — Audiobookshelf reads metadata from filenames + embedded ID3 tags, fetches cover art and book descriptions from the configured providers.
Library file layout
Audiobookshelf parses metadata from filenames. The conventions:
# Audiobooks: one folder per book
audiobooks/
Andy Weir/
The Martian/
01 - The Martian.m4b
cover.jpg (optional explicit cover)
Ursula K. Le Guin/
The Dispossessed/
Disc 1 - The Dispossessed.mp3
Disc 2 - The Dispossessed.mp3
Disc 3 - The Dispossessed.mp3
metadata.opf (optional explicit metadata)
# Podcasts: one folder per podcast
podcasts/
The Daily/
2024-09-25 - Morning Brief.mp3
2024-09-26 - Morning Brief.mp3
For podcasts, Audiobookshelf can auto-fetch new episodes from RSS feeds — configure the feed URL per podcast and the server downloads new episodes on a schedule.
Mobile apps
- iOS: Audiobookshelf on the App Store, plus the third-party "Plappa" and "BookPlayer-AS" clients.
- Android: Audiobookshelf official, plus the more-polished "Audiobookshelf Tracker" community client.
Both apps stream audio from the server over HTTPS; both can download for offline; both sync the playback position back to the server so opening on another device picks up where you left off.
Multi-user with per-user progress
Settings → Users → Add. Each user has independent library access (configurable per-library) and their own playback progress. Useful for families — everyone has their own "Continue Listening" queue, no spoilers in the metadata.
Podcast features
- OPML import — bring in subscriptions from another podcast client.
- Auto-download episodes — configurable per podcast: last-N episodes, all episodes, none.
- Custom feeds — expose your library as RSS feeds; useful for adding self-curated content as a "podcast" in another app.
ePub support
ePub libraries get rendered in the browser via a built-in reader; the mobile apps also handle them. Bookmarks and last-position sync. For PDFs, the reader supports them but the experience is plainer than dedicated PDF apps.
Bringing in content
- DRM-free audiobook purchases — libro.fm, downpour, audiobookstore, direct from publishers. Drop the resulting .mp3 / .m4b files into the library structure.
- Library lending — Libby / OverDrive WMA-DRM downloads can be converted (the legality varies by jurisdiction; check yours).
- Audible — audible-cli can download owned content;
AAXtoMP3converts the .aax / .aaxc to playable mp3/m4b. Owned-content-only. - Self-recorded — if you record audio yourself (sermons, lectures, family histories), drop it in. Audiobookshelf handles non-published material identically.
Performance
On modest hardware (a Raspberry Pi 5, a small VPS), Audiobookshelf handles a few hundred audiobooks + a dozen podcasts with no issue. Audio transcoding is rarely needed — all major formats stream directly to clients. CPU usage at idle is essentially zero.
Backups
./config/— users, library definitions, playback progress, sessions../metadata/— covers, fetched book metadata, cached chapter info.- The media itself (your audiobooks/podcasts/ebooks) — back up if losing them would matter; podcasts you can re-download.
When Audiobookshelf is the wrong tool
- If you want a unified video + audio media server, Jellyfin (see that tutorial) handles audiobooks but the UX is video-first.
- If you need an Audible-replacement that handles their DRM directly — you can't, period; you have to convert to DRM-free first.
- For very large podcast queues with episode-level scoring / ML recommendations — Audiobookshelf is utilitarian; Spotify-style discovery isn't its lane.
For "I own audiobooks, listen to podcasts, want to read ePubs, and want it all on a server my family shares," Audiobookshelf is the cleanest pick in 2026.