Skip to content

Backups

Frona AI stores all its data on disk. Backing up is a matter of copying the right directories.

DirectoryContentsPriority
data/db/SurrealDB database (users, agents, chats, messages, tasks, memory)Critical
data/workspaces/Workspace filesImportant
data/files/Uploaded file attachmentsImportant
.envConfiguration and secretsCritical

The database contains everything. User accounts, agent definitions, conversation history, memory, tasks, and credentials. Losing it means losing all platform state.

For a consistent backup, stop the engine first:

docker compose stop frona

This ensures the database files are in a clean state (no active write-ahead logs).

tar czf frona-backup-$(date +%Y%m%d).tar.gz data/ .env
docker compose start frona

Set up a cron job for regular backups:

0 2 * * * cd /path/to/frona && docker compose stop frona && tar czf /backups/frona-$(date +\%Y\%m\%d).tar.gz data/ .env && docker compose start frona

This runs at 2 AM daily. Adjust the schedule and backup location to your needs.

  1. Stop the engine: docker compose stop frona
  2. Remove or rename the current data directory: mv data/ data.old/
  3. Extract the backup: tar xzf frona-backup-20260227.tar.gz
  4. Start the engine: docker compose start frona
  • Downtime: stopping the engine for backup causes a brief outage. For most deployments, a few seconds of downtime during off-hours is acceptable.
  • Backup size: the database grows over time, especially with many conversations. Monitor backup sizes and implement retention policies.
  • Off-site storage: keep copies of backups in a different location (cloud storage, different server) for disaster recovery.
  • Test restores: periodically test that you can actually restore from a backup. An untested backup is not a backup.