Skip to content

Backup and restore

Settings, backup tab

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

TypeNeeds
Local pathA directory.
S3-compatibleBucket, region, endpoint (blank for AWS), access key, secret key.
DropboxClient ID, client secret, refresh token.
Google DriveClient ID, client secret, refresh token, folder ID.
OneDriveClient 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.

Released under the MIT License.