Omaship

Backups & Recovery

Your data is automatically backed up every day. Here's how it works.

Automatic Backups

Omaship backs up all your databases daily:

  • Primary database — Users, content, settings
  • Queue database — Background jobs
  • Cache database — Cached data

Backups are stored in two locations:

Local Storage

On your server for 7 days. Fast recovery for recent issues.

Cloud Storage

Off-site on Hetzner for 30 days. Protection against server failure.

Viewing Backups

Check your backup status in the admin dashboard:

yourdomain.com/admin → Settings → Backups

You'll see:

  • Last backup time
  • Backup size
  • Storage locations
  • Retention period remaining

Restoring Data

Use the interactive restore tool to browse and restore from backups:

bin/restore

This opens a TUI (terminal interface) where you can:

  • Browse available backups with arrow keys
  • See backup timestamps and sizes
  • Select and restore specific backups
  • Choose which database to restore

Production restore? For production restores, run bin/restore via Kamal: kamal app exec -i "bin/restore"

What's Not Backed Up

  • Uploaded files — Stored separately and backed up independently
  • Environment secrets — These are in GitHub Secrets, not your database

For Developers

To manually trigger a backup or customize retention:

# Trigger backup now
rails runner "OmashipBackup::BackupDatabasesJob.perform_now"

# Check local backups
ls -lah storage/backups/

See Engine Reference for omaship_backup configuration options.