Writing

Audiobookshelf: My DIY Audiobook & Podcast Library

Saturday. Mar 21, 2026

Installing Audiobookshelf

In Part 3, I get Jellyfin running for video. Now I add Audiobookshelf so I can stream audiobooks (and podcasts) from the same little server. This post is just the install + first boot. I keep it simple and LAN-only.

1. Create the folders under /srv/media/

I keep everything in /srv/media/, so I make a clean spot for audiobooks + Audiobookshelf’s data.

sudo mkdir -p /srv/media/audiobooks
sudo mkdir -p /srv/media/podcasts
sudo mkdir -p /srv/media/audiobookshelf/config
sudo mkdir -p /srv/media/audiobookshelf/metadata

Then I make sure my user can manage the files:

sudo chown -R $USER:$USER /srv/media/audiobooks /srv/media/podcasts /srv/media/audiobookshelf

2. Install audiobookshelf with apt

I ssh into the server and activate the repository:

sudo apt install gnupg curl
wget -O- https://advplyr.github.io/audiobookshelf-ppa/KEY.gpg | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/adb-archive-keyring.gpg
sudo curl -s -o /etc/apt/sources.list.d/audiobookshelf.list https://advplyr.github.io/audiobookshelf-ppa/audiobookshelf.list

then install audiobookshelf:

sudo apt update
sudo apt install audiobookshelf

3. Enable and start the service

sudo systemctl enable --now audiobookshelf

Since audiobookshelf listens on port 13378, I open that port on UFW:

sudo ufw allow 13378/tcp

4. First login and library setup

From my main setup, I open: http://<server-ip>:13378

Then, I do the minimum setup of:

  1. Create the admin user
  2. Add libraries
  • audiobooks → I point it at my audiobooks folder under /srv/media/

5. Set up podcasts via RSS (auto-download)

Create a podcasts library

In the web UI:

  1. Settings / Libraries → Add Library
  2. Add Podcasts
  3. Folder path: /srv/media/podcasts

Add a podcast using an RSS feed

In the podcasts section

  1. Add podcast
  2. Paste the show’s RSS feed URL
  3. Save

Audiobookshelf will then fetch episodes and download them into the podcasts folder.

Make the podcasts auto-download

In the podcast settings, I enable settings like:

  • Auto-download new episodes
  • Keep only most recent N episodes
  • Delete files when episodes are removed from library

Once the RSS feed is in, the server keeps episodes coming in.

6. Quick Tests

Things I verify:

  • Audiobooks show up and play
  • Download a podcast and see that it plays
    • New episodes will land in /srv/media/podcasts/PODCAST_NAME/
  • Progress saves when I stop/resume

There are several third-party phone clients that allow you to connect to an audiobookshelf instance, but none of them supported both audiobooks and podcasts while supporting downloads/local playback and being FOSS. I decided to:

7. Get the official iPhone app

Audiobookshelf has an official iOS app, but the TestFlight often fills up (Apple caps betas at 10,000 testers). When I tried to join, it was full — so I cloned the app repo and built it locally with Xcode instead.

Clone and prepare the repo

On my laptop:

git clone https://github.com/advplyr/audiobookshelf-app.git
cd audiobookshelf-app
npm install

Then, I generate the web assets and sync them into the native iOS project:

npm run generate
npx cap sync
npx cap open ios

The last command opens the iOS project in XCode.

Create an identifier (Bundle ID/App ID)

In XCode:

  1. Click the app target > Signing & Capabilities
  2. Set Team to my apple developer account
  3. Change the Bundle Identifier to something unique
  • com.seanwong.audiobookshelf

Build and install on my iPhone

  1. Connect iPhone via USB cable
  2. In XCode, select your iPhone as the run target
  3. On the Xcode menu bar, click Product > Archive
  4. In Organizer, click Distribute App > Debugging, then export an .ipa
  5. In Window > Devices and Simulators drop the generated .ipa into Installed Apps

8. Log into my server on the app

Once the app is installed, I enter my server URL and the username + password I created earlier. Since the instance is LAN-only, the iOS app only works on home Wi-Fi. Fortunately, I can download audiobooks and podcasts onto my device for offline playback.