Linux

Where Does Owncast Store Its Database and Data?

Where Owncast keeps owncast.db, config, and uploads in its data directory, plus hourly backups.

Last updated

Owncast centers on a data/ directory beside the binary (or /app/data in Docker): owncast.db for everything database backed, plus emoji, public files, GeoIP data, and plugins as plain files. An hourly job copies the database to data/backup/owncastdb.bak.

The backup file covers the database only, which is the classic partial restore trap. Full protection means the whole data tree, since custom emoji and uploads never enter the .bak. Moving servers is one folder copy plus a version matched binary.

Where Owncast stores this, by platform

Linux
./data (or /app/data in Docker)

owncast.db, backup/owncastdb.bak, emoji/, public/, and plugin data here. Bind it to a host folder in Docker. The --backupdir flag relocates the hourly backup when the data dir itself is ephemeral.

Frequently asked questions

how do i migrate owncast to a new server

Copy the whole data/ directory (owncast.db, config, emoji, public files, GeoIP data) to the new host and launch the same version. The database holds config, users, and chat history together. Only the database has an automatic backup; the rest needs the folder copy.

where are owncast automatic backups

In data/backup/owncastdb.bak, written hourly by default (relocatable with --backupdir). It covers the database only: config, users, chat, tokens. Emoji, uploads, and plugins live as plain files in data/ and need separate copying.

does owncast need a persistent volume

Yes. Map the data folder to a persistent volume (/app/data in the official image) or every recreate starts blank. The image holds no state. Point your system backups at owncastdb.bak plus the data tree for full coverage.

Notice an outdated path? Let us know.