b9be45dc71
Complete IaC covering: - 14 roles: common, docker, traefik, vaultwarden, monitoring, media, matrix, home_assistant, frigate, adguard, gitea, semaphore, openclaw, security, backup - Inventory for all hosts (Peggy, Bart, Yoda, NAS, Firewalla) - Stack playbooks: core-infrastructure, monitoring, media, communication, automation, smarthome, security-hardening - Maintenance playbooks: update-containers, backup, health-check - Production Docker Compose templates with Traefik labels - Security hardening (sysctl, auditd, UFW, fail2ban) - Automated backups with retention policy
30 lines
716 B
Django/Jinja
30 lines
716 B
Django/Jinja
global:
|
|
resolve_timeout: 5m
|
|
{% if alertmanager_smtp_host is defined and alertmanager_smtp_host %}
|
|
smtp_smarthost: "{{ alertmanager_smtp_host }}"
|
|
smtp_from: "{{ alertmanager_smtp_from }}"
|
|
{% endif %}
|
|
|
|
route:
|
|
group_by: ["alertname", "instance"]
|
|
group_wait: 30s
|
|
group_interval: 5m
|
|
repeat_interval: 4h
|
|
receiver: default
|
|
|
|
receivers:
|
|
- name: default
|
|
{% if alertmanager_slack_webhook is defined and alertmanager_slack_webhook %}
|
|
slack_configs:
|
|
- api_url: "{{ alertmanager_slack_webhook }}"
|
|
channel: "#alerts"
|
|
send_resolved: true
|
|
{% endif %}
|
|
|
|
inhibit_rules:
|
|
- source_match:
|
|
severity: critical
|
|
target_match:
|
|
severity: warning
|
|
equal: ["alertname", "instance"]
|