Uptime Kuma - Monitoring Service
Déploiement sécurisé d'Uptime Kuma avec Docker Compose et Traefik.
Description
Uptime Kuma est un outil de monitoring open-source self-hosted. Il permet de surveiller la disponibilité de vos sites web, API, serveurs et services.
Cette configuration utilise :
- Image Docker rootless pour une sécurité renforcée
- Reverse proxy Traefik avec HTTPS automatique (Let's Encrypt)
- Headers de sécurité HTTP
- Limites de ressources et healthchecks
Fonctionnalités
- Surveillance de sites web (HTTP/HTTPS)
- Monitoring de ports TCP
- Ping de serveurs
- Surveillance de certificats SSL
- Notifications multi-canaux (Email, Slack, Discord, Telegram, etc.)
- Tableau de bord temps réel
- Historique de disponibilité
- Status pages publiques
Prérequis
- Docker et Docker Compose installés
- Un réseau Traefik externe nommé
traefik-net - Traefik configuré avec le resolver Let's Encrypt nommé
letsencrypt - Un nom de domaine pointant vers votre serveur
Vérifier le réseau Traefik
docker network ls | grep traefik-net
Si le réseau n'existe pas :
docker network create traefik-net
Installation
1. Cloner ou créer le projet
git clone <votre-repo>
cd agence66-uptime-kuma
2. Configurer les variables d'environnement
cp .env.example .env
nano .env
Définissez votre domaine :
DOMAIN=uptime.votredomaine.com
3. Créer le répertoire de données
mkdir -p data
chmod 755 data
4. Démarrer le service
docker compose up -d
5. Vérifier le déploiement
docker compose ps
docker compose logs -f
Accédez à https://uptime.votredomaine.com pour configurer votre compte administrateur.
Configuration
Variables d'environnement
| Variable | Description | Exemple |
|---|---|---|
DOMAIN |
Nom de domaine pour accéder à Uptime Kuma | uptime.example.com |
Premier démarrage
Lors du premier accès, Uptime Kuma vous demandera de créer un compte administrateur :
- Définissez un nom d'utilisateur
- Choisissez un mot de passe fort (minimum 12 caractères)
- Configurez vos notifications
Sécurité
Cette configuration implémente plusieurs couches de sécurité :
Docker Security
- Image rootless : Le container ne s'exécute pas en tant que root
- no-new-privileges : Empêche l'escalade de privilèges
- Capabilities dropped : Toutes les capacités kernel sont supprimées
- Version fixée :
2.0.2-rootless(pas de mises à jour automatiques non contrôlées)
Limites de ressources
CPU : 0.5 core maximum (0.25 réservé)
RAM : 512M maximum (256M réservé)
Headers HTTP de sécurité
- X-Frame-Options :
SAMEORIGIN(protection contre clickjacking) - X-Content-Type-Options :
nosniff(protection contre MIME sniffing) - X-XSS-Protection : Activé (filtre XSS du navigateur)
- Referrer-Policy :
strict-origin-when-cross-origin
HTTPS / TLS
- Certificats SSL automatiques via Let's Encrypt
- Renouvellement automatique
- Redirection HTTP → HTTPS gérée par Traefik
Healthcheck
Le container vérifie automatiquement sa santé toutes les 30 secondes :
# Voir le statut de santé
docker inspect uptime-kuma | grep -A 10 Health
Maintenance
Sauvegardes
Les données sont stockées dans ./data. Sauvegardez régulièrement ce répertoire :
# Backup manuel
tar -czf uptime-kuma-backup-$(date +%Y%m%d).tar.gz data/
# Ou avec docker compose arrêté (recommandé)
docker compose down
tar -czf uptime-kuma-backup-$(date +%Y%m%d).tar.gz data/
docker compose up -d
Restauration
docker compose down
tar -xzf uptime-kuma-backup-YYYYMMDD.tar.gz
docker compose up -d
Mise à jour
- Vérifiez les releases
- Modifiez la version dans
docker-compose.yml - Mettez à jour :
docker compose pull
docker compose up -d
Logs
# Voir les logs en temps réel
docker compose logs -f
# Logs des 100 dernières lignes
docker compose logs --tail=100
# Les logs sont automatiquement limités (10M max, 3 fichiers)
Redémarrage
docker compose restart
Arrêt
docker compose down
Surveillance des ressources
# Utilisation CPU/RAM
docker stats uptime-kuma
# Espace disque utilisé
du -sh data/
Troubleshooting
Le container ne démarre pas
# Vérifier les logs
docker compose logs
# Vérifier les permissions
ls -la data/
Erreur "network traefik-net not found"
docker network create traefik-net
docker compose up -d
Erreur de certificat SSL
Vérifiez que :
- Votre domaine pointe bien vers le serveur
- Traefik est configuré avec Let's Encrypt
- Le port 443 est ouvert
Problèmes de permissions
# Si problème avec le répertoire data
chmod 755 data
docker compose restart
Le healthcheck échoue
# Vérifier si curl est disponible dans le container
docker exec uptime-kuma curl -f http://localhost:3001 || echo "Healthcheck failed"
# Si curl n'est pas disponible, modifier le healthcheck dans docker-compose.yml
Commandes utiles
# Accéder au shell du container
docker exec -it uptime-kuma sh
# Voir la configuration Traefik détectée
docker inspect uptime-kuma | grep -A 20 Labels
# Tester la connectivité
curl -I https://uptime.votredomaine.com
Architecture
Internet
↓
Traefik (HTTPS/Let's Encrypt)
↓
Uptime Kuma Container (rootless)
↓
./data (persistance)
Ressources
Support
Pour signaler un bug ou demander une fonctionnalité :
- Issues Uptime Kuma : https://github.com/louislam/uptime-kuma/issues
Licence
Ce projet de configuration est libre d'utilisation. Uptime Kuma est sous licence MIT.