Uptime Kuma est l’outil de monitoring open-source qui a explosé en popularité depuis 2022, et reste en 2026 (informations vérifiées en avril 2026, susceptibles d’évoluer) la solution self-hosted la plus simple et complète pour superviser sites web, APIs, services TCP, et notifications. Avec son interface moderne et ses 90+ types de notifications (Discord, Slack, Telegram, WhatsApp Business, email, SMS), c’est l’outil idéal pour les freelances et PME africaines qui veulent un Pingdom-like sans payer 100 USD/mois. Voici le guide pratique 2026.
Ce guide général couvre tout. Les articles connexes détaillent : installation Coolify ou Docker, status page publique, notifications Discord/Telegram/WhatsApp, comparatif Uptime Kuma vs alternatives.
Pourquoi Uptime Kuma en 2026
- Open-source MIT, ~60k étoiles GitHub
- Setup en 5 minutes via Coolify ou Docker
- UI moderne et lisible
- Multi-monitor : HTTP(s), TCP, ping, DNS, push (heartbeat), Steam server, MQTT, certificats SSL, mots-clefs dans la réponse
- Notifications : 90+ canaux supportés natifs
- Status pages publiques avec URL personnalisée
- Multi-utilisateurs et 2FA
- Maintenance windows programmées
- Tags, certificats SSL alerting, Heartbeat URLs (push monitoring)
Cas d’usage typiques
- Surveiller que vos sites web répondent en HTTPS valide
- Surveiller la latence depuis l’Afrique vers vos serveurs
- Alerter si une API tombe ou ralentit
- Vérifier qu’un cron a bien tourné (push heartbeat)
- Status page publique pour vos clients (« est-ce que le service marche ? »)
- Surveiller l’expiration des certificats SSL
Étape 1 — Installer via Coolify
Voir notre tutoriel installation Coolify. En 5 minutes vous avez Uptime Kuma fonctionnel en HTTPS sur https://status.exemple.sn.
Étape 2 — Premier monitor
- Login → New Monitor
- Type : HTTPS, Friendly Name : « Site principal »
- URL :
https://exemple.sn - Heartbeat Interval : 60s (par défaut)
- Retries : 3
- Notifications : aucune au début (configurer plus tard)
- Save
Le monitor commence à pinger toutes les 60s. Statistiques uptime, response time, certificat SSL apparaissent en quelques minutes.
Étape 3 — Notifications
Settings → Notifications → Setup Notification → choisir le type :
- Discord webhook (le plus simple)
- Telegram bot (gratuit, fiable)
- Email SMTP (Brevo)
- Slack webhook
- WhatsApp Business API
- SMS via Twilio, OVH SMS, etc.
Voir notre tutoriel notifications.
Étape 4 — Status page publique
Status Pages → New Status Page → « Mon SaaS Status ». Choisir les monitors à afficher, ajouter logo, description. URL : status.exemple.sn/status/mon-saas ou domaine custom.
Voir notre tutoriel status page.
Étape 5 — Push heartbeat pour cron jobs
Pour vérifier qu’un cron tourne effectivement (pas juste qu’un service répond), créer un monitor type « Push » qui attend un heartbeat HTTP au moins toutes les X minutes :
# Dans votre script cron
0 3 * * * /opt/backup.sh && curl -fsS https://status.exemple.sn/api/push/abc123?status=up&msg=OK
Si le cron rate ou échoue, Uptime Kuma alerte.
Étape 6 — Multi-tenancy et tags
Pour une agence avec plusieurs clients : créer des tags par client (tag:client-A, tag:client-B), filtrer les monitors par tag, créer une status page par client.
Adaptation Afrique de l’Ouest
Pour une PME ou agence ouest-africaine, Uptime Kuma sur Coolify (gratuit, juste votre VPS) remplace Pingdom (à 15-100 USD/mois selon plan) avec quasi toutes les fonctions. Status page publique en français rassure clients lors d’incidents. Notifications WhatsApp Business via Twilio idéal pour le contexte africain.
Erreurs fréquentes
| Erreur | Cause | Solution |
|---|---|---|
| Faux positifs depuis Hetzner | Site bloque IP DC | Whitelist IP Uptime Kuma chez Cloudflare |
| Notifications spam | Trop courte intervalle | Augmenter Retries avant alerte |
| SSL alert prématurée | Threshold trop bas | Ajuster en jours avant expiration |
Sur le même thème
- Installation Coolify / Docker
- Status page publique
- Notifications
- Comparatif alternatives
- Documentation : github.com/louislam/uptime-kuma
Hébergement recommandé pour les lecteurs
Si vous n’avez pas encore d’hébergeur, Hostinger est celui que nous utilisons et que nous recommandons après plusieurs années d’usage.
Lien d affiliation. Si vous achetez via ce lien, le blog reçoit une petite commission sans surcoût pour vous.
Choisir entre Uptime Kuma, Healthchecks et Gatus
Trois outils self-hosted dominent le marche du monitoring en 2026, chacun avec un positionnement precis. Uptime Kuma vise la simplicite visuelle avec une UI temps reel et excelle pour surveiller des sites web et API HTTP/S. Healthchecks.io est specialise dans la surveillance de cron jobs via push heartbeat et offre une CLI minimaliste. Gatus se distingue par sa configuration en YAML versionnee dans Git et convient mieux aux equipes DevOps mature qui veulent du monitoring as code.
Pour un freelance qui gere 5 a 30 sites clients depuis Dakar ou Abidjan, Uptime Kuma reste le meilleur compromis : deploiement en 5 minutes, dashboard accessible a un client non technique, et suffisamment d’extensions pour couvrir 95 % des besoins. Validez votre choix en listant les capacites apres installation :
docker exec -it uptime-kuma sh
node -e "console.log(require('./package.json').version)"
curl -sI http://localhost:3001 | head -1
La sortie doit afficher la version recente (1.23.x ou superieure) et un code 200 ou 302. Si vous obtenez 502, le conteneur n’est pas pret : attendez 30 secondes supplementaires car la premiere initialisation de la base SQLite prend du temps sur un VPS modeste.
Etape complementaire : surveillance d’API authentifiee
La plupart des API metier exigent un token Bearer ou une cle d’API en header. Uptime Kuma 1.23 supporte les headers HTTP custom directement dans la definition du monitor. Pour surveiller une API WooCommerce REST, configurez un monitor HTTP(s) – Json Query qui valide a la fois le code de reponse et la presence d’un champ attendu :
URL : https://boutique.sn/wp-json/wc/v3/system_status
Method : GET
Auth : Basic (consumer_key, consumer_secret)
JSON Path : settings.api_enabled
Expected : true
Le resultat attendu est Up toutes les 60 secondes. Si l’API renvoie 200 mais que le champ api_enabled passe a false (typiquement apres une mise a jour WordPress qui desactive REST), Kuma declenche immediatement une alerte. Ce niveau de finesse vous distingue d’un monitoring naif qui se contente du code 200 et qui peut rater une panne fonctionnelle pendant des heures.
Etape complementaire : page de status publique en marque blanche
Vos clients gagnent en confiance lorsqu’ils peuvent consulter eux-memes l’etat des services qu’ils paient. Creez une status page publique en marque blanche qui n’expose que les services pertinents :
1. Settings > Status Pages > Add New Status Page
2. Slug : status-clients
3. Theme : Light, Logo : votre logo PNG 200x60
4. Custom Domain : status.votre-agence.sn (CNAME vers Kuma)
5. Add Monitor Group : Sites WordPress, ajouter les monitors
6. Enable Public Access
Configurez ensuite le DNS chez Sonatel ou via Cloudflare avec un CNAME status.votre-agence.sn vers le hostname Kuma. La page devient accessible publiquement avec votre logo et vos couleurs, sans reveler que c’est Uptime Kuma sous le capot. Vos clients voient une URL professionnelle et un dashboard temps reel qui justifie votre facture mensuelle de TMA a 35 000 FCFA.
Etape complementaire : notifications WhatsApp Business via webhook
Email et SMS arrivent souvent en retard ou dans le spam. WhatsApp Business reste le canal le plus fiable en Afrique de l’Ouest. Creez une notification de type Webhook qui pousse vers la WhatsApp Cloud API Graph v25.0 :
Type : Webhook
URL : https://graph.facebook.com/v25.0/PHONE_ID/messages
Body : {"messaging_product":"whatsapp","to":"221XXXXXXXX","type":"template","template":{"name":"alert_down","language":{"code":"fr"}}}
Headers : Authorization: Bearer EAAxxxxxx
Note : le pricing WhatsApp Business pour les conversations service initiees par utilisateur reste gratuit jusqu’a 1 000 par mois ; au-dela, comptez environ 0,005 USD par message marketing au Senegal selon les rate cards Meta en vigueur au 1 avril 2026. Pour 30 alertes par mois, le cout reste negligeable face au gain en reactivite.
Etape complementaire : surveillance bandwidth avec push heartbeat
Un check HTTP standard ne detecte pas une degradation progressive (page qui charge en 8 secondes au lieu de 800 ms). Ajoutez un script externe qui mesure le temps de chargement reel et pousse le resultat a Kuma uniquement si la perf est acceptable. Le script utilise curl avec format time_total, compare a un seuil de 2 secondes, et appelle l’URL push fournie par Kuma uniquement quand la condition est remplie.
#!/bin/bash
DUREE=$(curl -s -o /dev/null -w "%{time_total}" https://boutique.sn)
SEUIL=2.0
if (( $(echo "${DUREE} < ${SEUIL}" | bc -l) )); then
curl -s "https://kuma.exemple.sn/api/push/abc123?status=up&msg=ok&ping=${DUREE}"
fi
Le push n’a lieu que si le site charge sous 2 secondes. Au-dela, Kuma constate l’absence de heartbeat et passe en Down apres 5 minutes. Vous transformez ainsi un monitoring binaire en monitoring de qualite de service, ce qui est exactement ce que vos clients e-commerce demandent quand ils negocient un SLA performant.
Maintenance et sauvegarde de la base SQLite
Uptime Kuma stocke tout dans /app/data/kuma.db monte en volume Docker. Sa perte vous fait redeployer 30 monitors a la main. Sauvegardez quotidiennement vers MinIO Object Lock pour une protection anti-ransomware :
docker exec uptime-kuma sqlite3 /app/data/kuma.db ".backup /tmp/kuma.db"
docker cp uptime-kuma:/tmp/kuma.db /backups/
mc cp /backups/kuma.db local/backups-prod/uptime-kuma/
La commande .backup de SQLite garantit une copie coherente sans arreter le service. Stocker la base sur un bucket immutable la rend indestructible par un ransomware qui aurait compromis votre VPS Hetzner. La restauration prend 30 secondes : stop conteneur, copie fichier, restart, et vous retrouvez l’historique de monitoring intact.
Couts d’hebergement reels en Afrique de l’Ouest
Uptime Kuma consomme moins de 200 Mo de RAM et un seul coeur CPU. Un VPS Hetzner CX22 a 4,40 EUR/mois soit environ 2 887 FCFA heberge confortablement Kuma plus 5 autres petits services. Pour mutualiser entre plusieurs clients, un Hetzner CPX21 (3 vCPU AMD, 4 Go RAM) a 7,90 EUR/mois soit 5 184 FCFA permet de surveiller jusqu’a 100 monitors avec un intervalle de 60 secondes sans surcharge.
Compare a UptimeRobot Pro (15 USD/mois pour 50 monitors) ou Better Stack (25 USD/mois), votre VPS self-hosted devient rentable des le 5e client. Facturez le service de monitoring a 8 000 FCFA/mois par client : avec 10 clients, vous generez 80 000 FCFA pour un cout d’infra de 5 000 FCFA, soit 75 000 FCFA de marge mensuelle nette pour quelques minutes d’administration hebdomadaire.
Multi-tenancy avec Kuma proxifie derriere Authentik
Kuma 1.23 ne propose pas de gestion utilisateurs multi-comptes native. Pour donner acces a chaque client uniquement a ses propres status pages, placez Kuma derriere un proxy SSO Authentik qui injecte les headers d’identite et restreint les routes par groupe. La sequence est : Authentik provider proxy mode, Application avec policy par groupe client, regle Caddy ou Nginx qui reverse vers Kuma. Chaque client voit uniquement /status/son-slug, jamais le dashboard admin. Cette architecture transforme Kuma en SaaS de monitoring blanc reutilisable a l’infini.
caddy reverse-proxy --from status.votre-agence.sn --to localhost:3001
curl -H "X-authentik-username: client-aliou" https://status.votre-agence.sn/api/status-page/aliou
docker logs uptime-kuma --tail 50
Les logs doivent montrer une requete acceptee avec le bon user header. Si Kuma renvoie 403, verifiez que la route /api/status-page/SLUG est bien autorisee dans la config Authentik et que le groupe client contient l’utilisateur. Cette mise en place demande 2 heures la premiere fois, puis 5 minutes par nouveau client onboarde.
Integration Grafana pour vue executive
Pour un dirigeant qui veut une vue mensuelle agregee plutot qu’un dashboard temps reel, exportez les donnees Kuma vers Grafana via l’API. Un script Python qui tourne chaque nuit recupere uptime, downtime cumule, response time moyen par monitor, et insere le tout dans une base TimescaleDB ou InfluxDB. Grafana presente ensuite un rapport mensuel exportable en PDF qui justifie votre TMA face au comite de direction client.
curl -H "Authorization: Bearer ${KUMA_API}" https://kuma.exemple.sn/api/uptime/30d
python /opt/scripts/kuma-to-grafana.py --window 30d
grafana-cli admin export-dashboard 1234 > rapport-mensuel.json
La sortie attendue est un JSON liste de monitors avec leur SLA mensuel. Si un monitor passe sous 99,5 %, declenchez un point d’attention en reunion mensuelle avec le client. Cette traacabilite chiffree justifie souvent la negociation a la hausse du contrat de maintenance.
Plan de migration depuis UptimeRobot ou Better Stack
Si vous quittez UptimeRobot ou Better Stack pour des raisons de cout ou de conformite, planifiez une migration en trois phases pour eviter les angles morts. Phase 1 : exportez la liste de vos monitors actuels via l’API du fournisseur sortant. Phase 2 : importez en parallele dans Kuma sans desactiver l’ancien systeme, et laissez tourner les deux pendant 2 semaines pour comparer les detections. Phase 3 : une fois le taux de coherence verifie a plus de 98 %, migrez les notifications vers Kuma et coupez l’abonnement payant. Cette approche prudente vous evite de manquer une panne pendant la transition et vous donne des donnees concretes pour justifier le changement aupres de votre client ou de votre direction.