Uptime Kuma
Le rôle Uptime Kuma déploie l’application dans un conteneur Docker à l’aide de Docker Compose et s’assure que le service est opérationnel.
Il est responsable de :
- le déploiement du fichier
compose.yaml - le déploiement de l’application avec Docker Compose
- la vérification de la disponibilité du service via une requête HTTP
Uptime Kuma a été retenu comme solution de supervision de disponibilité car il est :
- open source
- simple à déployer
- peu coûteux en maintenance
- déjà utilisé dans un précédent projet
Il répond aux besoins du projet tout en restant léger et facile à administrer.
Fonctionnement
Section titled “Fonctionnement”Le répertoire d’installation se situe ici :
cd /srv/apps/uptime-kuma/Le rôle déploie Uptime Kuma dans un conteneur Docker à l’aide de Docker Compose.
Le service écoute uniquement sur l’adresse 127.0.0.1 du VPS afin de ne pas être directement accessible depuis Internet. L’accès est assuré par Caddy, qui agit comme reverse proxy et gère le chiffrement TLS.
Les données de l’application sont stockées dans un volume Docker nommé uptime-kuma-data, ce qui permet de conserver la configuration et l’historique des sondes lors des mises à jour du conteneur.
Structure du rôle
Section titled “Structure du rôle”roles/uptime_kuma/├── defaults/│ └── main.yml # Variables du rôle├── tasks/│ └── main.yml # Instructions pour Ansible└── templates/ └── compose.yaml.j2 # Template du Docker Compose à déployerArchitecture
Section titled “Architecture”Client │ ▼Caddy │ reverse_proxy ▼127.0.0.1:3001 │Docker │Uptime KumaLes variables
Section titled “Les variables”Les variables sont contenues dans le fichier main.yml dans le dossier defaults.
Variables globales
Section titled “Variables globales”| Variable | Type | Description |
|---|---|---|
uptime_kuma_project_dir |
string | Répertoire contenant le projet Docker Compose |
uptime_kuma_image |
string | Nom de l’image à utiliser |
uptime_kuma_version |
int | Version de l’image à utiliser |
uptime_kuma_container_name |
string | Nom du conteneur |
uptime_kuma_bind_address |
string | Adresse IP sur laquelle publier le service |
uptime_kuma_host_port |
int | Port exposé sur le VPS |
uptime_kuma_container_port |
int | Port utilisé à l’intérieur du conteneur |
Exemple de fichier de configuration
Section titled “Exemple de fichier de configuration”uptime_kuma_project_dir: /srv/apps/uptime-kuma
uptime_kuma_image: louislam/uptime-kumauptime_kuma_version: "2"
uptime_kuma_container_name: uptime-kuma
uptime_kuma_bind_address: 127.0.0.1uptime_kuma_host_port: 3001uptime_kuma_container_port: 3001Déploiement
Section titled “Déploiement”Le rôle réalise les opérations suivantes :
- Création du dossier à l’emplacement souhaité.
- Déploiement du fichier
compose.yaml.j2dans le dossier créé à l’étape précédente. - Lancement du conteneur via le
compose.yaml. - Vérification que l’application répond avec un code HTTP 200.
Vérification
Section titled “Vérification”Vérifier le conteneur
Section titled “Vérifier le conteneur”docker psLe conteneur uptime-kuma doit être présent.
Vérifier le service
Section titled “Vérifier le service”curl http://127.0.0.1:3001La requête doit retourner une réponse HTTP 200.
Vérifier Docker Compose
Section titled “Vérifier Docker Compose”docker compose ps