Ops-dashboard/deploy
Janpeter Visser 2b03ee02e0 feat(server-backup): one-shot install script for ops-agent wiring
Adds deploy/server-backup/install-flows.sh — een idempotent installer die
de ops-agent-zijde van de server-backup feature aan elkaar plakt:

  1. wrappers/*.sh                 → /srv/backups/scripts/wrappers/
  2. flows.example/server_backup_* → /etc/ops-agent/flows/
  3. commands.yml.example commands → /etc/ops-agent/commands.yml (append, met backup)
  4. NOPASSWD-regels voor wrappers → /etc/sudoers.d/ops-agent (visudo-validated)
  5. systemctl restart ops-agent
  6. systemctl enable --now server-backup.timer

Wat het bewust *niet* doet (staat in scriptheader): restic env/password
aanmaken, repos initialiseren, base-scripts of systemd-units plaatsen —
die secrets-stappen blijven handwerk per README "Snelle installatie".

Re-run safe:
- cmp-check per file in stappen 1-2 (skip als identiek)
- grep-check op command-name in stap 3 (skip als al aanwezig)
- visudo-validatie in stap 4 voorkomt lockout bij syntax-fout
- backups van mutaties: commands.yml.bak.<ts> en sudoers.d/ops-agent.bak.<ts>

Regex-fix t.o.v. eerste handmatige run vandaag: command-block-extractie
gebruikt nu [a-z0-9_]+ ipv [a-z_]+, zodat namen met digits (restic_*_b2)
als losse blocks gezien worden. Het oude pattern miste ze maar sleepte
ze toevallig mee in het vorige block — eindresultaat correct, output
misleidend. Nieuwe versie faalt expliciet als een command echt ontbreekt.

README aangevuld met sectie "Ops-agent wiring (na stap 1-7)" die naar
het script verwijst.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 21:04:43 +02:00
..
caddy fix(caddy): gebruik Docker servicenaam ipv host-IP in Caddyfile 2026-05-13 22:16:04 +02:00
ops-agent feat(server-backup): restic dual-repo backup (NAS + B2) with dashboard UI 2026-05-15 13:03:00 +02:00
ops-dashboard-updater feat(ops): self-update script, systemd units, README install guide, recovery runbook 2026-05-13 20:10:21 +02:00
server-backup feat(server-backup): one-shot install script for ops-agent wiring 2026-05-15 21:04:43 +02:00
docker-compose.ops-dashboard.yml fix(deploy): update build context naar /srv/ops/repos/ops-dashboard 2026-05-13 22:15:09 +02:00
ops-dashboard.env.example feat(auth): shared-secret auth web-app → ops-agent 2026-05-13 17:22:37 +02:00