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

Talking Website Success: How I Built a Site That Talks, Captures Leads, and Generates $500/month | Brav

Talking Website Success: How I Built a Site That Talks, Captures Leads, and Generates $500/month

Learn how I built a talking website that turns visitors into clients, earns $500/month, and uses GoHighLevel, Yext, and Synthesia for automation and local SEO.
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.
Build a Personal AI Assistant with Claude in 10 Minutes | Brav

Build a Personal AI Assistant with Claude in 10 Minutes

Learn how to build a personal AI assistant with Claude in under 10 minutes, automating tasks, scanning documents, and integrating with ClickUp and Google Workspace.
Ad Creative Mastery: 4 Golden Rules That Turn Pixels into Profits | Brav

Ad Creative Mastery: 4 Golden Rules That Turn Pixels into Profits

Unlock secrets to high-performing Ad Creative with four proven rules—grid structure, product focus, color contrast, and authority. Turn clicks into revenue.
Whisk + Antigravity: Build a $3,000 Local Business Site in 4 Hours | Brav

Whisk + Antigravity: Build a $3,000 Local Business Site in 4 Hours

Discover how to use Google’s free Whisk and Antigravity tools to build a $3,000 local business website in 4 hours, saving time and money.
Cutting Latency in C++: Building a Low-Latency Trading System From Scratch | Brav

Cutting Latency in C++: Building a Low-Latency Trading System From Scratch

Learn how to design a low-latency C++ trading system from scratch, with real-world data structures, network stacks, and profiling tips that shave microseconds.