bruno 5d0db9478c
CI / test (push) Successful in 2m33s
fix: dashboard affiche la version dynamique ({{VERSION}})
dashboard.html utilise {{VERSION}}, remplacé par server.v au chargement
via const version de main.v. Plus besoin de maj manuelle du HTML.
2026-08-03 17:24:14 -04:00
2026-08-03 12:12:12 -04:00
2026-08-03 12:12:12 -04:00
2026-08-03 12:12:12 -04:00
2026-08-03 12:12:12 -04:00
2026-08-03 12:12:12 -04:00
2026-08-03 12:12:12 -04:00
2026-08-03 12:12:12 -04:00

ntfy-bridge

Hub central de notifications pour homelab — agrège des sources multiples (Gitea, Docker, Uptime Kuma, health checks HTTP, scripts cron) et les transforme en notifications Ntfy intelligentes, formatées, avec priorités et contexte.

┌─────────────────┐
│  Gitea webhook  │──┐
├─────────────────┤  │
│  Uptime Kuma    │──┤
├─────────────────┤  │     ┌──────────────┐      ┌───────────┐      ┌──────────────┐
│  Docker events  │──┤────→│  ntfy-bridge │─────→│ Ntfy Srv  │─────→│   Ton phone  │
├─────────────────┤  │     └──────────────┘      └───────────┘      └──────────────┘
│  HTTP health    │──┤
├─────────────────┤  │
│  Scripts cron   │──┘
└─────────────────┘

Pourquoi ntfy-bridge ?

Dans un homelab avec 8+ hôtes Docker, Gitea, Uptime Kuma et des dizaines de services, les alertes arrivent de partout. ntfy-bridge centralise tout dans une seule file de notifications intelligentes — avec le bon niveau de priorité, le bon format, et le bon topic Ntfy.

Sans ntfy-bridge Avec ntfy-bridge
Webhook Gitea → email (noyé) Push = notif Ntfy formatée avec auteur, commit, message
Uptime Kuma → alerte brute "🚨 Gitea DOWN — 503 — since 14:32" avec priority=5
Container qui crashe → logs Docker "🐳 flowdeck exited OOMKilled on docker-prod-1"
Script cron → email perdu Résumé quotidien disque à 9h dans ta poche

Quick Start

# Installer V (si pas déjà fait)
curl -s https://github.com/vlang/v/releases/latest/download/v_linux.zip -o /tmp/v.zip
unzip /tmp/v.zip -d /tmp && sudo /tmp/v/v symlink

# Compiler
git clone https://git.dracodev.net/bruno/ntfy-bridge.git
cd ntfy-bridge
v .

# Configurer
cp ntfy-bridge.example.yaml ntfy-bridge.yaml
vim ntfy-bridge.yaml

# Lancer
./ntfy-bridge --config ntfy-bridge.yaml

Sources supportées

Source Type Description
Gitea Webhook Push, PR, issues, releases → notifs formatées
Uptime Kuma Webhook Statut up/down avec priorité critique
Docker Socket Container start/die/oom/health_status
HTTP Poll Polling Health checks périodiques
Cron Webhook Reçoit des notifs depuis des scripts shell
Generic Webhook Endpoint passe-partout pour tout script custom

Exemple de config minimale

server:
  url: https://ntfy.dracodev.net
  listen: ":9090"

sources:
  gitea:
    - webhook_path: /webhooks/gitea
      topic: dev-notifs

Licence

MIT

S
Description
Hub central de notifications homelab — agrège Gitea, Docker, Uptime Kuma, health checks → notifications Ntfy intelligentes
Readme
319 KiB
Languages
V 84.4%
HTML 7%
Shell 4.3%
PowerShell 3.5%
Dockerfile 0.6%
Other 0.2%