Podcast Server in a Snap: How I Built an Ad-Free, Self-Hosted Experience with Audio Bookshelf | Brav

TL;DR

Table of Contents
  • I paid Spotify Premium for podcasts but still saw ads; I built my own podcast server.
  • Using Docker Compose I spun up Audio Bookshelf in 9 seconds.
  • I added a “podcasts” library, auto-downloaded 409 episodes, and synced progress across devices.
  • No ads, no subscription fee, full control over metadata.
  • The server runs at 192.168.4.115:11336 on my local network.

Why This Matters

I was frustrated. Every time I switched to Spotify Premium to support artists, the app kept injecting commercials between podcast episodes. The “ad-free” promise seemed empty. Plus, I was juggling multiple podcast apps—Apple Podcasts, Overcast, my phone’s built-in player—without a single place to see what I’d listened to or to schedule new downloads. If you’re in the same boat, a self-hosted solution can cut the noise, stop the subscription drain, and give you a private library that works everywhere.

Core Concepts

A podcast server is a self-hosted service that pulls RSS feeds, downloads episodes, stores them locally, and streams them to any device on your network. Think of it as a personal library for audio, like a tiny, private iTunes that lives in your living room.

How to Apply It

Below is the exact workflow I used, from preparing my directories to listening on my phone.

1. Prepare Host Folders

Create two empty directories on the machine that will run Docker:

mkdir -p ~/server/Config
mkdir -p ~/server/Metadata

These map into the container to keep settings and media out of the image.

2. Create the docker-compose.yml

version: \"3.9\"
services:
  audio-bookshelf:
    image: advplyr/audiobookshelf:latest
    container_name: audiobookshelf
    environment:
      - ADMIN_USER=admin
      - ADMIN_PASSWORD=changeme
      - REGION=GB
    volumes:
      - ~/server/Config:/config
      - ~/server/Metadata:/media
    ports:
      - \"11336:80\"
    restart: unless-stopped
  • ADMIN_USER/ADMIN_PASSWORD set the first-time login.
  • REGION=GB pulls UK-localized metadata.
  • 11336 is the public port I’ll access on my network.

⚠️ Security note: Exposing 11336 on the internet would expose your library to anyone who finds your IP. Keep it on a local network or set up a VPN.

3. Spin it Up

docker compose up -d

It takes roughly 9 seconds to start (the container is tiny). After that you can open http://192.168.4.115:11336 in any browser.

4. First-Time Login

Use the credentials from the compose file. The UI asks for an admin account; I set it to admin / changeme. After logging in, I immediately changed the password.

5. Add a “podcasts” Library

  • Click + Library → choose Podcasts → name it “podcasts”.
  • Pick an icon from the picker.
  • The library will store all downloaded episodes in ~/server/Metadata/podcasts.

6. Add Podcasts

You can search by name or paste an RSS feed. I added Distractible, a popular show, by name:

search → Distractible → add

If you want to add many at once, paste a list of RSS URLs separated by newlines.

7. Enable Auto-Download

In the library settings toggle Auto-download. Now every time a new episode appears, Audio Bookshelf pulls it without manual intervention.

8. Download Existing Episodes

When you first add a podcast, no episodes are downloaded. To grab the history, click Download all episodes. I queued 409 episodes in one go; the UI showed 0% at first, then 100% as the container logs streamed the progress.

9. Monitor Progress

The container logs show the HTTP download progress. In a terminal:

docker logs -f audiobookshelf

You’ll see lines like Downloading Episode 1 of 409 (2.4 MB).

10. Listen Anywhere

  • Browser: Open the server URL on any device connected to the same LAN.
  • Mobile: Install the Audio Bookshelf app from the Play Store or Apple App Store (beta). Log in with the same admin account or create a new user. The progress syncs automatically.

Pitfalls & Edge Cases

ParameterUse CaseLimitation
Port exposureRemote access via routerExposes data; use VPN or reverse proxy
Storage409 episodes ≈ 1 GBIf you add 10 k episodes, space runs out. Keep an SSD or external drive.
Multiple foldersOrganize by genreUI only shows one library at a time; create separate libraries if needed
BackupsProtect settingsManually copy Config/ and Metadata/ every week
Metadata provideriTunes vs. SpotifyNot all podcasts have iTunes data; fallback to RSS fallback
RegionUK vs. USAffects episode titles, release dates, and cover art
SyncCross-deviceWorks only when devices are online; offline mode may lose progress

Security Considerations

  • Keep the server on a non-public network. If you must expose it, use a reverse proxy with TLS and basic auth.
  • Change the default admin password ASAP.
  • Monitor docker logs for unexpected connections.

Storage Management

Use df -h on the host to watch free space. If you hit 90% capacity, purge old shows or move to an external drive.

Integrating with Jellyfin

Audio Bookshelf can be added as an external media source in Jellyfin, but you’ll need to enable the File Share feature and map the Metadata/ folder. This is beyond the scope of the article but worth exploring if you already run Jellyfin for video.

Quick FAQ

Q1: How do I add more podcast folders?

A1: In the UI, click + Library, choose Podcasts, and name each folder. The server will store each in a subdirectory of Metadata/.

Q2: Can I use a different metadata provider?

A2: Audio Bookshelf supports multiple providers; switch in the global settings. iTunes is the default, but you can add the Google Podcasts API or custom RSS metadata.

Q3: Will I need to expose port 11336 to the internet?

A3: No, keep it local. If you must, secure it with a reverse proxy (e.g., Nginx) and HTTPS.

Q4: How do I back up the server?

A4: Periodically copy the Config/ and Metadata/ directories to a safe location or use Docker volume backups.

Q5: Is this a replacement for Spotify for podcasts?

A5: Yes. Audio Bookshelf offers ad-free listening, unlimited storage, and full control. Plus you can stop paying Spotify.

Q6: Can I stream to my phone?

A6: Yes, either via the web UI or the mobile app; progress syncs automatically.

Q7: How do I limit storage usage?

A7: Use the “Auto-download” feature with a daily quota, or delete older episodes manually.

Conclusion

I replaced my Spotify Premium subscription with a self-hosted Audio Bookshelf server. I no longer pay for ads I never use, I control my library, and I can listen from any device in my home. If you’re a podcast enthusiast tired of third-party constraints, give this a try. If you need a simple, one-time solution and don’t care about a local network, a commercial podcast app may suffice. But for true ownership, the steps above will get you a reliable, ad-free podcast server in under 15 minutes.


References


Hero Image Prompt

A minimalist home media server setup in a modern living room. A sleek, small server rack with a glowing screen showing a podcast waveform and a stack of audiobooks. The scene is cozy, with a laptop, headphones, and a coffee mug. The lighting is soft and warm, highlighting the server’s screen and the surrounding books.

Last updated: February 25, 2026

Recommended Articles

OpenClaw: Building an Autonomous AI Business That Makes Money | Brav

OpenClaw: Building an Autonomous AI Business That Makes Money

Learn how to turn OpenClaw into a self-sustaining AI bot, from memory systems to Stripe integration, crypto token economics, and scaling strategies. A step-by-step guide for developers and entrepreneurs.
I Built a Plug-Flow Rainwater Generator That Lights LEDs With 6 kV – A Step-by-Step Demo | Brav

I Built a Plug-Flow Rainwater Generator That Lights LEDs With 6 kV – A Step-by-Step Demo

Learn how to harvest rainwater into electricity with a plug-flow tube and build a DIY generator that powers LEDs, ideal for makers, hobbyists, and educators.
How I Built a Budget-Friendly Background Removal Service on a Home GPU Rig | Brav

How I Built a Budget-Friendly Background Removal Service on a Home GPU Rig

Learn how to replace expensive background-removal APIs with a low-cost home GPU rig, using open-source models and Cloudflare R2 for privacy-first image processing.
Build a Voice AI Agent for $497 with Zero Subscription Fees | Brav

Build a Voice AI Agent for $497 with Zero Subscription Fees

Learn how to build a profitable voice AI agent for just $497 using free Google, Anthropic, and Make.com services—no monthly subscription, under 2-second response, and high ROI.
Lead Generation Unleashed: Build an Online Assessment That Converts Visitors | Brav

Lead Generation Unleashed: Build an Online Assessment That Converts Visitors

Learn how to build an online assessment that turns visitors into qualified leads. Step-by-step guide, best practices, and real metrics to boost conversion rates.