PigeonPod is a self-hosted podcast aggregation and subscription platform that automatically turns YouTube channels and playlists into standard, subscribable podcast feeds.
yt-dlp and FFmpeg.Run PigeonPod with a persistent SQLite database volume:
docker run -d \
--name pigeon-pod \
-p 8834:8080 \
-v pigeon-pod-data:/data \
-e SPRING_DATASOURCE_URL=jdbc:sqlite:/data/pigeon-pod.db \
-e PIGEON_LOG_FILE=/data/logs/pigeon-pod.log \
--restart unless-stopped \
marcinlis82/pigeon-pod:1.0.4
Create a docker-compose.yml file:
version: '3.8'
services:
pigeon-pod:
image: marcinlis82/pigeon-pod:1.0.4
container_name: pigeon-pod
restart: unless-stopped
ports:
- '8834:8080'
environment:
- SPRING_DATASOURCE_URL=jdbc:sqlite:/data/pigeon-pod.db
- PIGEON_LOG_FILE=/data/logs/pigeon-pod.log
volumes:
- pigeon-pod-data:/data
volumes:
pigeon-pod-data:
Start the container:
docker compose up -d
Open your browser and navigate to:
http://localhost:8834
On initial startup, log in with the administrator account to configure system settings, add feeds, and invite users.
| Variable | Default Value | Description |
|---|---|---|
SPRING_DATASOURCE_URL | jdbc:sqlite:/data/pigeon-pod.db | SQLite database connection URL |
PIGEON_LOG_FILE | /data/logs/pigeon-pod.log | Path to persistent application log file |
PIGEON_FFMPEG_LOCATION | /usr/bin/ffmpeg | Location of FFmpeg binary inside container |
JAVA_OPTS | -Dfile.encoding=UTF-8 | JVM runtime flags and options |
Mount the container /data directory to preserve your data across updates:
/data/pigeon-pod.db: SQLite database file./data/media/: Downloaded audio and video episodes./data/covers/: Podcast feed and episode cover artwork./data/logs/: Application execution logs.PigeonPod is licensed under the GNU General Public License v3.0 (GPLv3).
Content type
Image
Digest
sha256:4e7361725…
Size
283.8 MB
Last updated
2 months ago
docker pull marcinlis82/pigeon-pod