Uptime Kuma — Sonde de Surveillance Self-Hosted
🎯 Vue d'Ensemble
Uptime Kuma est une sonde de surveillance (monitoring) open-source self-hosted qui permet de monitorer l'uptime et la performance de tous tes services (sites web, APIs, VPS, bases de données, etc.). Une alternative complète à Pingdom ou UptimeRobot, hébergée sur ton propre VPS.
📊 Ce qu'Uptime Kuma Surveille
✅ HTTP/HTTPS : temps de réponse, codes d'erreur
✅ TCP/UDP : connectivité ports (SSH, MySQL, Redis, etc.)
✅ DNS : résolution et lookups
✅ Ping ICMP : latence réseau
✅ Certificats SSL : expiration, alertes
✅ Docker containers : statut, santé
✅ Bases de données : MySQL, PostgreSQL, MongoDB
✅ APIs heartbeat : POST personnalisés
🚀 Processus d'Intégration Complet
PHASE 1: PRÉPARATION VPS
Installation des prérequis et vérification de l'environnement :
Accès SSH au VPS
Vérification Node.js 14.17+ installé
Docker configuré (optionnel mais recommandé)
Ports 80, 443, 3001 disponibles
Création d'un utilisateur dédié uptimekuma pour la sécurité
PHASE 2: CLONAGE & INSTALLATION
Git Clone depuis repository officiel louislam/uptime-kuma
npm install : installation de 200+ dépendances (2-5 min)
npm run build : compilation React frontend + backend (3-10 min)
npm start : test en mode développement sur http://localhost:3001
Vérification de la base de données SQLite créée automatiquement
PHASE 3: CONFIGURATION PM2 (Démarrage Auto)
Mise en place du process manager pour garantir que Uptime Kuma redémarre automatiquement :
Installation globale : npm install -g pm2
Fichier ecosystem.config.js : configuration avancée (logs, memoire, env)
Démarrage : pm2 start ecosystem.config.js
Sauvegarde : pm2 save + pm2 startup pour boot automatique
Monitoring : pm2 logs pour suivre les événements en temps réel
PHASE 4: REVERSE PROXY APACHE
Configuration Apache pour exposer Uptime Kuma via un domaine sécurisé :
Activation modules : proxy, proxy_http, proxy_wstunnel, rewrite, ssl, headers
VirtualHost HTTPS : domaine uptime.amarsyll.pro
Redirection HTTP → HTTPS : sécurité forcée
ProxyPass : redirection de http://localhost:3001 vers le domaine public
WebSocket support : proxy_wstunnel pour logs temps réel
Headers de sécurité : HSTS, X-Frame-Options, X-Content-Type-Options
PHASE 5: CONFIGURATION UPTIME KUMA
Initialisation et configuration de la plateforme :
Setup initial : création compte admin avec mot de passe fort
Ajout moniteurs : HTTP/HTTPS, TCP ports, DNS, Ping
Exemples configurés :
Main Portfolio (https://amarsyll.pro) - interval 60s
HDR Admin Dashboard - interval 60s
MySQL Database (TCP:3306) - interval 120s
SSH Server (TCP:22) - interval 300s
TrackOS Analytics - interval 60s
Seuils : 2 retries avant alerte, down duration 5 min
PHASE 6: NOTIFICATIONS & ALERTES
Configuration des canaux d'alerte en cas de downtime :
Email SMTP : Gmail ou serveur mail custom (STARTTLS port 587)
Slack webhooks : notifications directes dans Slack
SMS/Discord : autres canaux supportés
Attachment aux moniteurs : configuration par service
Test notifications : validation avant production
PHASE 7: PAGE DE STATUT PUBLIQUE
Status Page publique : accessible via https://uptime.amarsyll.pro/status/[slug]
Affichage temps réel : état ✅/❌ de chaque service
Historique 90 jours : graphiques de l'uptime
Sans authentification : visible par tous les utilisateurs
Branding custom : titre, description, couleurs personnalisables
PHASE 8: SÉCURITÉ & HARDENING
Certificat SSL : Let's Encrypt avec renouvellement auto
2FA/TOTP : authentification à deux facteurs (optionnel mais recommandé)
Firewall UFW : limitation des ports ouverts
Headers de sécurité : HSTS, CSP, X-Frame-Options
Rate limiting : protection contre brute-force
PHASE 9: SAUVEGARDE & MAINTENANCE
Auto-backup : quotidien à 02:00 UTC (SQLite)
Backup manuel : tar.gz sur stockage externe
Mises à jour : git pull + npm install + rebuild
Monitoring logs : pm2 logs, Apache logs, système
Maintenance planifiée : restarts hebdomadaires (optionnel)
📊 Fonctionnalités Dashboard
Vue d'Ensemble Centralisée
Overall Status : uptime global en % (ex: 98.5%)
Today's Stats : requêtes totales, événements down, temps moyen réponse
All Monitors : liste complète avec statut en temps réel
Recent Events Timeline : historique chronologique des changements
Graphs : courbes de temps réponse sur 24h/7j/30j
Statistiques Détaillées par Service
Uptime percentage : 24h, 7j, 30j, all time
Response times : average, min, max
Status codes : distribution 200, 301, 404, 5xx, etc.
Downtime events : dates, durées, raisons (timeout, DNS, etc.)
Incidents : timeline détaillée avec contexte
Alertes & Notifications
Email immédiat en cas de downtime détecté
Notification de recovery quand le service revient
Alertes certificats SSL 30j avant expiration
Escalade si downtime > seuil défini
Historique complet de toutes les alertes
💻 Stack Technique
Frontend : Vue.js + Material Design (responsive)
Backend : Node.js + Express.js
Database : SQLite (simple) ou MySQL/PostgreSQL (scalable)
Real-time : Socket.IO pour WebSocket
Server : Apache 2.4 + PM2 + Ubuntu 20.04 LTS
Security : Let's Encrypt SSL, JWT, 2FA TOTP
Monitoring : Logs JSON, métriques Prometheus-ready
🎯 Cas d'Usage
Pour Développeurs Indépendants
✅ Monitorer tous tes projets depuis un seul dashboard
✅ Être alerté immédiatement en cas de downtime
✅ Afficher une page de statut publique à tes clients
✅ Tracker l'uptime de tes services perso (baccalaureat.sn, etc.)
Pour Agences Web & Boutiques en Ligne
✅ Monitorer la santé de sites clients
✅ Alertes SLA (Service Level Agreement) à respecter
✅ Status page à partager avec clients/utilisateurs
✅ Historique pour prouver la disponibilité
Pour Startups & SaaS
✅ Monitorer API, base de données, workers background jobs
✅ Alerts en cascade : email → Slack → SMS selon sévérité
✅ Dashboard client pour transparency
✅ Compliance SLA (99.9% uptime)
🌟 Avantages Clés
Souveraineté : 100% self-hosted sur ton VPS, pas de tiers
Coût zéro : open-source, pas d'abonnement mensuel
Transparence : code source visible sur GitHub
Scalabilité : support de 1000+ moniteurs
Flexibilité : customizable pour tes besoins spécifiques
Temps réel : WebSocket, latence < 100ms
RGPD-compliant : données hébergées localement
Enterprise-ready : 2FA, SSL, backups, haute disponibilité
📈 Exemples de Services Monitorés
Dashboard Uptime Kuma — amarsyll.pro Services
Overall Uptime: 99.87% (30 days)
Total Monitors: 5 active
1. Main Portfolio (HTTP)
├─ URL: https://amarsyll.pro
├─ Status: ✅ UP (243ms avg)
├─ Last Check: 2 minutes ago
└─ Uptime: 99.98% (30j)
2. HDR Admin (HTTP)
├─ URL: https://admin.amarsyll.pro
├─ Status: ✅ UP (318ms avg)
├─ Last Check: 1 minute ago
└─ Uptime: 100% (30j)
3. MySQL Database (TCP:3306)
├─ Host: localhost:3306
├─ Status: ✅ UP (12ms)
├─ Last Check: Just now
└─ Uptime: 100% (30j)
4. TrackOS Analytics (HTTP)
├─ URL: https://trackos.amarsyll.pro
├─ Status: ✅ UP (289ms avg)
├─ Last Check: 1 minute ago
└─ Uptime: 99.5% (30j)
5. SSH Server (TCP:22)
├─ Host: [IP]:22
├─ Status: ✅ UP (8ms)
├─ Last Check: Just now
└─ Uptime: 100% (30j)
Recent Downtime Events (Last 30 days):
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[2025-05-03 14:22] TrackOS: 2 min 14s (Socket timeout)
[2025-04-28 08:45] Main Portfolio: 47s (Network timeout)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔧 Commandes Utiles
# PM2 Management
pm2 status # État des processus
pm2 logs uptime-kuma # Logs en temps réel
pm2 restart uptime-kuma # Redémarrer
pm2 stop uptime-kuma # Arrêter
pm2 delete uptime-kuma # Supprimer
# Vérification Système
netstat -tuln | grep 3001 # Port 3001 utilisé?
lsof -i :3001 # Processus sur port 3001
sudo apache2ctl configtest # Syntax Apache OK?
sudo certbot certificates # Certificats SSL
# Logs
pm2 logs uptime-kuma # Logs app
sudo tail -f /var/log/apache2/uptime-kuma-* # Logs Apache
journalctl -u apache2 -f # Logs système
✅ Checklist Finale
[ ] Node.js 14.17+ installé
[ ] Repository cloné depuis GitHub
[ ] npm install & npm run build réussis
[ ] PM2 configuré avec ecosystem.config.js
[ ] Apache reverse proxy configuré
[ ] Certificat SSL Let's Encrypt actif
[ ] Interface accessible via https://uptime.amarsyll.pro
[ ] Compte admin créé avec mot de passe fort
[ ] 5+ moniteurs configurés et testés
[ ] Notifications email fonctionnelles
[ ] Status page publique créée
[ ] Backups configurés (quotidien)
[ ] 2FA/TOTP activé (optionnel)
[ ] Logs et monitoring vérifiés
[ ] Firewall UFW configuré
🎯 Résultats Attendus
Après intégration complète, tu disposes de :
✅ Monitoring 24/7 de tous tes services en temps réel
✅ Alertes instantanées via email/Slack en cas de downtime
✅ Page de statut publique à partager avec clients/utilisateurs
✅ Historique d'uptime détaillé (30-90 jours)
✅ Performance tracking avec métriques temps réel
✅ Alertes certificats SSL (expiration 30j avant)
✅ Dashboard centralisé pour administrer tous les services
✅ Conformité SLA : preuves d'uptime pour clients
✅ Solution enterprise 100% propriétaire et sécurisée
Uptime Kuma est maintenant entièrement intégré et opérationnel sur ton VPS. Tu disposes d'une solution enterprise-grade de monitoring et d'alertes pour tous tes services, avec souveraineté complète des données et zéro dépendance à des services tiers.
Status Page : https://uptime.amarsyll.pro
Admin Dashboard : https://uptime.amarsyll.pro (connexion requise)