global: resolve_timeout: 5m # SMTP configuration for email alerts (fallback) # Using MailHog for development - update for production smtp_from: 'alerts@changemaker.local' smtp_smarthost: 'mailhog:1025' smtp_auth_username: '' smtp_auth_password: '' smtp_require_tls: false # Templates for notification content templates: - '/etc/alertmanager/*.tmpl' # Route alerts to appropriate receivers based on severity route: group_by: ['alertname', 'cluster', 'service'] group_wait: 10s group_interval: 10s repeat_interval: 12h receiver: 'default' routes: # Critical alerts go to both Gotify and email - match: severity: critical receiver: 'critical-alerts' group_wait: 0s group_interval: 5m repeat_interval: 4h # Warning alerts go to Gotify only - match: severity: warning receiver: 'warning-alerts' group_wait: 30s repeat_interval: 12h # Info alerts (rate limiting, etc.) - Gotify with lower priority - match: severity: info receiver: 'info-alerts' repeat_interval: 24h # Alert receivers receivers: # Default receiver (catches all unmatched) # Note: Configure GOTIFY_APP_TOKEN in .env and update this file for Gotify to work - name: 'default' email_configs: - to: 'admin@changemaker.local' headers: Subject: '[Changemaker] {{ .GroupLabels.alertname }}' # Critical alerts - email only (configure Gotify token for push notifications) - name: 'critical-alerts' email_configs: - to: 'admin@changemaker.local' headers: Subject: '🚨 CRITICAL Alert: {{ .GroupLabels.alertname }}' html: |
Alert: {{ .Labels.alertname }}
Severity: {{ .Labels.severity }}
Summary: {{ .Annotations.summary }}
Description: {{ .Annotations.description }}
Started: {{ .StartsAt }}