Skip to main content
Your collection lives in a Postgres database inside the Docker stack. There are two ways to back it up: a PostgreSQL dump (full fidelity, required for proper restores) and the CSV archive export in the app (great for a human-readable copy you can open in a spreadsheet). Always back up before upgrading.

Quick backup from the app

Go to Settings → Data management → Export and download the ZIP archive. This is a CSV export — it’s human-readable and can be imported back into plamotrack. For a complete database backup that preserves sessions, access tokens, and MCP client links, use the pg_dump method below.

Database backup with pg_dump

Run the following command from your plamotrack directory. The dump file is a portable Postgres archive.
A backup is two things: the dump file and your .env. Keep them together. The .env holds the secrets (your database password and, in OIDC mode, MCP_OAUTH_SIGNING_KEY) that make the backup fully restorable.

Restoring a dump

Restore into an empty database — pg_restore will not merge cleanly into a populated one.
1

Tear down the current stack (removes the database volume)

docker compose down -v deletes the db-data volume, which is your collection. Without -v the volume survives and down is safe. Take a backup first regardless.
2

Start the database and wait for it to be ready

3

Restore the dump

4

Start everything back up

What survives a restore

What comes back depends on which half of the backup you restore and which .env you pair it with.
Never run docker compose down -v unless you intend to delete the database. The -v flag deletes Docker volumes including your Postgres data. Running docker compose down without -v is safe — the volume survives.