Backup and restore
Configured under Settings → Backup. A backup worker runs on its own cron schedule, independent of job schedules.
What goes in
- The Walis database, via
VACUUM INTO— a consistent copy, not a file copy of a live database. - Build artifacts.
- Any extra absolute paths you list, one per line. Directories are packed whole; symlinks are skipped.
- Optionally a PostgreSQL database via
pg_dump.
Encryption
AES-256-CBC with PBKDF2-SHA256, written in OpenSSL's Salted__ container — so restoring does not require Walis. Given the passphrase, openssl enc -d is enough.
A passphrase is mandatory once a remote destination exists, and the screen refuses to save without one. The archive contains password hashes and stored credentials; it must not leave the machine in the clear.
Destinations
| Type | Needs |
|---|---|
| Local path | A directory. |
| S3-compatible | Bucket, region, endpoint (blank for AWS), access key, secret key. |
| Dropbox | Client ID, client secret, refresh token. |
| Google Drive | Client ID, client secret, refresh token, folder ID. |
| OneDrive | Client ID, client secret, refresh token. |
All are implemented in-process — SigV4 is signed by Walis itself. Nothing shells out to aws, rclone or similar, so there is no external binary to install or keep current.
Retention applies per destination using the same rule. Keys and passphrases read back as ********; sending that value unchanged means "leave it alone", so you can edit a destination without re-entering its credentials.
Restore
Restore clears all current data and writes back the archive's contents. It cannot be undone.
- The archive is engine-agnostic, so a backup taken on SQLite can be restored onto PostgreSQL, MySQL or SQL Server. This is also the supported route from a single node to several.
- Artifacts are restored optionally.
- There is a force switch for restoring while builds are running. Avoid it: a running build writing its result afterwards will not find its own record. Let builds finish.
Verifying
A backup you have never restored is a hypothesis. The passphrase is the single point of failure — lose it and the archive is unrecoverable, by design. Store it somewhere that is not the machine being backed up.