All notable changes to this project will be documented here.
Format: ## vX.Y.Z — YYYY-MM-DD
Major expansion: alert rules, fleet patching, and full remediation coverage.
Alert rules
playbooks/deploy-alert-rules.yml— deploy 23 Prometheus alert rulestemplates/alert-rules.yml.j2— parameterized alert rules across 7 categories- Alert threshold variables in
group_vars/all/vars.yml
Fleet patching
playbooks/fleet-patch.yml— 5-stage safe patching pipeline (audit, snapshot, patch, smoke, rollback)playbooks/vars/fleet-patch-vars.yml.example— host VMID mapping and smoke test template
Remediation playbooks
remediation/host-recovery.yml— Proxmox VM/LXC auto-recovery forHostDownalertsremediation/remount-nfs.yml— NFS mount recovery forNFSMountUnavailablealerts
- Remediation bridge map expanded: 4 → 17 alert-to-playbook mappings
- Added
label_varsandextra_varssupport to remediation mappings - Added
strategy: defer_to_timerfor alerts that shouldn't auto-retry (e.g.ResticBackupFailed) - README updated with alert rules, fleet patching, and expanded remediation docs
Initial public release.
Playbooks
playbooks/deploy-restic-fleet.yml— Restic backup deployment across all backup_serversplaybooks/deploy-node-exporter.yml— Prometheus node_exporter fleet deploymentplaybooks/deploy-loki.yml— Grafana Loki log aggregation backend (Docker Compose)playbooks/deploy-promtail-fleet.yml— Promtail log shipper fleet deploymentplaybooks/deploy-remediation-bridge.yml— Alertmanager → Ansible automated remediation
Remediation playbooks
remediation/restart-container.ymlremediation/service-restart.ymlremediation/cleanup-disk.ymlremediation/caddy-reload.yml
Roles
roles/common— passwordless sudo baselineroles/restic— Restic backup with service pausing, prune, and integrity checkroles/restic_backup— systemd timer/service units for scheduled backups
Infrastructure
group_vars/all/vars.yml— all generalizable variables (zero hardcoded IPs)group_vars/all/vault.yml.example— all required secrets documentedinventory.yml.example— full inventory template with placeholder IPsansible.cfg.example— control node configuration templatetemplates/promtail-config.yml.j2— Promtail config template
Documentation
README.md— quickstart, architecture, variable referenceCONTRIBUTING.md— development setup, conventions, PR guidelinesplaybooks/REMEDIATION-BRIDGE.md— architecture, alertmanager config, ops guideroles/restic/README.md— variables, exit code 3 behavior, NFS recoveryroles/restic_backup/README.md— scheduling, timer staggering, verificationroles/common/README.md— usage, what it writes, extension points
CI
.github/workflows/ci.yml— syntax-check + ansible-lint on push/PR
- New clean repo rather than in-place refactor of live homelab — keeps homelab stable
- All IPs, usernames, and domain names replaced with Jinja2 variables
- All tasks tagged with
deploy,configure, orvalidatefor selective runs - All playbooks safe to run with
--checkmode (check-mode guards throughout) restic_backuprole declaresresticas a dependency in meta/main.yml