NAS backup capacity monitoring, weekly backups, CloudCLI alert fixes #28

Merged
scruffydude merged 1 commit from docs/cloudcli-alert-test-and-docker-upgrade into main 2026-09-05 21:29:02 -04:00
Owner

Summary

  • Closes #5: cron check on broadcaster verifies the backup NAS mount is present, cifs, writable, and has enough free space (both percent and absolute GB must be breached to fire), pushing into a new Gatus external-endpoint alert; Beszel now also tracks the mount as an extra filesystem for a real capacity trend graph.
  • Switches the management-plane backup job from daily to weekly (Sundays), bumping retention from 7 to 35 days to keep roughly the same amount of history at the new cadence.
  • Closes #6/#7: confirms the CloudCLI paused-container alert works after the Docker Engine upgrade on deskpi.
  • Fixes a couple of ansible-lint violations flagged by CI, and a code-server ChatGPT extension/Codex sandboxing tweak.

Test plan

  • Live-verified NAS mount check both directions: controlled umount/mount -a produced real Discord TRIGGERED/RESOLVED alerts via Gatus.
  • Verified Beszel dashboard shows real capacity stats for the NAS mount via its PocketBase API.
  • ansible-playbook --check confirmed idempotent for gatus, management_backup, and beszel roles after all changes.
  • Confirmed weekly cron entry rendered correctly on broadcaster without disturbing the mount-check cron.
## Summary - Closes #5: cron check on `broadcaster` verifies the backup NAS mount is present, cifs, writable, and has enough free space (both percent and absolute GB must be breached to fire), pushing into a new Gatus external-endpoint alert; Beszel now also tracks the mount as an extra filesystem for a real capacity trend graph. - Switches the management-plane backup job from daily to weekly (Sundays), bumping retention from 7 to 35 days to keep roughly the same amount of history at the new cadence. - Closes #6/#7: confirms the CloudCLI paused-container alert works after the Docker Engine upgrade on deskpi. - Fixes a couple of ansible-lint violations flagged by CI, and a code-server ChatGPT extension/Codex sandboxing tweak. ## Test plan - [x] Live-verified NAS mount check both directions: controlled `umount`/`mount -a` produced real Discord TRIGGERED/RESOLVED alerts via Gatus. - [x] Verified Beszel dashboard shows real capacity stats for the NAS mount via its PocketBase API. - [x] `ansible-playbook --check` confirmed idempotent for gatus, management_backup, and beszel roles after all changes. - [x] Confirmed weekly cron entry rendered correctly on broadcaster without disturbing the mount-check cron.
Close #5: NAS backup mount/capacity monitoring, and switch backups to weekly
All checks were successful
CI Pipeline / Validate Ansible Syntax (pull_request) Successful in 1m22s
CI Pipeline / Validate Ansible Syntax (push) Successful in 1m37s
CI Pipeline / Test Ansible Playbooks (Syntax Only) (pull_request) Successful in 48s
CI Pipeline / Python Tests (pull_request) Successful in 30s
CI Pipeline / Test Ansible Playbooks (Syntax Only) (push) Successful in 43s
CI Pipeline / Python Tests (push) Successful in 31s
CI Pipeline / Curator Smoke Test (pull_request) Successful in 1m23s
CI Pipeline / Curator Smoke Test (push) Successful in 1m25s
678e5bd1ec
Adds a cron check on broadcaster (check-backup-nas-mount.sh) that verifies
the backup NAS share is mounted, is cifs, is writable, and has enough free
space (both percent and absolute GB must be breached to fire, since this
NAS normally sits at ~9-10% free with 2TB+ of real headroom). Results push
into a new Gatus external-endpoint, alerting through the same Discord
webhook as everything else. Also extends Beszel's agent on broadcaster to
track the mount as an extra filesystem, for a real historical capacity
graph instead of just point-in-time alerts.

Live-verified both directions via a controlled umount/remount: Discord
alert TRIGGERED on failure, RESOLVED on recovery. Fixed a real bug found
along the way -- editing gatus/config.yaml alone doesn't restart the
container (bind-mounted file, not part of the compose service definition),
so it silently ran on stale config; added a notify handler so config
changes always take effect.

Also switched the management-plane backup job from daily to weekly
(Sundays), bumping retention from 7 to 35 days to keep the same ~5 backups
of history at the new cadence.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
scruffydude deleted branch docs/cloudcli-alert-test-and-docker-upgrade 2026-09-05 21:29:02 -04:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
scruffydude/homelab!28
No description provided.