Skip to main content
  1. Posts/
  2. Self-Hosting/

Audiobookshelf - the Best Self-Hosted Audiobook Server

··740 words·4 mins· loading · loading · ·
Stilicho2011
Author
Stilicho2011
Writing about homelab, self-hosting, automation and open-source solutions
Table of Contents
Self-Hosting - This article is part of a series.
Part : This Article

Audiobookshelf - the best self-hosted audiobook server
#

If you enjoyed this article, you can support the author by becoming a sponsor on Boosty (link in the “Contacts” section).


Introduction
#

Hi! You’re on Stilicho2011’s site, and today we’re talking about a great self-hosted platform - Audiobookshelf.

If you’ve built up a big collection of audiobooks and want to listen to them from any device, sync your progress, and not depend on third-party services - stick around, this’ll be interesting!


What is Audiobookshelf?
#

Audiobookshelf is a free and fully open web app that turns your server into a full-featured audiobook library.

Project site: audiobookshelf.org
Source code: github.com/advplyr/audiobookshelf

Key features:

  • Upload and organize audiobooks
  • Listen through a browser and a mobile app
  • Sync progress across devices
  • Bookmarks and notes
  • Full control and privacy

Installing via Docker
#

The easiest way to install Audiobookshelf is with Docker. Here’s the minimal docker-compose.yml I used in the video:

services:
  audiobookshelf:
    image: ghcr.io/advplyr/audiobookshelf:latest
    container_name: audiobookshelf
    #ports:
    #  - 13378:80
    volumes:
      - /mnt/media:/audiobooks
      - /mnt/media:/podcasts
      - /home/user/docker/audiobookshelf/config:/config
      - /home/user/docker/audiobookshelf/metadata:/metadata
    environment:
      - TZ=Europe/Moscow
    restart: unless-stopped
    security_opt:
      - no-new-privileges:true
    networks:
      proxy:
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.audiobookshelf.entrypoints=http"
      - "traefik.http.routers.audiobookshelf.rule=Host(`audiobookshelf.domain.ru`)"
      - "traefik.http.middlewares.audiobookshelf-https-redirect.redirectscheme.scheme=https"
      - "traefik.http.routers.audiobookshelf.middlewares=audiobookshelf-https-redirect"
      - "traefik.http.routers.audiobookshelf-secure.entrypoints=https"
      - "traefik.http.routers.audiobookshelf-secure.rule=Host(`audiobookshelf.domain.ru`)"
      - "traefik.http.routers.audiobookshelf-secure.tls=true"
      - "traefik.http.routers.audiobookshelf-secure.service=audiobookshelf"
      - "traefik.http.services.audiobookshelf.loadbalancer.server.port=80"
      - "traefik.docker.network=proxy"

networks:
  proxy:
    external: true

Starting the service

docker compose up -d

After starting - open https://audiobookshelf.domain.ru in your browser

Interface and features
#

After your first login, you can:

  • add folders with audiobooks;
  • automatically fetch covers and descriptions;
  • use the handy built-in player;
  • track progress across books;
  • work with bookmarks and notes.

Supported formats: .mp3, .m4b (with chapter support), ID3 tags, and embedded covers. A mobile mode is available (via PWA or browser), as well as a multi-user mode.


Security and network access
#

It’s recommended to put Audiobookshelf behind a reverse proxy, for example Traefik + Authelia, Authentik, Keycloak, Zitadel, or Nginx + Basic Auth.

It’s also worth connecting a Let’s Encrypt SSL certificate, so you can listen to your books from anywhere over HTTPS.


Pros and cons
#

Pros
#

  • Free and open source.
  • Simple, convenient interface.
  • Excellent sync and mobile support.
  • Runs entirely locally.

Cons
#

  • No search inside book contents.
  • Some formats require transcoding.
  • Can’t stream directly from cloud storage.

Not just audiobooks
#

The name is a bit misleading - Audiobookshelf actually does a lot more than just store .mp3 files:

  • Podcasts. A separate library type - you can subscribe to an RSS feed, and Audiobookshelf will automatically download new episodes on a schedule, no separate podcast client needed.
  • E-books and comics. Besides audio, it supports .epub, .pdf, and comics in .cbz/.cbr - handy if you want to keep your entire home library in one place, not just the audio format.
  • Metadata from external sources. Covers, descriptions, authors, and series can be fetched automatically - Audible for audiobooks, and OpenLibrary, Google Books, and other providers for everything else.
  • Fine-grained user permissions. Each account can be given access to specific libraries, permission to download files, and so on - handy if the whole family uses the same server.
  • Sleep timer, playback speed control, chapter navigation - basic but important things for listening to audiobooks, available out of the box.

Mobile access
#

Besides the web interface, the project has official apps for Android and iOS (also open source) - with offline downloads, background playback, and Android Auto/CarPlay support. Listening progress syncs across all devices automatically, so you can start listening in the car via CarPlay and pick up right where you left off in the browser that evening.


Getting started
#

  1. Spin up a container using the docker-compose.yml above (or via LXC/VM on your own server).
  2. Mount your audiobook/podcast/book folders into the corresponding volumes.
  3. Open the web interface, create an admin account, and set up your libraries (audiobooks, podcasts, books - kept separate).
  4. Let Audiobookshelf scan the files - covers and metadata will be fetched automatically.
  5. Install the mobile app and log in with the same account to sync your progress.
  6. Put the service behind a reverse proxy with SSL, as described in the section above.

Conclusion
#

Audiobookshelf is an excellent self-hosted solution for storing and listening not just to audiobooks, but also podcasts, e-books, and comics. It installs in a few minutes via Docker, gives you full control over your media library, and doesn’t depend on any third-party cloud service. If you already have a home server, this is one of the projects well worth trying first.

Self-Hosting - This article is part of a series.
Part : This Article

Related

Diun - notifications about Docker image updates

··991 words·5 mins· loading · loading
A detailed guide to installing and configuring Diun for tracking Docker image updates. Covers deployment steps, integration with notification services, and monitoring automation, so you can update your containers on time and improve system security.