3 Backups
Maurice edited this page 2026-03-30 22:43:03 +02:00

Backups

Manual Backups

In the Admin Panel → Backups you can:

  • Create a backup (ZIP containing the database + all uploads)
  • Download existing backups
  • Restore from a backup file (with a confirmation warning dialog)
  • Upload a backup from your local machine to restore
  • Delete old backups

Warning: Restoring a backup permanently replaces all current data. Always create a fresh backup before restoring. A red warning popup explains this before proceeding.

Auto-Backups

Configure automatic backups in Admin Panel → Backups → Auto-Backup:

Setting Options Default
Enabled On / Off Off
Interval Hourly, Daily, Weekly, Monthly Daily
Retention Number of days to keep (0 = forever) 7 days

Scheduling

Auto-backups use the container's timezone (set via the TZ environment variable):

  • Hourly: every hour at :00
  • Daily: 2:00 AM (configurable hour)
  • Weekly: configurable day of week at the set hour
  • Monthly: configurable day of month at the set hour

Example for daily backups at 3 AM Berlin time:

environment:
  TZ: Europe/Berlin

Backup Contents

Each backup is a ZIP file containing:

  • travel.db — the complete SQLite database
  • uploads/ — all uploaded files (photos, documents, covers, avatars)

External Backups

Since all data is in the mounted volumes, you can also back up at the filesystem level:

# Stop the container for a consistent snapshot
docker stop trek

# Copy data
cp -r ./data ./backup-data
cp -r ./uploads ./backup-uploads

# Restart
docker start trek

Or use sqlite3 to create a hot backup without stopping:

docker exec trek sqlite3 /app/data/travel.db ".backup '/app/data/backup.db'"