Your Audiobooks, Your Server, Your Rules
Audible and similar platforms do a fine job of selling you audiobooks – and then making sure you never truly own them. Your library lives on their servers, your access depends on your subscription, and the app decides what features you get. Audiobookshelf is the alternative that hands control back to you: a free, open-source audiobook and podcast server you install on your own hardware, accessible from any browser or mobile device, with no licensing strings attached.
The setup process is approachable even if you have never run a self-hosted application before. Audiobookshelf runs as a Docker container, which means you do not need to manage complex dependencies or worry about it conflicting with other software on your machine. What you get is a polished web interface, native Android and iOS apps, automatic metadata fetching, progress syncing across devices, and full support for MP3, M4B, FLAC, and most other audio formats you are likely to own. This guide walks through the complete installation process on a Linux-based system using Docker Compose.

What You Need Before Starting
The minimum hardware requirement is modest. Audiobookshelf runs without complaint on a Raspberry Pi 4, an old desktop repurposed as a home server, or a VPS. You need at least 1GB of RAM available and enough storage for your audiobook collection – the application itself is lightweight, so the storage question is really just about your library size. A typical unabridged audiobook in M4B format runs between 200MB and 500MB, so plan your storage accordingly.
On the software side, you need Docker and Docker Compose installed on your host machine. If you are already running other self-hosted services – a Pi-hole instance for network-level ad blocking, for example, or a Proxmox home lab – Docker is likely already in place. If not, the official Docker documentation covers installation for Ubuntu, Debian, and other common Linux distributions in a few straightforward steps. You also need a directory structure ready for Audiobookshelf to write its configuration and metadata files, which you will define in the Compose file.
Installing Audiobookshelf with Docker Compose
Start by creating a directory to hold your Compose configuration. A clean approach is to create /opt/audiobookshelf and work from there. Inside that directory, create a file named docker-compose.yml and open it in your editor of choice. The configuration below covers a standard single-user or small household setup:
Paste the following into your Compose file, adjusting the volume paths to match where your audiobooks are actually stored on disk:
- version: “3.8”
- services:
- audiobookshelf:
- image: ghcr.io/advplyr/audiobookshelf:latest
- ports: – “13378:80”
- volumes:
- /path/to/audiobooks:/audiobooks
- /path/to/podcasts:/podcasts
- /opt/audiobookshelf/config:/config
- /opt/audiobookshelf/metadata:/metadata
- restart: unless-stopped
Once the file is saved, run docker compose up -d from the same directory. Docker will pull the Audiobookshelf image and start the container in the background. The first pull takes a minute or two depending on your connection speed. After that, the server is running and accessible at http://your-server-ip:13378 from any browser on your local network. The first time you visit that address, Audiobookshelf will prompt you to create an admin account – do this immediately, before anything else, to lock down access.
With the account created, the next step is adding your library. In the web interface, go to Settings, then Libraries, and click the button to add a new library. Give it a name, set the type to Book, and point it at the /audiobooks path you mapped in the Compose file. Audiobookshelf will begin scanning the directory and pulling in your files. Depending on how your audiobooks are organized, the scanner may pick up metadata automatically from embedded tags. For anything it cannot identify, the built-in metadata search tool pulls information from Audible, Google Books, and Open Library, letting you match cover art, author names, and chapter data manually with a few clicks.

Organizing Your Library and Syncing Across Devices
Audiobookshelf reads your file and folder structure to determine how books are organized, so how you name and arrange your files matters. The recommended pattern is a top-level folder per author, with a subfolder per title containing the audio files and any accompanying cover art. A structure like Author Name/Book Title/book.m4b gives the scanner everything it needs to organize your library cleanly without manual corrections. If your files are currently dumped in a flat directory with inconsistent naming, spending time reorganizing them before the first scan saves significant cleanup work later.
The mobile apps for Android and iOS connect to your server through the same IP address and port you use in the browser. If you want access from outside your home network, you have two options: expose port 13378 through your router (not recommended without HTTPS in place) or set up a reverse proxy like Nginx or Caddy in front of Audiobookshelf and point a domain name at it with a Let’s Encrypt certificate. The reverse proxy approach is the one worth doing properly. It takes roughly an hour to configure if you have not done it before, and the result is a clean URL with HTTPS that works anywhere your phone has an internet connection.
Progress syncing is one of the features that makes Audiobookshelf worth the setup effort. Every time you stop listening – on your phone, in your browser, wherever – the server records your position down to the second. Open the app on a different device and it picks up exactly where you left off. This works across as many devices as you register to your account, with no third-party sync service involved. The server holds the state, and every client asks the server where you are. Families running multiple user accounts each get their own independent progress tracking, so one person finishing a book does not affect anyone else’s position.
Chapter navigation deserves a mention because it is handled better here than in most commercial apps. If your M4B files include embedded chapter markers – which most ripped or purchased audiobooks do – Audiobookshelf surfaces them as a clickable chapter list in both the web player and the mobile apps. You can jump to any chapter directly, which is particularly useful for non-fiction books where you might want to revisit a specific section. For files without embedded chapters, the manual chapter editor in the admin interface lets you define them yourself by timestamp, and those definitions are stored server-side so they apply across every device.

One detail that catches some users off guard: Audiobookshelf does not move or rename your files. It reads them in place and stores all metadata separately in the /metadata directory. This means your original files stay exactly as they are, and if you ever decide to stop using Audiobookshelf, nothing about your audiobook collection has changed. The server-side metadata – custom chapter edits, reading progress, cover art overrides – lives in those config and metadata volumes, so backing up those two directories is all you need to preserve your library state. Any backup tool that can copy those directories on a schedule is sufficient, and restoring means pointing a fresh container at the same volumes.
Frequently Asked Questions
Can Audiobookshelf stream audiobooks outside my home network?
Yes, but you should set up a reverse proxy with HTTPS first. Exposing the default port without encryption is not recommended for remote access.
What audio formats does Audiobookshelf support?
Audiobookshelf supports M4B, MP3, FLAC, OGG, OPUS, and most other common audio formats, including files with embedded chapter markers.





