All pages
Data
Backups and restore
The database, Redis, file storage and permanent disk of every project are backed up daily, and a restore can be undone.
What is kept
- Postgres
- One a day, kept 7 days. On demand: the newest 10. And any second of the last 7 days (below).
- Redis
- 7 daily, 5 on demand, 2 from before a restore.
- File storage
- A copy of every file when something changed, at least weekly: 3 daily, 3 on demand, 1 from before a restore.
- Permanent disk
- Everything on it, once a day while it is in use: 3 daily, 3 on demand, 1 from before a restore.
Restoring
On the Database or Data tab, choose a backup and Restore. The current state is saved first, so a restore can be undone by restoring that.
- Postgres: the backup is loaded next to the live database and swapped in, so one that fails to load changes nothing. Connections drop for a moment.
- Redis: unavailable for a few seconds; the address and password stay the same.
- Files: files not in the backup are removed and every file in it is put back. An application reading during a restore can briefly see a mixture.
- Disk: the application is stopped, the disk is emptied and the backup unpacked onto it, and the application is started again.
arrah db backup my-api arrah db backups my-api arrah db restore my-api --backup ID --yes
Restoring Postgres to a moment
Every change to a project's database is archived, so it can go back to any second of the last 7 days — not only to a daily backup. On the Data tab, under Restore to a moment, pick the date and time and restore. The database is rebuilt as it was then, apart from the live one, and swapped in like a backup; the current state is saved first.
- The archive takes at most a minute to catch up, and a restore waits for it, so the latest second can be chosen.
- A full copy is taken with each daily backup; the archive is kept to 1 GB per database by dropping the oldest days first.
- Databases created before this existed have a Turn on button. It starts the database again, so connections drop for a few seconds. Branch environments do not archive.
- The archive stays on the server; the daily backups are what is copied off it.
arrah db restore my-api --at 2026-10-17T14:05:30Z --yes arrah db pitr my-api # turn it on for an older database
Not yet
Downloading a backup.