Backup and restore
Two things to back up: the PostgreSQL database and the imported files. Keep your settings too: the .env file with Docker, lore.env otherwise.
Documentation for version 0.1, in preparation. Commands, variables and API endpoints are proposals: they may change before the release.
Back up
Terminal
# Database, in pg_dump's custom format
docker compose exec -T postgres pg_dump -U lore -Fc lore > lore-$(date +%F).dump
# Imported files
docker run --rm -v lore_files:/data -v "$PWD":/backup alpine \
tar czf /backup/files-$(date +%F).tar.gz -C /data .Terminal
# Database, in pg_dump's custom format
sudo -u postgres pg_dump -Fc lore > lore-$(date +%F).dump
# Imported files
sudo tar czf files-$(date +%F).tar.gz -C /var/lib/lore/files .With Docker, the volume name depends on the Docker Compose project folder: check it with docker volume ls. If PostgreSQL runs on another server, add the -h (host) and -U lore options to pg_dump.
Restore
-
Stop the application
Terminaldocker compose stop loreTerminalsudo systemctl stop lore -
Restore the database
Terminaldocker compose exec -T postgres pg_restore -U lore -d lore --clean --if-exists < lore-2026-11-10.dumpTerminalsudo -u postgres pg_restore -d lore --clean --if-exists < lore-2026-11-10.dump -
Restore the files
Terminaldocker run --rm -v lore_files:/data -v "$PWD":/backup alpine \ tar xzf /backup/files-2026-11-10.tar.gz -C /dataTerminalsudo tar xzf files-2026-11-10.tar.gz -C /var/lib/lore/files -
Start again
Terminaldocker compose start loreTerminalsudo systemctl start lore
Test your restores. A backup that was never restored is only a hypothesis. Restore regularly on a test machine.