Stream Your Audiobook Library Without the Subscription
Audiobookshelf is an open-source, self-hosted server that lets you manage and stream your personal audiobook and podcast collection from your own hardware. Unlike Audible or Libro.fm, there are no monthly fees, no DRM restrictions on files you already own, and no third party sitting between you and your library. If you have a collection of MP3 or M4B audiobooks sitting in a folder somewhere, Audiobookshelf turns that folder into a full-featured streaming platform accessible from any browser or mobile device.
The setup process is straightforward for anyone comfortable running Docker, and the end result is a polished web interface with metadata fetching, progress tracking, multi-user support, and dedicated iOS and Android apps. This guide walks through everything from installation to first playback, including the configuration decisions that actually matter.

What You Need Before You Start
The minimum requirement is a machine capable of running Docker – a home server, a Raspberry Pi 4 or newer, a spare desktop, or a VPS. Audiobookshelf is not resource-intensive. It handles audio streaming rather than transcoding video, so even a Pi 4 with 2GB of RAM handles a busy household library without strain. The server needs to be reachable on your local network at minimum, and if you want to stream outside your home, you will need either a VPN tunnel or a reverse proxy with a domain pointed at your server.
Your audiobook files should be organized before you start. Audiobookshelf works best when each book lives in its own folder, named after the title or author-title combination. A structure like /audiobooks/Author Name/Book Title/ with the audio files inside gives the metadata scanner enough context to pull cover art and descriptions automatically from providers like Google Books and Open Library. Loose files dumped in a single flat directory will still work, but metadata matching becomes significantly less reliable.
You will also want to decide on a data directory for Audiobookshelf’s configuration and database files. This is separate from your audiobook library – it stores user accounts, playback progress, bookmarks, and settings. Keeping it on reliable storage and including it in your backup routine matters, because losing it means losing all listening progress across every user on the server.
Installing with Docker Compose
Docker Compose is the cleanest way to run Audiobookshelf. Create a directory for the project, then add a docker-compose.yml file with the following configuration:
Set the image to ghcr.io/advplyr/audiobookshelf, map port 13378 on the host to port 80 in the container, and define three volume mounts: your audiobook library path mapped to /audiobooks, your podcast directory mapped to /podcasts, and your config directory mapped to /config. Add a metadata volume mapped to /metadata – this is where Audiobookshelf stores downloaded cover art and cached metadata, and it should persist across container restarts. Set the TZ environment variable to your local timezone. Run docker compose up -d and the container pulls the image and starts within seconds.

First Login and Library Setup
Open a browser and navigate to http://your-server-ip:13378. On first launch, Audiobookshelf prompts you to create an admin account – use a strong password here, especially if you plan to expose the server outside your local network. After logging in, the interface asks you to create your first library. Give it a name, select the type (Books or Podcasts), and point it at the folder path you mounted in the container. For the books library, that path will be /audiobooks as it appears inside the container, not the host path.
Once the library is created, Audiobookshelf begins scanning. For large libraries this can take several minutes. You can watch the scan progress in real time from the settings panel. When the scan completes, browse to your library and check a few titles. If cover art or descriptions are missing, select the book, open its edit panel, and run a metadata search manually. The search pulls from multiple sources and usually finds the correct edition within the first few results. For titles with unusual names or obscure publishers, you can paste an ISBN directly into the search to target the exact edition.
User management lives under the Settings panel. The admin account can create additional users with individual usernames and passwords, and each user gets their own playback progress tracked independently. You can restrict library access per user, which is useful if you share the server with family members who should not see every section of your collection. There is no limit on the number of user accounts, and the mobile apps support account switching, so multiple family members can use the same app installation pointed at the same server.
The iOS and Android apps are available as free downloads from their respective app stores under the name Audiobookshelf. After installing, enter your server address – either the local IP for home use or your domain if you have set up external access – and log in with your credentials. The app syncs playback position back to the server in real time, so switching between phone, tablet, and browser picks up exactly where you left off. Sleep timer, variable playback speed, and chapter navigation are all present and work reliably. One notable behavior: the app downloads chapters progressively for offline listening rather than requiring a full book download upfront, which matters when you have a slow connection but want to start listening immediately.
For external access without opening ports directly, running Audiobookshelf behind a reverse proxy like Nginx Proxy Manager or Caddy is the standard approach. Caddy in particular makes HTTPS automatic with a single configuration line if you have a domain pointed at your server’s public IP. Those already running other self-hosted tools – a web monitor, a recipe manager, a network utility – will find Audiobookshelf integrates cleanly into whatever reverse proxy setup is already in place.

One ongoing limitation worth knowing about: Audiobookshelf does not handle Audible’s AAX files natively, because those files are DRM-protected. If your library includes Audible purchases, you will need to strip the DRM using a separate tool before the files can be added to the server – a process that sits in a legal gray area depending on your jurisdiction. Files purchased from DRM-free sources like Libro.fm, Downpour, or direct publisher sales in M4B or MP3 format work without any additional steps. The size of the DRM-free audiobook market has grown noticeably over the past few years, with more publishers offering direct downloads, which makes Audiobookshelf increasingly practical as a primary listening platform rather than a supplement to a subscription service.





