Skip to content

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.

Le répertoire d’installation se situe ici :

Terminal window
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.

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éployer
Client
│
▼
Caddy
│ reverse_proxy
▼
127.0.0.1:3001
│
Docker
│
Uptime Kuma

Les variables sont contenues dans le fichier main.yml dans le dossier defaults.

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
uptime_kuma_project_dir: /srv/apps/uptime-kuma
uptime_kuma_image: louislam/uptime-kuma
uptime_kuma_version: "2"
uptime_kuma_container_name: uptime-kuma
uptime_kuma_bind_address: 127.0.0.1
uptime_kuma_host_port: 3001
uptime_kuma_container_port: 3001

Le rôle réalise les opérations suivantes :

  1. Création du dossier à l’emplacement souhaité.
  2. Déploiement du fichier compose.yaml.j2 dans le dossier créé à l’étape précédente.
  3. Lancement du conteneur via le compose.yaml.
  4. Vérification que l’application répond avec un code HTTP 200.
Terminal window
docker ps

Le conteneur uptime-kuma doit être présent.

Terminal window
curl http://127.0.0.1:3001

La requête doit retourner une réponse HTTP 200.

Terminal window
docker compose ps