Skip to content

Servitor CMS 0.2.0

Choose a tag to compare

@justhasanuknow justhasanuknow released this 24 Sep 21:46
5dc7d39

Backups and restores are now part of the panel.

Added

  • Backups in the panel under Administration → Backups, for the founder with two-factor authentication: create backups in the background, download them, optionally encrypted with a passphrase, upload archives of any size in chunks, delete them, and restore one through a controlled restart that applies it before the database is opened.
  • Scheduled backups every day or every Monday at a UTC hour. Servitor keeps a chosen number of scheduled archives and emails the founder when one fails.
  • decrypt-backup on the command line for archives downloaded with a passphrase.
  • A guide to backups and restores, also served at /docs/backups.

Changed

  • Backups leave out sessions and verification tokens, so restoring one signs everybody out; restores also remove sessions from older archives.
  • Restores compare the database with the schema of its migration history and refuse archives from newer versions or with extra tables, triggers or views.
  • The backup manifest records the app version and whether the panel, the schedule or the command line made it.
  • The systemd example restarts the app always, which a restore from the panel needs.

Downloading, restoring and deleting backups and changing the schedule require the password and a current authenticator code, every backup action is written to the audit log, and a download sends the founder an email notice.

Upgrading from 0.1.x

Take a backup, then check out the new tag:

docker compose exec servitor node build/cli.js backup
git fetch --tags
git checkout v0.2.0

Set SERVITOR_VERSION=0.2 in your .env (add the line if you came from 0.1.0), then pull and start the image:

docker compose pull
docker compose up -d

A migration adds the backup_schedule table; it runs on start. If you run Servitor without Docker, set your service manager to always restart it, for example Restart=always in systemd.

The image for linux/amd64 and linux/arm64 is ghcr.io/justhasanuknow/servitor-cms:0.2.0 (also 0.2 and latest). Verify it with the GitHub CLI:

gh attestation verify oci://ghcr.io/justhasanuknow/servitor-cms:0.2.0 --owner justhasanuknow

The full list is in CHANGELOG.md.