Audiobookshelf
Server for audiobooks and podcasts with a web player and mobile apps.
- Replaces
-
Paid audiobook services, such as Audible.
All open-source alternatives to Audible
- Difficulty
-
Difficulty: Easy
1 service, 4 volume mounts, no env values to set, no elevated host access. Heuristic score 2 of 11: easy.
- Stack
JavaScript (language)
- Deployment
docker_compose
- Requirements
Not stated.
- License
-
GPL-3.0(OSI-approved open source)Read from github.com/advplyr/audiobookshelf/blob/743d915/LICENSE
- Business model
-
Unknown
The README at the pinned commit does not state a business model, so it stays unknown.
Source: github.com/advplyr/audiobookshelf/blob/743d915/readme.md, read on .
- Repository
GitHub stats
- Stars
- 14,739
- Forks
- 1,228
- Open issues and pull requests
- 1,241
- Last push
- 2026-10-05
- Latest release
- v2.37.1
- Released
- 2026-09-29
From the GitHub API on . These numbers are a snapshot, not live. GitHub detected the license as GPL-3.0.
Compose file
### EXAMPLE DOCKER COMPOSE ###
services:
audiobookshelf:
image: ghcr.io/advplyr/audiobookshelf:latest
# ABS runs on port 13378 by default. If you want to change
# the port, only change the external port, not the internal port
ports:
- 13378:80
volumes:
# These volumes are needed to keep your library persistent
# and allow media to be accessed by the ABS server.
# The path to the left of the colon is the path on your computer,
# and the path to the right of the colon is where the data is
# available to ABS in Docker.
# You can change these media directories or add as many as you want
- ./audiobooks:/audiobooks
- ./podcasts:/podcasts
# The metadata directory can be stored anywhere on your computer
- ./metadata:/metadata
# The config directory needs to be on the same physical machine
# you are running ABS on
- ./config:/config
restart: unless-stopped
# You can use the following user directive to run the ABS
# docker container as a specific user. You will need to change
# the UID and GID to the correct values for your user.
# user: 1000:1000
From the app's own repository: github.com/advplyr/audiobookshelf/blob/743d915/docker-compose.yml.
Compose file from the app repository.
Install
- Docker with the Compose plugin (github.com/advplyr/audiobookshelf/blob/743d915/docker-compose.yml)
A host with Docker and the Docker Compose plugin. This entry runs from a compose file.
- Save the compose file as docker-compose.yml (github.com/advplyr/audiobookshelf/blob/743d915/docker-compose.yml)
Use the compose file shown above.
- Start it (github.com/advplyr/audiobookshelf/blob/743d915/docker-compose.yml)
docker compose up -d - Open the app (github.com/advplyr/audiobookshelf/blob/743d915/docker-compose.yml)
Open http://localhost:13378. The compose file publishes host port 13378 for the audiobookshelf service.
Compose file check: config_ok on 2026-10-22.
Gotchas and maintenance
Gotchas
- Some images use the latest tag or no tag. Images without a pinned version: audiobookshelf: ghcr.io/advplyr/audiobookshelf:latest. A later pull can get a different version. (github.com/advplyr/audiobookshelf/blob/743d915/docker-compose.yml, checked 2026-10-22)
- The compose file publishes host ports. Host ports: 13378 (audiobookshelf). A port without a host address listens on all host network interfaces. (github.com/advplyr/audiobookshelf/blob/743d915/docker-compose.yml, checked 2026-10-22)
- The compose file mounts host folders. Host paths mounted into containers: ./audiobooks at /audiobooks (audiobookshelf), ./podcasts at /podcasts (audiobookshelf), ./metadata at /metadata (audiobookshelf), ./config at /config (audiobookshelf). (github.com/advplyr/audiobookshelf/blob/743d915/docker-compose.yml, checked 2026-10-22)
Signals
- Open issues and pull requests: 1241
- Last push: 2026-10-05 (16 days before this page was built)
- Latest release: v2.37.1 on 2026-09-29 (22 days before this page was built)