Uptime Kuma
Rôle
Monitoring de disponibilité et de santé fonctionnelle de tous les services. Envoie des alertes via ntfy en cas de panne.
Accès
| LXC | 106 — 192.168.1.51 |
| Port | 3001 |
| URL | https://uptime.2h15.fr (local/VPN) |
| Stack | Docker — /opt/uptime-kuma/docker-compose.yml |
| Base de données | /opt/uptime-kuma/data/kuma.db (SQLite) |
Monitors HTTP / Keyword (fonctionnels)
Chaque monitor vérifie non seulement que le service répond mais que son endpoint de santé retourne le bon contenu :
| Service | Endpoint | Keyword | Ce qu'on détecte |
|---|---|---|---|
| NPM | / |
— | Disponibilité |
| Immich | /api/server/ping |
pong |
API Immich fonctionnelle |
| Home Assistant | /manifest.json |
— | Disponibilité |
| ntfy | /v1/health |
true |
Service sain |
| Pingvin | /api/health |
OK |
App fonctionnelle |
| Dashboard | /api/services |
— | Disponibilité |
| Vaultwarden | /alive |
202 |
Service sain |
| Jellyseerr | /api/v1/status |
version |
App fonctionnelle |
| Sonarr | /api/v3/health?apikey=xxx |
warning (inversé) |
Indexeurs en erreur |
| Radarr | /api/v3/health?apikey=xxx |
warning (inversé) |
Indexeurs en erreur |
| Bazarr | /api/system/health?apikey=xxx |
data |
Providers actifs |
| Prowlarr | /api/v1/health?apikey=xxx |
warning (inversé) |
Indexeurs en erreur |
| Jellyfin | /health |
Healthy |
Service sain |
| Immich Swipe | / |
— | Disponibilité |
| Family App | /api/health |
ok |
App fonctionnelle |
| Family App OAuth | /api/oauth/status |
val:true,milie:true |
Tokens Google Cal valides |
| GigHunter | /api/bars |
— | API fonctionnelle |
| Outil D&D | /api/health |
— | API fonctionnelle |
| code-server | / |
— | Disponibilité |
| WGDashboard | / |
— | Disponibilité |
| Reels Vault API | /health |
ok |
FastAPI + Claude CLI |
Sonarr/Radarr/Prowlarr — invert_keyword
DOWN si warning trouvé dans la réponse (indexeur en erreur), UP si réponse vide []. Auth via ?apikey=xxx.
Bug Kuma 2.5.0
Keyword monitors avec headers JSON échouent avec "Cannot convert object to primitive value". Contournement : query params dans l'URL.
Monitors Push
| Monitor | Fréquence | Émetteur | Heartbeat max |
|---|---|---|---|
| Backup Immich | Quotidien 3h | LXC 104 | 1450 min |
| Dump DB Immich | Quotidien 2h30 | LXC 104 | 1450 min |
| Notif MAJ Dashboard | Quotidien 7h | LXC 106 | 1500 min |
| Notif Pingvin | Toutes les minutes | Host Proxmox | — |
| Check SSL NPM | Quotidien 9h | Host Proxmox | — |
| WireGuard notify | Toutes les minutes | Host Proxmox | — |
| Claude Sync | Toutes les 6h | Host Proxmox | 390 min |
| CrowdSec Notify | Quotidien 7h | LXC 101 | 1500 min |
| Family daily_digest | Quotidien 7h | LXC 112 | 1500 min |
| Family birthday_digest | Quotidien 7h05 | LXC 112 | 1500 min |
| Epic Games notify_games | Quotidien 9h05 | LXC 106 | 1500 min |
| TwitchDropsMiner | Toutes les 5 min | LXC 106 | — |
Intégration Dashboard
Le dashboard de supervision lit directement la DB Kuma SQLite pour afficher un point coloré sur chaque carte de service.
- Cache 60 secondes
- Mapping
KUMA_MONITOR_IDSdans/opt/dashboard/main.py - Status :
up,down,pending,maintenance,unknown
Alertes
- Canal : ntfy, topic
homelab, priorité high - Alerte immédiate si un monitor passe en état DOWN