BeauTroll ac6eeae2e2 Add Docker socket access configuration for Docker monitoring probes
Configure portable Docker GID support to enable Docker container monitoring in Uptime Kuma. The DOCKER_GID environment variable allows the configuration to work across different servers where the docker group ID may vary.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-29 01:06:42 +01:00
2025-12-22 19:29:23 +01:00

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

Pour activer les sondes Docker (monitoring de conteneurs Docker), ajoutez également le GID du groupe Docker :

# Obtenir le GID du groupe docker
getent group docker | cut -d: -f3

Ajoutez cette valeur dans le fichier .env :

DOCKER_GID=999  # Remplacez par la valeur obtenue

Note

: Le DOCKER_GID peut varier d'un serveur à l'autre. Cette configuration doit être définie pour chaque environnement (dev, staging, prod).

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
DOCKER_GID GID du groupe Docker (requis pour les sondes Docker) 999

Premier démarrage

Lors du premier accès, Uptime Kuma vous demandera de créer un compte administrateur :

  1. Définissez un nom d'utilisateur
  2. Choisissez un mot de passe fort (minimum 12 caractères)
  3. 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

  1. Vérifiez les releases
  2. Modifiez la version dans docker-compose.yml
  3. 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

Les sondes Docker ne fonctionnent pas (EACCES /var/run/docker.sock)

Si vous voyez l'erreur connect EACCES /var/run/docker.sock, c'est un problème de permissions :

# 1. Obtenir le GID du groupe Docker
getent group docker | cut -d: -f3

# 2. Ajouter cette valeur dans .env
echo "DOCKER_GID=XXX" >> .env  # Remplacez XXX par la valeur obtenue

# 3. Redémarrer le container
docker compose down
docker compose up -d

Important : Le DOCKER_GID varie selon le serveur. Configurez-le pour chaque environnement.

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é :

Licence

Ce projet de configuration est libre d'utilisation. Uptime Kuma est sous licence MIT.

Description
No description provided
Readme 35 KiB