Uptime Kuma – Installation et exploitation via Docker Compose sur la machine uptimekuma
Table des matières
Introduction, contexte, définitions et objectifs
Cette documentation décrit l’installation, la configuration,
l’exploitation et l’architecture de déploiement de Uptime Kuma sur la
machine uptimekuma.
Objectif
Mettre en place une solution de supervision accessible via interface web permettant : - La surveillance de services, serveurs, ports, DNS, HTTP(S), etc. - La publication d’une page de statut publique - L’administration sécurisée via une interface interne dédiée - L’isolation de l’application via conteneurisation Docker Compose - La persistance des données sur un stockage dédié - L’exposition web sécurisée via Nginx Proxy Manager (NPM)
Architecture fonctionnelle
- Machine hôte :
uptimekuma - Application : Uptime Kuma
- Mode de déploiement : Docker Compose
- Fichier de composition :
/compose/uptime-kuma/docker-compose.yml - Données persistantes :
/data/uptimekuma - Reverse Proxy : Nginx Proxy Manager
- Domaine public :
status.edu-kit.fr - Domaine interne / administration :
uptimekuma.int.edu-kit.fr
Sécurité
Deux niveaux d’accès sont mis en place :
Public : - status.edu-kit.fr - Accessible uniquement pour
consultation de la page de statut - Protégé par règles Nginx custom
empêchant l’accès à l’interface d’administration
Interne : - uptimekuma.int.edu-kit.fr - Réservé à l’administration
complète de la plateforme
Prérequis
Environnement système
- Nom d’hôte :
uptimekuma - OS : Linux (Debian 13)
- CPU : 1 vCPU
- RAM : 2 Go
- Stockage système : 8 Go
- Stockage :
/compose: composition/data: données persistantes
- Réseau :
- DNS configuré
- Accès HTTP/HTTPS
- Reverse proxy opérationnel
Dépendances logicielles
- Docker Engine
- Docker Compose Plugin
- Nginx Proxy Manager
- Accès root ou
Installation et configuration
Installation de Docker
Mise à jour système
apt update && apt upgrade -y
Installation Docker + Compose
apt install docker.io docker-compose-plugin -y
Vérification
docker --version
docker compose version
Création de l’arborescence
mkdir -p /compose/uptime-kuma
mkdir -p /data/uptimekuma
Création du fichier Docker Compose
nano /compose/uptime-kuma/docker-compose.yml
services:
uptimekuma:
image: louislam/uptime-kuma:2
container_name: uptimekuma
restart: unless-stopped
ports:
- "3001:3001"
volumes:
- "/data/uptimekuma:/app/data"
environment:
- UPTIME_KUMA_PORT=3001
- TZ=Europe/Paris
- UPTIME_KUMA_IN_CONTAINER=1
- UPTIME_KUMA_DISABLE_FRAME_SAMEORIGIN=true
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3001"]
interval: 30s
retries: 3
start_period: 10s
timeout: 5s
Déploiement du service
cd /compose/uptime-kuma
docker compose up -d
Configuration Nginx Proxy Manager
Proxy Host public
- Domaine :
status.edu-kit.fr - Forward Port :
3001
Règles custom
location ~ ^/(dashboard|manage-status-page|settings|api|login|register|setup) {
deny all;
return 403;
}
Proxy Host interne
- Domaine :
uptimekuma.int.edu-kit.fr - Usage : administration complète
Sauvegarde
tar -czf /backup/uptimekuma_$(date +%F).tar.gz /data/uptimekuma
Mise à jour
cd /compose/uptime-kuma
docker compose pull
docker compose up -d
docker image prune -f
Problèmes rencontré :
Port 3001 déjà utilisé
ss -tulpn | grep 3001
Permissions
chown -R 1000:1000 /data/uptimekuma
Sources :
- Documentation officielle Uptime Kuma : https://github.com/louislam/uptime-kuma
- Documentation Docker : https://docs.docker.com/
- Documentation Nginx Proxy Manager : https://nginxproxymanager.com/
- Documentation Nginx : https://nginx.org/en/docs/