Skip to content

Consolebook 0.2.0

Choose a tag to compare

@github-actions github-actions released this 15 Oct 15:36
· 10 commits to main since this release
e4fc1d3

Safer upgrades and recovery for a pilot: a backup before every migration,
Secure cookies behind HTTPS, backup copies that cannot be buried by a
replacement server, a rehearsed restore drill, and an operations guide.
Upgrading from 0.1.0 runs a migration, so the first start of 0.2.0 takes
a validated backup before it changes the database.

Added

  • Before a new version migrates the database, it takes a validated backup
    of it as it was and refuses to migrate without one, whichever command
    runs first; the install guide shows how to go back with the previous
    release.
  • A version that finds a database upgraded by a newer release refuses it in
    plain words and names the way back.
  • --public-url / CONSOLEBOOK_PUBLIC_URL (installer: --public-url): the
    address people use. An https:// address marks sign-in cookies Secure,
    and the sign-in page points browsers that arrived by another address to it
    (ADR 0025). The install guide gives a tested Caddy configuration for HTTPS.
    Turning it on signs out sessions whose cookies were not Secure.
  • doctor --backup-copy-dir reports whether off-server backup copies are
    current, behind, unreachable, or not configured, without writing anything.
  • ADR 0027: Consolebook does
    not encrypt backup copies; the install guide states what the share must
    provide.
  • A restore drill from a lost server to verified
    records, with a scripted version (scripts/restore-drill/) and a recorded
    run from the v0.1.0 release.
  • Operating a pilot installation: what to monitor and
    how, the logs and their retention, reporting a problem, and what support a
    pre-alpha pilot can expect. The release workflow runs its commands against
    a real install.

Changed

  • The one-line install fetches the installer published with the latest
    release instead of the main branch, and every release asset carries
    build provenance (gh attestation verify; ADR 0026).

Fixed

  • A new server set up to replace a lost one no longer copies its own empty
    database into the backup copy directory as the newest backup. A copy
    directory holds one installation's backups, and copying there is refused
    until the lost installation is restored; a restore then backs up what it
    restored, so copies resume at once. The database a restore sets aside is
    never copied off the server (#115).
  • Two backups or restores within the same second no longer fail or mislabel
    the set-aside database as damaged; the second waits for a new name.
  • doctor judges whether the newest backup is overdue against the service's
    backup interval (--backup-interval-hours, or
    CONSOLEBOOK_BACKUP_INTERVAL_HOURS) instead of always 24 hours (#117).
  • A phase change that waited behind another write is no longer refused as
    out of order; it is judged at the moment it can commit (#108).
  • After a restore, the set-aside database no longer counts as the newest
    backup: snapshots order by their time, so off-server copy status,
    catch-up copies, and retention follow the latest backup (#105).
  • A draft that saves after a failed save no longer keeps saying "The draft
    did not save" (#83).

Install or upgrade

On a Linux server with systemd, as root:

curl -fsSL https://github.com/FieldmouseWorks/consolebook/releases/latest/download/install.sh | sudo sh

To check where an archive came from:
gh attestation verify consolebook-linux-x86_64.tar.gz -R FieldmouseWorks/consolebook.

See docs/install.md.