Audio Book Shelf

AudioBookShelf is a Self-hosted audiobook and podcast server.


It is possible to install ABS on bare-metal. They provide prebuilt packages for Debian, Redhat/CentOS and NixOS. But i am on Gentoo, so i decided against downloading a deb or an rpm package but go the containers way instead.

As usual, you need to create the audiobookshelf user but be careful to assign it to the media group so that it can access all the audiobooks and podcasts of your collection,:

useradd -d /data/daemons/audiobookshelf -m -g media audiobookshelf

Then, as user audiobookshelf, create the following docker compose yaml (see here):

version: "3.7"
      - 13378:80
      - /data/Audiobooks/:/audiobooks
      - /data/Podcasts:/podcasts
      - /data/daemons/audiobookshelf/config:/config
      - /data/Metadata:/metadata
      - TZ=Europe/Rome

Set a proper port (13378)for your needs, one that is free from all your other services. Double check the various volumes to point to your media collection properly. Also set your TimeZone (TZ) appropriately.

Now ensure your folders do exist:

mkdir /data/Podcasts
mkdir /data/Audiobooks
mkdir /data/Metadata
chown audiobookshelf:media -R /data/Podcasts /data/Audiobooks /data/Metadata
su - audiobookshelf
mkdir config

And then pull the images:

su - audiobookshelf podman compose pull

Reverse Proxy


To start it, and set it up on boot, as usual add the following lines to your /etc/local.d/80-containers.start:

su - audiobookshelf -c "podman compose up -d"

and to the /etc/local.d/80-containers.stop:

su - audiobookshelf -c "podman compose down"

You can start it now by running the above command in the start file.