WIP: Add ccnet-par2-integrity: weekly PAR2 bitrot check for forgejo/data #40

Draft
claude-bot wants to merge 1 commit from worktree-par2-integrity-doc into main
Collaborator

Summary

  • Adds ccnet-par2-integrity/ — an Ansible playbook configuring a weekly systemd timer on swarm-mgr-01 to run PAR2 (par2cmdline) create/verify/repair, scoped to just forgejo/data on the CephFS mount.
  • Rationale: Ceph's own checksum+replication+scrub already handles most bitrot; PAR2 covers the residual gap (pre-write corruption, unrepairable PGs). nextcloud/data was considered and rejected as a target (too much churn to stay "static").
  • Documents the playbook in CLAUDE.md's Map and Per-directory notes sections, folded into the condensed structure from #36.

Status: NOT yet deployed

  • --syntax-check passes.
  • The playbook has not been run against swarm-mgr-01 — no timer is live yet, nothing has actually created a parity set.
  • Marked as WIP for that reason; CLAUDE.md/README both call this out explicitly so it isn't mistaken for live infra.

Test plan

  • ansible-playbook par2-integrity.yml --syntax-check passes
  • Actually run against swarm-mgr-01 and confirm the timer/service come up
  • Confirm first par2create pass completes and produces the expected parity set under /mnt/swarm-data/.par2-integrity/forgejo-data/

Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com
https://claude.ai/code/session_012rzRTrkRgNHNXS86z3e3ap

## Summary - Adds `ccnet-par2-integrity/` — an Ansible playbook configuring a weekly systemd timer on `swarm-mgr-01` to run PAR2 (`par2cmdline`) create/verify/repair, scoped to just `forgejo/data` on the CephFS mount. - Rationale: Ceph's own checksum+replication+scrub already handles most bitrot; PAR2 covers the residual gap (pre-write corruption, unrepairable PGs). `nextcloud/data` was considered and rejected as a target (too much churn to stay "static"). - Documents the playbook in `CLAUDE.md`'s Map and Per-directory notes sections, folded into the condensed structure from #36. ## Status: NOT yet deployed - `--syntax-check` passes. - The playbook has **not** been run against `swarm-mgr-01` — no timer is live yet, nothing has actually created a parity set. - Marked as WIP for that reason; `CLAUDE.md`/README both call this out explicitly so it isn't mistaken for live infra. ## Test plan - [x] `ansible-playbook par2-integrity.yml --syntax-check` passes - [ ] Actually run against `swarm-mgr-01` and confirm the timer/service come up - [ ] Confirm first `par2create` pass completes and produces the expected parity set under `/mnt/swarm-data/.par2-integrity/forgejo-data/` Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> https://claude.ai/code/session_012rzRTrkRgNHNXS86z3e3ap
Playbook is written and syntax-checked but not yet run against
swarm-mgr-01 — CLAUDE.md and the README both flag it as not-yet-deployed
rather than live.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012rzRTrkRgNHNXS86z3e3ap
claude-bot force-pushed worktree-par2-integrity-doc from 00a6557dd1 to cd0c31b476 2026-08-10 22:21:39 +00:00 Compare
This pull request has changes conflicting with the target branch.
  • CLAUDE.md
View command line instructions

Manual merge helper

Use this merge commit message when completing the merge manually.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin worktree-par2-integrity-doc:worktree-par2-integrity-doc
git switch worktree-par2-integrity-doc

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff worktree-par2-integrity-doc
git switch worktree-par2-integrity-doc
git rebase main
git switch main
git merge --ff-only worktree-par2-integrity-doc
git switch worktree-par2-integrity-doc
git rebase main
git switch main
git merge --no-ff worktree-par2-integrity-doc
git switch main
git merge --squash worktree-par2-integrity-doc
git switch main
git merge --ff-only worktree-par2-integrity-doc
git switch main
git merge worktree-par2-integrity-doc
git push origin main
Sign in to join this conversation.
No description provided.