Self-Hosting Audiobookshelf: Your Own Audible Replacement
Audible charges $15/month for one audiobook. If you already own audiobooks (or know where to find DRM-free ones), you’re paying for a streaming app you don’t need.
Audiobookshelf is a self-hosted audiobook and podcast server that gives you everything Audible does — streaming, progress sync, mobile apps, chapters, bookmarks — for your own library. It’s free, open source, and genuinely polished.
What Audiobookshelf Does
- Stream audiobooks from any device (web, iOS, Android)
- Track progress across devices with automatic sync
- Chapter support with skip and navigation
- Podcast management with auto-download
- Multiple users with individual progress tracking
- Metadata fetching from Audible, Google Books, OpenLibrary, iTunes
- Bookmarks and notes for any position in a book
- Sleep timer and playback speed controls
- Offline download in mobile apps
- Series and collection organization
It’s not a compromise — it’s genuinely better than Audible for managing your own library.
Prerequisites
- A server or mini PC running Docker
- Audiobook files (MP3, M4B, M4A, FLAC, OGG, or any common format)
- ~512 MB RAM (very lightweight)
Installation with Docker Compose
Create the Directory Structure
mkdir -p ~/audiobookshelf
cd ~/audiobookshelf
Docker Compose File
# docker-compose.yml
services:
audiobookshelf:
image: ghcr.io/advplyr/audiobookshelf:latest
container_name: audiobookshelf
ports:
- "13378:80"
volumes:
- ./audiobooks:/audiobooks
- ./podcasts:/podcasts
- ./config:/config
- ./metadata:/metadata
environment:
- TZ=America/New_York
restart: unless-stopped
Start It
docker compose up -d
Open http://your-server-ip:13378 in your browser.
First Login
On first access, you’ll create an admin account. Pick a strong password — this protects your entire library.
Organizing Your Library
Audiobookshelf is flexible with file organization, but it works best with a clean structure:
Recommended Folder Structure
Single-File vs Multi-File
- M4B files (single file with chapters) — Cleanest option. Audiobookshelf handles chapters natively.
- MP3 folders (one file per chapter) — Works great. Files are sorted alphabetically, so name them with numbers:
01-chapter.mp3,02-chapter.mp3. - Mixed — Both work in the same library.
Adding Books
Drop files into the audiobooks/ directory (or whatever you mounted). Then in the web UI:
- Go to Libraries → your audiobook library
- Click Scan (or wait for the automatic scan)
- Books appear automatically
Metadata and Covers
Audiobookshelf fetches metadata automatically from multiple sources:
- Audible — Best for popular titles (covers, descriptions, narrators)
- Google Books — Good fallback
- OpenLibrary — Open data
- iTunes — For podcasts
Matching Books
Click any book → Match tab → search by title/author. Select the correct result and metadata + cover art are applied instantly.
Bulk Matching
For large libraries:
- Go to Library → … menu → Match All
- Audiobookshelf attempts to match every unmatched book
- Review and fix any mismatches
Setting Up Podcasts
Audiobookshelf doubles as a podcast server:
- Create a new library with type Podcast
- Point it at your
podcasts/directory - Add podcasts by RSS feed URL or search
- Configure auto-download (latest episode, all, or none)
Podcasts sync progress across devices just like audiobooks.
Mobile Apps
iOS
Download Audiobookshelf from the App Store. Enter your server URL and credentials. Features:
- Background playback
- Offline downloads
- CarPlay support
- Sleep timer
- Adjustable playback speed (0.5x-3x)
- Chapter navigation
Android
Download from the Play Store or F-Droid. Same feature set:
- Auto-sync progress
- Offline mode
- Android Auto support
- Background playback
- Chromecast support
Remote Access
To access from outside your home network:
Option 1: Reverse Proxy (Recommended)
Use Caddy, Nginx Proxy Manager, or Traefik:
Caddy example:
Option 2: Tailscale
If you don’t want to expose anything to the internet, Tailscale gives you secure access from anywhere without opening ports.
Option 3: Cloudflare Tunnel
Free, no port forwarding needed:
cloudflared tunnel --url http://localhost:13378
Multi-User Setup
Audiobookshelf supports multiple users — great for families:
- Settings → Users → Create User
- Set permissions per user:
- Admin — Full access
- User — Can listen, bookmark, rate
- Guest — Listen only, no progress tracking
Each user gets independent:
- Listening progress
- Bookmarks and notes
- Playback settings
- Library access permissions
Advanced Configuration
Custom Metadata Providers
Settings → Metadata Providers to reorder or disable sources.
Notification Integration
Audiobookshelf supports webhooks for events like:
- New book added
- Backup completed
- User activity
Connect to Discord, Slack, or Gotify for notifications.
Backup
Your data lives in two places:
- Config — Database, users, progress (
./config/) - Metadata — Cached covers, descriptions (
./metadata/)
Back these up with compose-backup or any Docker volume backup tool.
Audio files in ./audiobooks/ should be backed up separately (they’re large).
Hardware Transcoding
Audiobookshelf transcodes audio on-the-fly for streaming. On most hardware this is fine (audio transcoding is lightweight). No GPU or special hardware needed.
Where to Get Audiobooks
Legal DRM-Free Sources
- Libro.fm — Independent bookstore audiobooks, DRM-free MP3
- Downpour — DRM-free audiobook store
- LibriVox — Free public domain audiobooks (volunteer narrated)
- Audible — You can remove DRM from purchased books you own
- Local library — Many libraries lend digital audiobooks via Libby/OverDrive
Converting Audible Books
If you’ve purchased books on Audible, tools like OpenAudible can convert your .aax files to M4B while preserving chapters. You own these books — you’re just changing the format.
Troubleshooting
Books Not Showing Up
- Check the folder structure matches what your library expects
- Click Scan in the library menu
- Check file permissions: the container needs read access
# Fix permissions
chmod -R 755 ~/audiobookshelf/audiobooks
Progress Not Syncing
- Make sure you’re logged into the same account on all devices
- Check that the server is reachable from your mobile device
- Force sync: pull down to refresh in the mobile app
Slow Metadata Matching
- Audible matching requires a slight delay between requests (rate limiting)
- Large libraries can take a while to match — let it run overnight
- Manual matching is always more accurate for obscure titles
High CPU During Scan
Initial library scans with thousands of files can spike CPU. This is normal and only happens on first scan or when adding many files at once.
Container Won’t Start
# Check logs
docker logs audiobookshelf
# Common issue: port conflict
# Change the host port in docker-compose.yml
ports:
- "13379:80" # Use a different port
Comparison with Alternatives
| Feature | Audiobookshelf | Plex | Booksonic |
|---|---|---|---|
| Audiobook-focused | ✅ | ❌ (media-first) | ✅ |
| Chapter support | ✅ | Limited | ✅ |
| Podcast support | ✅ | ✅ | ❌ |
| Mobile apps | ✅ (native) | ✅ (Plexamp) | ✅ |
| Progress sync | ✅ | ✅ | ✅ |
| Metadata (Audible) | ✅ | ❌ | ❌ |
| Multi-user | ✅ | ✅ (Plex Pass) | ✅ |
| Resource usage | Light | Heavy | Light |
| Active development | Very active | Active | Slow |
Audiobookshelf wins for audiobooks specifically. Plex is better if you want one app for everything (movies, TV, music, books).
Conclusion
Audiobookshelf is one of the best self-hosted apps out there. It’s polished, actively developed, and solves a real problem — streaming your own audiobooks without paying Audible $180/year for the privilege.
Setup takes 10 minutes. The mobile apps work great. Progress syncs everywhere. If you have audiobooks, there’s no reason not to run this.
More self-hosting guides at selfhostsetup.com. Monitor your server with selfhost-doctor.