docker.recipes

Podgrab

beginner

Self-hosted podcast manager and downloader.

Overview

Podgrab is a self-hosted podcast management and downloading application developed by Akhil Rex that provides users with complete control over their podcast consumption experience. Built as a lightweight Go application with a clean web interface, Podgrab eliminates the need for third-party podcast services by allowing users to directly subscribe to RSS feeds, automatically download episodes, and organize their podcast library on their own infrastructure. The application supports OPML import/export for easy migration from existing podcast clients and provides automated episode checking at configurable intervals. This Docker deployment configuration creates a standalone podcast management server that monitors RSS feeds, downloads new episodes automatically, and serves them through a web interface accessible on port 8080. Podgrab handles the entire podcast workflow from subscription management to file organization, storing downloaded episodes in a structured directory format organized by podcast name. The container includes persistent storage for both configuration data and the actual podcast files, ensuring your library remains intact across container restarts. This setup is perfect for podcast enthusiasts who want to maintain their own podcast archive, families sharing podcast collections across multiple devices, or privacy-conscious users who prefer not to rely on commercial podcast platforms. Content creators and researchers will appreciate having offline access to episodes and the ability to maintain permanent archives of podcasts that might be removed from hosting platforms. The simple deployment makes it accessible to home lab enthusiasts while the reliable automation features suit users managing large podcast collections.

Key Features

  • RSS feed subscription management with automatic episode discovery and metadata parsing
  • Configurable episode checking frequency with CHECK_FREQUENCY environment variable (default 240 minutes)
  • Web-based interface for podcast search, subscription, and library management without authentication barriers
  • Automatic episode downloading with organized file structure using podcast names as directories
  • OPML import and export functionality for migrating subscriptions from other podcast applications
  • Episode metadata extraction including descriptions, publication dates, and artwork
  • Built-in podcast search functionality to discover new shows without manual RSS URL entry
  • Lightweight Go-based application with minimal resource requirements and fast startup times

Common Use Cases

  • 1Personal podcast archiving for offline listening during travel or in areas with poor connectivity
  • 2Family podcast servers providing centralized access to educational content and entertainment shows
  • 3Content research and journalism workflows requiring permanent archives of podcast episodes
  • 4Privacy-focused podcast consumption without tracking from commercial platforms
  • 5Small team or organization podcast libraries for training materials and industry content
  • 6Home lab media server integration alongside other self-hosted entertainment applications
  • 7Backup solution for favorite podcasts that might be removed from hosting platforms

Prerequisites

  • Docker and Docker Compose installed with at least 512MB available RAM for the container
  • Port 8080 available for the web interface, or ability to modify the port mapping
  • Sufficient storage space at /path/to/podcasts location for downloaded episodes (recommend 10GB minimum)
  • Network connectivity for RSS feed checking and episode downloading from podcast hosts
  • Basic understanding of podcast RSS feeds and OPML files for subscription management
  • Web browser for accessing the Podgrab interface and managing subscriptions

For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms

docker-compose.yml

docker-compose.yml
1services:
2 podgrab:
3 image: akhilrex/podgrab:latest
4 container_name: podgrab
5 restart: unless-stopped
6 ports:
7 - "8080:8080"
8 environment:
9 CHECK_FREQUENCY: 240
10 volumes:
11 - podgrab_config:/config
12 - /path/to/podcasts:/assets
13
14volumes:
15 podgrab_config:

.env Template

.env
1CHECK_FREQUENCY=240

Usage Notes

  1. 1Docs: https://github.com/akhilrex/podgrab
  2. 2Access at http://localhost:8080 - no authentication by default
  3. 3Add podcasts via RSS feed URL or search by name
  4. 4CHECK_FREQUENCY sets how often to check for new episodes (minutes)
  5. 5Downloads stored at /assets, organize by podcast name
  6. 6OPML import/export for migrating from other podcast apps

Quick Start

terminal
1# 1. Create the compose file
2cat > docker-compose.yml << 'EOF'
3services:
4 podgrab:
5 image: akhilrex/podgrab:latest
6 container_name: podgrab
7 restart: unless-stopped
8 ports:
9 - "8080:8080"
10 environment:
11 CHECK_FREQUENCY: 240
12 volumes:
13 - podgrab_config:/config
14 - /path/to/podcasts:/assets
15
16volumes:
17 podgrab_config:
18EOF
19
20# 2. Create the .env file
21cat > .env << 'EOF'
22CHECK_FREQUENCY=240
23EOF
24
25# 3. Start the services
26docker compose up -d
27
28# 4. View logs
29docker compose logs -f

One-Liner

Run this command to download and set up the recipe in one step:

terminal
1curl -fsSL https://docker.recipes/api/recipes/podgrab/run | bash

Troubleshooting

  • Episodes not downloading automatically: Verify CHECK_FREQUENCY environment variable is set and check container logs for RSS feed parsing errors
  • Web interface not accessible: Ensure port 8080 is not blocked by firewall and check if another service is using the port
  • Downloaded files not persisting: Verify the /path/to/podcasts volume mount path exists and has proper write permissions
  • RSS feeds failing to parse: Check if podcast URLs are valid and accessible, some feeds may require user-agent headers
  • OPML import not working: Ensure OPML file format is valid and contains proper RSS feed URLs, not web page links
  • Container startup failures: Check available disk space for Docker volumes and verify the akhilrex/podgrab image can be pulled

Community Notes

Loading...
Loading notes...

Download Recipe Kit

Get all files in a ready-to-deploy package

Includes docker-compose.yml, .env template, README, and license

Ad Space