Linux

Where Does PodFetch Store Data?

PodFetch keeps its database in /app/db and episodes in /app/podcasts. Env vars configure; volumes preserve.

Last updated

PodFetch splits into two volumes. The /app/db volume holds podcast.db (SQLite by default, Postgres optional) with subscriptions, progress, and users. The /app/podcasts volume holds downloaded episode audio. Configuration arrives as environment variables (polling interval, server URL, database URL), so no config file enters the backup.

Ownership bites new installs: the container runs as 1000:1000, and root-created volumes come back unwritable. Chown host folders before first start. UID/GID, polling, and server URL travel in compose env, which belongs in version control next to the volume backups.

Where PodFetch stores this, by platform

Linux
/app/db (Docker volume)

podcast.db with subscriptions, progress, users. SQLite default; Postgres via DATABASE_URL. Mount persistently with 1000:1000 ownership. Env configures; this volume preserves.

Linux
/app/podcasts (Docker volume)

Downloaded episode audio. Bind to bulk storage (even a separate HDD) while the db stays on fast disk. GPodder and Audiobookshelf integrations read from this same tree.

Frequently asked questions

how do i back up podfetch

Copy the /app/db volume (podcast.db) and /app/podcasts with the container stopped, plus your env (DATABASE_URL, POLLING_INTERVAL). Restore both volumes to the same container paths. Postgres users dump that database instead.

can podcasts live on a different drive than the database

Bind-mount the drive at /app/podcasts and keep the db volume where it is. PODFETCH_FOLDER only matters when you want a different in-container path; the mount target is what actually separates SSD metadata from HDD media.

Notice an outdated path? Let us know.