mirror of
https://github.com/patrickbeane/infra-status-pings
synced 2026-04-04 06:25:31 +00:00
Initial commit: unified alerting mesh with Discord webhooks
This commit is contained in:
30
README.md
Normal file
30
README.md
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
## Real-Time Infrastructure Notifications to Discord
|
||||||
|
|
||||||
|
While these integrations are well-documented individually, this repo shows how to unify them—turning backup failures, uptime blips, and firewall bans into a single, coherent signal loop for live infrastructure resilience.
|
||||||
|
|
||||||
|
Production services don’t operate in silence. Borgmatic, HetrixTools, and CrowdSec all speak through Discord webhook alerts—giving my infrastructure a voice when it matters most.
|
||||||
|
|
||||||
|
### Files
|
||||||
|
- configs/crowdsec-discord.yaml (redacted sensitive info)
|
||||||
|
- configs/borgmatic-discord.yaml (redacted sensitive info)
|
||||||
|
- configs/hetrixtools-discord.png (redacted sensitive info)
|
||||||
|
- README.md (this file)
|
||||||
|
|
||||||
|
### Alert Examples (Screenshots)
|
||||||
|
- screenshots/crowdsec.png
|
||||||
|
- screenshots/borgmatic.png
|
||||||
|
- screenshots/hetrixtools.png
|
||||||
|
|
||||||
|
### What It Covers
|
||||||
|
- Backup success/failure (Borgmatic)
|
||||||
|
- Uptime monitoring (HetrixTools)
|
||||||
|
- Firewall bans (CrowdSec)
|
||||||
|
|
||||||
|
### Visual Examples
|
||||||
|
- CrowdSec → Discord channel for banned IP alerts
|
||||||
|
- Borgmatic → Backup status updates (success/fail/start)
|
||||||
|
- HetrixTools → Uptime monitoring notifications
|
||||||
|
|
||||||
|
### Philosophy
|
||||||
|
No custom scripts. Just good tools, smart defaults, and clear signals.
|
||||||
|
This setup favors simplicity and resilience—less to break, easier to trust.
|
||||||
19
configs/borgmatic-discord.yaml
Normal file
19
configs/borgmatic-discord.yaml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# Added to /etc/borgmatic/config.yaml
|
||||||
|
apprise:
|
||||||
|
services:
|
||||||
|
- url: https://discord.com/api/webhooks/xxxxxxxx/xxxxxxxx
|
||||||
|
label: discord
|
||||||
|
start:
|
||||||
|
title: Ping! (Triton)
|
||||||
|
body: Starting backup process.
|
||||||
|
finish:
|
||||||
|
title: Ping! (Triton)
|
||||||
|
body: Backups successfully made.
|
||||||
|
fail:
|
||||||
|
title: Ping! (Triton)
|
||||||
|
body: Your backups have failed.
|
||||||
|
states:
|
||||||
|
- start
|
||||||
|
- finish
|
||||||
|
- fail
|
||||||
|
logs_size_limit: 25
|
||||||
21
configs/crowdsec-discord.yaml
Normal file
21
configs/crowdsec-discord.yaml
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
#
|
||||||
|
# /etc/crowdsec/notifications/discord.yaml
|
||||||
|
#
|
||||||
|
|
||||||
|
type: http
|
||||||
|
name: discord
|
||||||
|
log_level: info
|
||||||
|
format: |
|
||||||
|
{
|
||||||
|
"content": "```\nTriton\n{{range . -}}{{$alert := . -}}{{range .Decisions -}}- {{.Value}} will get **{{.Type}}** for the next '{{.Duration}}'>
|
||||||
|
}
|
||||||
|
url: https://discord.com/api/webhooks/xxxxxxxxxx/xxxxxxxxxx
|
||||||
|
method: POST
|
||||||
|
headers:
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
|
||||||
|
# then, comment out on /etc/crowdsec/profiles.yaml
|
||||||
|
|
||||||
|
notifications:
|
||||||
|
- discord
|
||||||
BIN
configs/hetrixtools-discord.png.png
Normal file
BIN
configs/hetrixtools-discord.png.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 75 KiB |
BIN
screenshots/borgmatic.png
Normal file
BIN
screenshots/borgmatic.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 50 KiB |
BIN
screenshots/crowdsec.png
Normal file
BIN
screenshots/crowdsec.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 84 KiB |
BIN
screenshots/hetrixtools.png
Normal file
BIN
screenshots/hetrixtools.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 41 KiB |
Reference in New Issue
Block a user