
Sommaire
Introduction
Superviser ses services depuis l’extérieur est devenu indispensable : un site ou service peut être parfaitement accessible en interne tout en étant indisponible pour les utilisateurs externes. C’est précisément là qu’un outil comme Uptime Kuma prend tout son sens.
Avec une supervision uniquement interne, une panne Internet ou d’infrastructure peut empêcher toute alerte. Une supervision externe chez un hébergeur permet au contraire de vérifier l’accessibilité réelle de vos services et d’être notifié même en cas de coupure globale.
Uptime Kuma est une solution de supervision open source, légère et moderne, qui permet de surveiller très simplement des services HTTP(S), DNS, TCP, ping, docker, base de données, etc.
Dans cet article, nous allons voir comment déployer Uptime Kuma avec docker sur un VPS gratuit proposé par Oracle Cloud. L’objectif est de mettre en place une supervision externe fiable, capable de vérifier la disponibilité réelle de vos services qu’il s’agisse d’applications web, de serveurs DNS ou d’accès réseau.
Fonctionnalités
Supervision
Voici les types de services que Uptime Kuma peut monitorer :
- HTTP(S)
- TCP (ports / services réseau)
- DNS
- Ping (ICMP)
- Expiration des certificats SSL/TLS
- Expiration des noms de domaine
- Vérification de mots-clés (contenu web)
- SNMP
- SMTP
- WebSocket
Mais aussi des services plus spécifiques :
- gRPC avec vérification de contenu
- MQTT, Kafka, RabbitMQ
- Radius
- Bases de données
- Conteneurs Docker
Alerting
Uptime Kuma propose de nombreuses méthodes de notification pour être alerté rapidement en cas d’incident.
Les méthodes les plus populaires sont :
- Email (SMTP)
- Discord
- Telegram
- Slack
- Microsoft Teams
- Webhook (intégration personnalisée)
- SMS (via services tiers)
- Push notifications (Pushover, Ntfy, Gotify…)
Schema
Voici un schéma simple de l’infrastructure qui sera mise en place

Ce schéma présente l’architecture qui sera mise en place dans ce tutoriel : un VPS Oracle gratuit hébergeant Uptime Kuma dans Docker pour superviser des services externes. Nous configurerons des sondes HTTP(s) pour vérifier la disponibilité d’un site web ainsi que des checks DNS afin de valider la résolution du domaine. Enfin, un système d’alertes par email sera configuré pour être notifié automatiquement en cas de panne ou d’anomalie.
VPS Oracle
Oracle Cloud, dans son offre Free Tier, permet de disposer de deux petites instances x86 (1 OCPU, 1 Go de RAM chacune) ainsi que de ressources ARM (Ampere A1) allant jusqu’à 4 OCPU et 24 Go de RAM au total, répartissables sur une ou plusieurs machines virtuelles.
Source : https://docs.oracle.com/fr-fr/iaas/Content/FreeTier/freetier_topic-Always_Free_Resources.htm
Une fois votre compte créé sur Oracle, accédez à la section Compute, puis sélectionnez Instances.
Sélectionner « Create Instance » pour créer notre VPS

Choisissez le nom que vous souhaitez lui accorder, dans mon cas, il s’agira de ce nom : « uptime kuma »

Ensuite, sélectionnez l’image qui sera associée à votre VPS ; dans cet exemple, nous avons opté pour Ubuntu 24.04.

Pour la suite, conservez les paramètres par défaut, sauf si vous souhaitez opter pour le serveur ARM.
Choisissez votre Virtual cloud network.

Générez des clés SSH, qui vous permettront d’établir une connexion sécurisée à votre serveur via le protocole du même nom.

L’instance est en cours de création. Il est possible que la création de l’instance échoue, dans ce cas il faudra réessayer plus tard !

Récupérer l’IP publique de votre vps

Déplacez vos clés dans le répertoire .ssh de votre dossier utilisateur (par exemple : C:/Users/Thomas/.ssh).
Ouvrez ensuite un terminal (ou l’invite de commandes), puis positionnez-vous dans le répertoire .ssh.
Connectez-vous ensuite à votre serveur à l’aide de la commande suivante :
ssh -i ssh-key-uptime-kuma.key ubuntu@X.X.X.X
ssh-key-uptime-kuma.key correspond à la clé privée
ubuntu est le nom d’utilisateur
X.X.X.X à votre adresse IP publique

Ensuite, configuration des règles de filtrage (port 22, 80 et 443) dans la partie Networking

Configuration DNS
Vous devez disposer d’un nom de domaine pour ce tutoriel, car votre appliance uptime kuma sera joignable depuis votre nom de domaine. Il est possible d’utiliser des noms de domaine gratuit avec des extensions peu populaire. Je vous laisse effectuer vos recherches de votre côté si vous n’en possédez pas.
L’objectif est de lié notre nom de domaine à l’IP du VPS qui vient d’être créé, et que la résolution DNS fonctionne.
Dans ce cas, rendez-vous sur votre hébergeur DNS pour modifier vos enregistrement DNS.

Créez ensuite un enregistrement de type A.

Dans le champ de préfixe, j’ai choisi de définir « monitor » ; cela générera le nom de domaine suivant : monitor.colinfo.fr.

Une fois crée et après quelques minutes d’attente, ma résolution DNS doit fonctionner avec la commande nslookup :


Installation Uptime Kuma
Installation docker
Docker permet de lancer des applications dans des conteneurs, c’est-à-dire des environnements isolés.
Chaque conteneur contient tout ce dont l’application a besoin pour fonctionner.
C’est plus léger et plus rapide qu’une machine virtuelle.
Commencer par faire les mises à jour sur votre serveur ubuntu :
sudo apt update && sudo apt upgrade -y
Voici la documentation officielle pour ubuntu qui est très bien expliqué : https://docs.docker.com/engine/install/ubuntu/
Voici la liste des commandes a exécuté :
Ajout des repository docker :
# Add Docker's official GPG key:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
Installation des paquets docker :
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Vérification du service docker :
sudo systemctl status docker

Si le statut est indiqué comme actif, vous pouvez poursuivre le tutoriel.
Installation du reverse proxy SWAG et Uptime Kuma
SWAG est un reverse proxy basé sur Nginx. Il permet de rediriger les requêtes web vers votre conteneur Uptime Kuma.
Il offre :
- Configuration et mise en place simples
- Gestion automatique des certificats SSL
- Compatibilité avec plusieurs fournisseurs cloud
- Intégration de mécanismes de sécurité (Fail2Ban, blocage géographique, etc.)
Si vous n’êtes pas encore à l’aise avec vi, vous pouvez installer nano, qui n’est pas inclus par défaut dans l’image sélectionnée.
sudo apt install nano
Créez un dossier nommé “supervision”
sudo mkdir supervision && cd supervision
Création du fichier de configuration pour les conteneurs :
sudo nano docker-compose.yaml
Insérez le contenu suivant (remplacez les variables d’environnement URL et SUBDOMAINS par celles correspondant à votre propre configuration) :
services:
uptime-kuma:
container_name: uptime-kuma
image: louislam/uptime-kuma:2
volumes:
- ./data:/app/data
ports:
- 3001:3001
restart: unless-stopped
swag:
image: lscr.io/linuxserver/swag
container_name: swag
cap_add:
- NET_ADMIN
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Paris
- URL=colinfo.fr
- SUBDOMAINS=monitor,
- VALIDATION=http
- ONLY_SUBDOMAINS=true
volumes:
- ./swag:/config
ports:
- 80:80
- 443:443
restart: unless-stopped
Ensuite, procédez au démarrage des conteneurs :
sudo docker compose up -d
Vérifiez que les conteneurs ont bien démarré :
sudo docker ps

Si vous saisissez uniquement l’adresse IP publique dans votre URL, vous devriez normalement accéder à l’interface de SWAG.

Configuration de Uptime Kuma
Configuration DNS
Nous allons maintenant configurer SWAG afin de faire fonctionner le domaine monitor.colinfo.fr.
Déplacer vous dans cette arborescence :
cd /supervision/swag/nginx/proxy-confs
Modifier ensuite le nom du fichier uptime-kuma.subdomain.conf.sample par uptime-kuma.subdomain.conf
mv uptime-kuma.subdomain.conf.sample uptime-kuma.subdomain.conf
Nous allons éditer ce fichier :
nano uptime-kuma.subdomain.conf
Remplacez uptime-kuma.* par la valeur définie dans votre configuration DNS.
Si avez choisi uptime-kuma dans votre enregistrement DNS, vous n’avez pas besoin de modifier ce fichier.
Avant :

Après :

Redémarrez le conteneur afin de prendre en compte les modifications.
sudo docker restart swag
Après quelques secondes, rendez-vous sur votre navigateur. Uptime Kuma est disponible par votre nom DNS.
Démarrage

Ensuite, choisissez SQLite comme base de données.

Définissez un nom d’utilisateur ainsi qu’un mot de passe.

Création des sondes
Nous allons créer notre première sonde qui sera une sonde Web. Cliquez sur « Ajouter une nouvelle sonde à gauche ».

Sonde web
Pour créer une sonde web, vous devez choisir HTTP(s) dans « Type de sonde ».
Renseignez les informations essentielles, telles que le type de sonde, l’URL, etc. Tous les champs peuvent être personnalisés.


Sonde DNS
Pour une sonde DNS, le type de sonde sera « DNS ».


Configuration des notifications
Dans Paramètres > Notifications, vous pourrez créer vos propres notifications.
Nous allons couvrir la création d’une notification par mail.

Pour configurer une notification par e-mail, sélectionnez le type « Courriel (SMTP) ».
Dans cet exemple, un compte Infomaniak est utilisé afin d’exploiter leur serveur SMTP de manière sécurisée.
Cette configuration peut également être réalisée avec un compte Google ou via d’autres plateformes similaires.


Il est possible de tester le bon fonctionnement de la notification sur le bouton « Tester ».

L’e-mail a bien été reçu.

Conclusion
En mettant en place Uptime Kuma sur un VPS, vous disposez d’une solution de supervision externe pour couvrir les faiblesses de la supervision interne.
Associé à Docker et à SWAG, cet environnement permet de surveiller vos services en conditions réelles et d’être alerté rapidement en cas d’incident.
Vous avez désormais une base solide, évolutive et adaptée pour garantir la disponibilité de vos applications et infrastructures.

