Aller au contenu

Uptime Kuma

Outil de surveillance de la disponibilité auto-hébergé avec support pour HTTP, TCP, DNS, Docker et 90+ services de notification incluant Slack, Discord et Telegram.

# Exécuter Uptime Kuma avec stockage persistant
docker run -d \
  --restart=always \
  -p 3001:3001 \
  -v uptime-kuma:/app/data \
  --name uptime-kuma \
  louislam/uptime-kuma:2

# Accéder à http://localhost:3001
# Lier à localhost seulement (aucun accès externe)
docker run -d \
  --restart=always \
  -p 127.0.0.1:3001:3001 \
  -v uptime-kuma:/app/data \
  --name uptime-kuma \
  louislam/uptime-kuma:2
# Télécharger le fichier compose officiel
mkdir uptime-kuma && cd uptime-kuma
curl -o compose.yaml \
  https://raw.githubusercontent.com/louislam/uptime-kuma/master/compose.yaml

# Démarrer le service
docker compose up -d

# Accéder à http://localhost:3001
# Monter le socket Docker pour la surveillance de la santé des conteneurs
docker run -d \
  --restart=always \
  -p 3001:3001 \
  -v uptime-kuma:/app/data \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  --name uptime-kuma \
  louislam/uptime-kuma:2
# Exigences: Node.js 20.4+, Git

# Cloner et configurer
git clone https://github.com/louislam/uptime-kuma.git
cd uptime-kuma
npm run setup

# Démarrer directement
node server/server.js

# Ou utiliser PM2 pour l'opération en arrière-plan
npm install -g pm2
pm2 start server/server.js --name uptime-kuma
CommandeDescription
docker run -d -p 3001:3001 louislam/uptime-kuma:2Démarrer le conteneur Uptime Kuma
docker compose up -dDémarrer avec Docker Compose
docker compose downArrêter tous les services
docker compose logs -fSuivre les journaux des conteneurs
docker restart uptime-kumaRedémarrer le conteneur
docker stop uptime-kumaArrêter le conteneur
docker start uptime-kumaDémarrer le conteneur arrêté
node server/server.jsDémarrer sans Docker
pm2 start server/server.js --name uptime-kumaDémarrer avec PM2
pm2 restart uptime-kumaRedémarrer avec PM2
pm2 stop uptime-kumaArrêter avec PM2
pm2 logs uptime-kumaAfficher les journaux PM2
# Récupérer la dernière image
docker pull louislam/uptime-kuma:2

# Arrêter et supprimer le conteneur actuel
docker stop uptime-kuma
docker rm uptime-kuma

# Recréer avec la nouvelle image (les données persistent dans le volume)
docker run -d \
  --restart=always \
  -p 3001:3001 \
  -v uptime-kuma:/app/data \
  --name uptime-kuma \
  louislam/uptime-kuma:2
# Récupérer et recréer
docker compose pull
docker compose up -d
cd uptime-kuma
git fetch --all
git checkout 2.1.3 --force
npm install --production
npm run download-dist
pm2 restart uptime-kuma
TypeDescription
HTTP(S)Surveiller la disponibilité du site web et le temps de réponse
HTTP(S) KeywordVérifier la présence de texte spécifique dans le corps de la réponse
HTTP(S) JSON QueryValider les valeurs de réponse JSON
TCP PortVérifier si un port TCP est ouvert et répond
PingPing ICMP pour la disponibilité de l’hôte
DNSSurveiller la résolution des enregistrements DNS
Docker ContainerSurveiller l’état de santé du conteneur
Steam Game ServerVérifier la disponibilité du serveur de jeu
MQTTSurveiller la connectivité du courtier MQTT
gRPCSurveiller la santé du service gRPC
RadiusVérification du serveur d’authentification RADIUS
GameDigSurveillance du serveur de jeu (plusieurs protocoles)
PushSurveillance passive via point de terminaison de battement de cœur
GroupGroupage logique des surveillance
ServiceDescription
SlackWebhooks de canal et notifications bot
DiscordNotifications de canal basées sur webhook
TelegramNotifications API bot
Microsoft TeamsNotifications webhook entrantes
MattermostIntégration de chat auto-hébergé
Rocket.ChatNotifications webhook
Google ChatNotifications webhook d’espace
MatrixNotifications de chat décentralisé
ServiceDescription
PushoverNotifications push mobile
GotifyServeur push auto-hébergé
ntfyNotifications pub/sub basées sur HTTP
PushbulletNotifications push multi-appareils
SignalNotifications de messagerie sécurisée
LINEIntégration LINE Notify
ServiceDescription
PagerDutyAlertes d’incident et intervention
OpsgenieGestion des alertes et escalade
SquadcastGestion des incidents
Splunk On-CallRoutage d’alerte VictorOps
Better StackSurveillance de la disponibilité et gestion des incidents
ServiceDescription
SMTP EmailNotifications email personnalisées
WebhookAppels de point de terminaison HTTP personnalisés
Home AssistantDéclencheurs d’automatisation de maison intelligente
ApprisePasserelle de notification universelle
VariableDescriptionPar défaut
UPTIME_KUMA_PORTPort du serveur3001
UPTIME_KUMA_HOSTAdresse de liaison::
DATA_DIRRépertoire de stockage des données./data
TZFuseau horaireUTC
UMASKMasque d’autorisation de fichier0000
NODE_EXTRA_CA_CERTSChemin des certificats CA personnalisés
SSL_CERTChemin du certificat SSL
SSL_KEYChemin de la clé privée SSL
FonctionnalitéDescription
Plusieurs pagesCréer des pages d’état séparées pour différents services
Domaines personnalisésMapper les pages d’état à des noms de domaine personnalisés
CSS personnaliséStyliser les pages d’état avec CSS personnalisé
Publications d’incidentCréer des rapports d’incident visibles sur la page d’état
MaintenancePlanifier les fenêtres de maintenance
Groupes de surveillanceOrganiser les surveillance en groupes sur la page d’état
# Installer le client API Python
pip install uptime-kuma-api
OpérationDescription
Add monitorCréer les surveillance par programme
Edit monitorMettre à jour la configuration de surveillance
Delete monitorSupprimer les surveillance
Pause/ResumeBasculer l’état de surveillance
Get statusRécupérer l’état actuel de surveillance
Add notificationConfigurer les fournisseurs de notification
Get uptimeInterroger les statistiques de disponibilité
# compose.yaml
services:
  uptime-kuma:
    image: louislam/uptime-kuma:2
    container_name: uptime-kuma
    restart: always
    ports:
      - "3001:3001"
    volumes:
      - ./data:/app/data
      # Optionnel: Surveillance des conteneurs Docker
      # - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      - TZ=UTC
FonctionnalitéDescription
2FAAuthentification à deux facteurs pour la connexion
Reverse ProxyDéployer derrière Nginx, Caddy ou Traefik
SSL/TLSSSL intégré ou terminaison par reverse proxy
Limitation de débit de connexionProtection contre le forçage brut
Clés APIAccès API basé sur jetons
server {
    listen 443 ssl;
    server_name status.example.com;

    location / {
        proxy_pass http://127.0.0.1:3001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
CommandeDescription
docker cp uptime-kuma:/app/data ./backupSauvegarder le répertoire de données
docker cp ./backup/. uptime-kuma:/app/dataRestaurer à partir de la sauvegarde
docker volume inspect uptime-kumaTrouver le point de montage du volume
ProblèmeSolution
Impossible d’accéder à l’interface utilisateurVérifier la liaison du port: docker port uptime-kuma
Erreurs de volume NFSUtiliser les répertoires locaux, pas les systèmes de fichiers réseau
Erreurs WebSocketConfigurer le reverse proxy pour la mise à niveau WebSocket
Conteneur ne démarre pasVérifier les journaux: docker logs uptime-kuma
Persistance des données perdueS’assurer que le volume -v uptime-kuma:/app/data est utilisé
Échec de la surveillance DockerMonter docker.sock: -v /var/run/docker.sock:/var/run/docker.sock:ro
PlateformeÉtat
Linux (x64, ARM)Supporté
Windows 10+ (x64)Supporté
macOSSupporté
Docker DesktopSupporté
KubernetesVia image Docker
FreeBSD/OpenBSDNon supporté
Replit/HerokuNon supporté
  • Utiliser les volumes Docker (pas les montages de liaison sur NFS) pour la persistance des données
  • Déployer derrière un reverse proxy avec terminaison SSL pour une utilisation en production
  • Activer 2FA pour le compte administrateur immédiatement après la première connexion
  • Définir les intervalles de surveillance à 60 secondes ou plus pour les services externes
  • Utiliser le type de surveillance Push pour les services derrière des pare-feu
  • Configurer au moins 2 canaux de notification pour la redondance
  • Créer des pages d’état séparées pour les audiences internes et externes
  • Sauvegarder régulièrement le répertoire de données — il contient toute la configuration
  • Définir le fuseau horaire via la variable d’environnement TZ pour correspondre à votre centre d’exploitation