What you are setting up
Audiobookshelf is a self-hosted server for audiobooks and podcasts, started by the developer advplyr and published on GitHub. You give it folders of audio, it reads the tags and folder names, and it serves a web player plus phone apps. It can also search for podcasts, download new episodes automatically, edit chapters, merge a pile of MP3s into one m4b file, and read EPUB, PDF and comic files.
Use it for files you have the right to keep: DRM-free audiobook purchases, recordings you made, public podcast feeds.
Will one server hold your whole library?
It comes down to disk space far more than processor speed. The project does not publish minimum hardware, so add up the size of your audio folders, then leave headroom for podcast downloads and for the covers, logs and backups it keeps in its metadata folder. When a phone or browser cannot play a file in its stored format, the server converts it on the fly with FFmpeg.
One placement rule matters: the config folder holds a SQLite database, and the docs say it must sit on a disk inside the same machine, never on a network share, or it will eventually corrupt. A rented server with its own drives gets that right without any effort.
Why a server of your own suits it
- The whole machine. All of its cores, memory and disks run your library, with no other customer on the hardware.
- Nobody meters the port. Listening on mobile data, or a whole family downloading books before a trip, adds nothing to the bill: there is no transfer allowance to run over.
- A way back in. Rack servers and blades, and two cartridge models (m510, m710x), come with a console screen and power button that work even when a mistaken firewall change has shut SSH out.
- Start over freely. Reinstall the operating system yourself in the control panel whenever you want a clean start, with no ticket to open.
- No contract. Billing is month to month, and IPv6 comes at no charge alongside the one IPv4 address.
The server that fits
For one household's collection, one of the small cartridges listed with our dedicated servers gives you a complete machine for a single job, and ready ones are handed over within 30 minutes of payment approval. If your library is measured in terabytes, build one to order and choose the drives and RAID level yourself. Pick the city closest to where you listen most; there are five, in the US and Europe.
Up and running in an evening
These steps assume Ubuntu with Docker Engine and its Compose plugin already installed from Docker's repository, and that you work as root. First switch the firewall on with SSH allowed, so nothing new is reachable from outside while you work:
sed -i 's/^IPV6=.*/IPV6=yes/' /etc/default/ufw
ufw allow OpenSSH
ufw --force enable
mkdir -p /opt/audiobookshelf/config /opt/audiobookshelf/metadata
mkdir -p /data/audiobooks /data/podcasts
Then save this file as /opt/audiobookshelf/compose.yaml:
services:
audiobookshelf:
image: ghcr.io/advplyr/audiobookshelf:latest
restart: unless-stopped
environment:
- TZ=Europe/Amsterdam
ports:
- "127.0.0.1:13378:80"
volumes:
- /opt/audiobookshelf/config:/config
- /opt/audiobookshelf/metadata:/metadata
- /data/audiobooks:/audiobooks
- /data/podcasts:/podcasts
- In /opt/audiobookshelf, run
docker compose up -d. Inside the container the app uses port 80; on the server it answers on 13378. - The
127.0.0.1:in front of the port matters. Without an address, Docker publishes a port on every address the server has, IPv4 and IPv6, and on IPv4 that traffic slips past ufw. With it, and Docker Engine 28 or newer, only the server itself can connect. - Upload your files into /data/audiobooks, one folder per book, nested Author, then Series, then Book (or just Author, then Book). Loose files beside book folders can make separate titles merge into one.
- Podcasts go in /data/podcasts, one flat folder per show with no season subfolders, or add them by searching inside the app.
Claim the owner account privately
There is no preset admin password. The first person who opens the site in a browser picks the root username and password, so you want that person to be you, before the site faces the internet. On your laptop, open a tunnel with your usual account, ssh -N -L 8080:127.0.0.1:13378 you@your-server. Browse to http://localhost:8080, create the account, and then add a login for each listener under Settings.
Keep the root password somewhere safe. If it is lost, the only documented fix is stopping the server and editing the database file by hand.
Reaching it from your phone
Audiobookshelf only speaks plain HTTP and leaves remote access to you, so put NGINX or Caddy on the server to handle HTTPS for a name like books.yourdomain.com. Two details trip people up. The proxy has to pass WebSocket upgrades, because the project says the server requires a WebSocket connection; its NGINX example sets the Upgrade header, Connection "upgrade" and HTTP/1.1, then proxies to http://127.0.0.1:13378. And if you would rather use a path than a subdomain, it must be exactly /audiobookshelf.
When the proxy answers, type ufw allow 80,443/tcp to let visitors in. The proxy runs directly on the server, so ufw applies to it normally, IPv6 included.
On Android, install the beta app from Google Play. On iPhone the beta runs through TestFlight, and Apple allows TestFlight only 10,000 testers, so the seats are frequently taken; meanwhile you can save the web player to your home screen, though that cannot play offline. Use the same HTTPS address on every device: progress for downloaded books only syncs through the connection profile you downloaded them with.
Keeping it safe and current
In Settings, Backups, choose how many to keep and how large they may grow (a 0 leaves it uncapped); according to the README, the automatic backups run daily. They save the database and the cover art stored under metadata, so users and progress come back, but artwork sitting next to the books is skipped, as are all your audio files. A backup also cannot hop between install methods without progress and metadata being lost. One made on Windows restores only on Windows; one made on Linux, only on Linux. They land in metadata/backups on the same disks, so copy them, and your audio folders, to a second machine regularly. You manage the server; we keep the hardware and the network running.
To update from /opt/audiobookshelf, fetch the fresh image (docker compose pull), stop the old container (docker compose down), and start again with docker compose up --detach. New server releases usually come about once a month. The latest tag follows stable releases; a tag like 2.19.0 keeps you on that release until you edit the tag.
Audiobookshelf costs nothing. The server is GPL-3.0 licensed, and the phone apps are open source too.
When something else fits better
If your library is mostly films and series, Jellyfin or Plex is the better home. For an album collection played through Subsonic apps, Navidrome is built for music. And if you already run Audiobookshelf on Windows, know that moving between install types is unsupported and best effort: a fresh start on Docker is often simpler.
Questions people ask
- Is there a username and password I log in with first?
- No. Audiobookshelf ships without one; you invent the root login on your first visit. That is why that first visit goes through an SSH tunnel, while the proxy is still off.
- Will a backup bring my books back if a disk dies?
- Not on its own. The built-in backups keep the database and the cover art stored under metadata, so accounts and listening positions come back, but the audio files are not inside them. Keep a separate copy of your library folders on another machine.
- Can my family each keep their own place in a book?
- Yes. Each person gets their own account, and progress is tracked per user and synced across their devices. The docs advise against sharing one account, because two people playing different books on it at the same time can run into problems.
- Does the iPhone app work yet?
- It works, but it is a beta delivered through TestFlight, and Apple caps that at 10,000 testers. When seats are full you can use the web player, a third-party app, or wait for the next round of cleared seats.
- What does Audiobookshelf cost?
- Nothing. It is open source under GPL-3.0, with no paid tier and no project account. Your only cost is the server it runs on.