Skip to content

packaging(ns8): declare the data volume for cluster backup - #141

Merged
shockalotti merged 1 commit into
mainfrom
packaging/ns8-backup-volume
Oct 14, 2026
Merged

shockalotti merged 1 commit into
mainfrom
packaging/ns8-backup-volume

Conversation

@shockalotti

Copy link
Copy Markdown
Contributor

This is a data-loss bug. NS8 passes only the volumes a module declares in etc/state-include.conf to restic. Without that file, a backup of a populated instance reports success while omitting the SQLite database entirely.

Measured live on a single-node NS8 cluster, same instance, same data, only the file added:

files size
without etc/state-include.conf 2 476 bytes
with etc/state-include.conf 7 2,163,292 bytes

A restore from the first backup would have handed back an empty database, and Calnode's key vault would then be unlocking nothing. This is the same failure mode the module was written to avoid, and it survived because add-module, configure, routing, persistence across reconfigure and removal had all been verified without ever running a backup.

ns8-nextcloud declares its app-data volume the same way.

Also corrected the README, which claimed backup/restore was covered while it had never been run. It now records what was actually measured and marks the restore leg as still unverified.

This is a data-loss bug. NS8 passes only the volumes a module declares in
etc/state-include.conf to restic. Without that file a backup of a populated
instance reports success while omitting the SQLite database entirely.

Measured live on a single-node cluster, same instance, same data:
  without etc/state-include.conf: 2 files,   476 bytes
  with    etc/state-include.conf: 7 files, 2,163,292 bytes

ns8-nextcloud declares its app-data volume the same way. Without this file a
restore would have handed back an empty database, and Calnode's key vault
would then be unlocking nothing.

Backup capture is now verified live. The destroy-and-restore leg is still
unverified and the README says so.
@pullfrog

pullfrog Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Your provider account is out of credit.

Pullfrog detected a billing-exhausted response from your provider — the agent stopped before completing this run.

Top up your provider account, then re-trigger Pullfrog.

provider error: Upstream request failed: Insufficient account funds

Pullfrog  | Rerun failed job ➔ | View workflow run | via Pullfrog | Using deepseek-v4.1-flash | 𝕏

@shockalotti
shockalotti merged commit 744f16e into main Oct 14, 2026
6 of 7 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Oct 14, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant