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:

audioAAbunotoohtkoBAhTsroneh/ooreNktiaccchbAramThhoeouueiaavrotBd/tppekhoilttrB.oooeee.omrkb/rrjo4//o00pkbo12g/k...mmmppp333

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:

  1. Go to Libraries → your audiobook library
  2. Click Scan (or wait for the automatic scan)
  3. Books appear automatically

Metadata and Covers

Audiobookshelf fetches metadata automatically from multiple sources:

  1. Audible — Best for popular titles (covers, descriptions, narrators)
  2. Google Books — Good fallback
  3. OpenLibrary — Open data
  4. 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:

  1. Go to Library menu → Match All
  2. Audiobookshelf attempts to match every unmatched book
  3. Review and fix any mismatches

Setting Up Podcasts

Audiobookshelf doubles as a podcast server:

  1. Create a new library with type Podcast
  2. Point it at your podcasts/ directory
  3. Add podcasts by RSS feed URL or search
  4. 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:

Use Caddy, Nginx Proxy Manager, or Traefik:

Caddy example:

a}udiorbeovoekrss.ey_opurrodxoymalionc.aclohmos{t:13378

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:

  1. SettingsUsersCreate User
  2. 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

  • 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

FeatureAudiobookshelfPlexBooksonic
Audiobook-focused❌ (media-first)
Chapter supportLimited
Podcast support
Mobile apps✅ (native)✅ (Plexamp)
Progress sync
Metadata (Audible)
Multi-user✅ (Plex Pass)
Resource usageLightHeavyLight
Active developmentVery activeActiveSlow

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.