Installation · 14 min read · Nov 17, 2025
Comment installer Kuma - Alternative auto-hébergée à Uptime Robot sur Ubuntu 20.04

Uptime-Kuma est un outil de surveillance open-source similaire à “Uptime Robot” écrit en Nodejs. C’est un outil de surveillance auto-hébergé avec un tableau de bord élégant et beau, et il prend en charge plusieurs méthodes de notification. Uptime-Kuma surveillera le temps de disponibilité des hôtes ou des serveurs via les protocoles HTTP(s), TCP et Ping. Si les hôtes ne peuvent pas être atteints via ces protocoles à intervalles réguliers, les hôtes de disponibilité enverront des notifications via Webhooks, Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP), etc.
Dans ce guide, vous apprendrez à installer Uptime-Kuma sur un serveur Ubuntu et à utiliser le serveur web Apache comme proxy inverse avec un certificat SSL Let’s Encrypt gratuit devant lui. Pendant l’installation, vous apprendrez également à installer Nodejs via nvm (node version manager).
Prérequis
- Un serveur Ubuntu 20.04.
- Un utilisateur avec des privilèges root. Vous utiliserez cet utilisateur pour installer de nouveaux paquets et modifier les paramètres système.
Ajout d’un nouvel utilisateur
La première chose à faire est d’ajouter un nouvel utilisateur au système Ubuntu. Pour des raisons de sécurité, l’application Uptime-Kuma fonctionnera en tant qu’utilisateur non-root.
- Ajoutez un nouvel utilisateur en exécutant la commande ci-dessous. Pour cet exemple, nous utiliserons le nom d’utilisateur “ johndoe “. Assurez-vous de changer le nom d’utilisateur par le vôtre.
useradd -m -s /bin/bash johndoeOptions que vous devez connaître :
- -m = crée automatiquement le répertoire personnel pour le nom d’utilisateur, qui sera disponible sous le répertoire ‘/home’.
- -s = définit le chemin du shell pour l’utilisateur, la plupart des Linux ont le shell
/bin/bash.
- Ensuite, exécutez la commande suivante pour définir le mot de passe de l’utilisateur “johndoe”.
passwd johndoeMaintenant, tapez un nouveau mot de passe fort et répétez-le, puis appuyez sur “ Entrée “ pour confirmer.
- Ensuite, ajoutez l’utilisateur “johndoe” au groupe “ sudo “ en utilisant la commande ci-dessous.
usermod -aG sudo johndoeEn ajoutant des utilisateurs au groupe “ sudo “, cela permettra aux utilisateurs d’exécuter la commande “sudo su” et d’obtenir les privilèges root.
Installer NVM (Node Version Manager)
NVM ou Node Version Manager est un outil en ligne de commande pour installer plusieurs versions de nodejs sur un même système. Cet outil vous permet d’installer une version spécifique de nodejs pour vos applications, rendant votre environnement de développement et de déploiement flexible.
Pour cette phase, vous allez installer nvm sous l’utilisateur non-root “johndoe”.
- Depuis votre shell root, connectez-vous à l’utilisateur “johndoe” en utilisant la commande suivante.
su - johndoe- Téléchargez et exécutez le script d’installation de nvm comme suit.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
- Après le succès, rechargez l’environnement bash en utilisant la commande ci-dessous.
source ~/.bashrc- Maintenant, vérifiez l’installation de “ nvm “ en exécutant la commande ci-dessous.
command -v nvmSi votre installation est réussie, vous verrez le résultat “ nvm “. Sinon, vous ne verrez rien ou un résultat vide.
Maintenant, exécutez la commande nvm comme ci-dessous.
nvm --helpEt vous verrez la page d’aide manuelle de la commande nvm.
Node Version Manager (v0.38.0)
Note: fait référence à toute chaîne de type version que nvm comprend. Cela inclut:
- numéros de version complets ou partiels, commençant par un "v" optionnel (0.10, v0.1.2, v1)
- alias par défaut (intégrés) : node, stable, unstable, iojs, system
- alias personnalisés que vous définissez avec `nvm alias foo`
Toute option qui produit une sortie colorée doit respecter l'option `--no-colors`.
Utilisation:
nvm --help Afficher ce message
--no-colors Supprimer la sortie colorée
.....
Note:
pour supprimer, effacer ou désinstaller nvm - il suffit de supprimer le dossier `$NVM_DIR` (généralement `~/.nvm`) Installer la version LTS de Nodejs
Pour installer l’application uptime-Kuma, vous devez installer nodejs >= 14, git, et pm2. Pour ce point, vous allez installer la dernière version LTS de nodejs en utilisant la commande nvm.
- Exécutez la commande nvm ci-dessous pour installer la dernière version LTS de nodejs.
nvm install --ltsUne fois l’installation réussie, vous verrez une sortie similaire à celle ci-dessous.

La première version de nodejs que vous installez devient la version par défaut dans votre environnement de développement.
- Maintenant, exécutez la commande suivante pour vérifier l’installation de nodejs.
node --version
npm --versionSi votre installation réussit, vous verrez une sortie similaire à celle ci-dessous.
# version de nodejs
v14.17.4
# version de npm
6.14.14Télécharger et installer Uptime-Kuma
À ce stade, vous êtes prêt à installer l’application Uptime-Kuma.
- Clonez le code source d’uptime-Kuma en utilisant la commande git ci-dessous.
git clone https://github.com/louislam/uptime-kuma.git- Après cela, changez le répertoire de travail en “ uptime-kuma/ “ et exécutez la commande npm pour installer tous les paquets nécessaires pour uptime-kuma.
cd uptime-kuma/
npm run setupEt vous verrez une sortie similaire à celle ci-dessous.

Configuration d’Uptime-Kuma avec pm2
Qu’est-ce que pm2 ? C’est un gestionnaire de processus nodejs qui vous aidera à gérer et à maintenir votre application nodejs en vie pour toujours. pm2 a certaines fonctionnalités intégrées qui facilitent le déploiement des applications nodejs, il vous permet de surveiller l’état de votre application, les journaux, et même de configurer le fichier de service pour votre application.
- Installez le paquet pm2 en utilisant la commande npm ci-dessous.
npm install pm2- Une fois l’installation terminée, exécutez la commande pm2 ci-dessous pour démarrer l’application uptime-kuma.
pm2 start npm --name uptime-kuma -- run start-server -- --port=3001 --hostname=127.0.0.1Et vous verrez les messages de sortie comme ci-dessous.

Comme on le voit sur l’image, le nom de l’application “ uptime-kuma “ fonctionne avec le statut “ en ligne “.
- Pour vérifier l’état de votre application sur pm2, exécutez les commandes suivantes ci-dessous.
Vérifiez l’état de l’application nodejs.
pm2 statusVérifiez les journaux de l’application nodejs.
pm2 logs
Surveillance en temps réel de l’application nodejs.
pm2 monit
- Ensuite, exécutez la commande pm2 suivante pour générer le fichier de service pour l’application uptime-kuma.
pm2 startupAprès cela, vous devez exécuter la commande comme ordonné dans la sortie.
sudo env PATH=$PATH:/home/johndoe/.nvm/versions/node/v14.17.4/bin /home/johndoe/.nvm/versions/node/v14.17.4/lib/node_modules/pm2/bin/pm2 startup systemd -u johndoe --hp /home/johndoeAssurez-vous d’utiliser la commande “ sudo “ et d’entrer le bon mot de passe pour votre utilisateur afin d’obtenir les privilèges root.
Une fois la commande terminée, vous verrez la sortie suivante.

Comme on le voit sur la capture d’écran, pm2 génère un service systemd basé sur l’utilisateur, pour cet exemple c’est “ pm2-johndoe.service “.
Maintenant, exécutez la commande suivante pour générer et enregistrer l’état de l’application uptime-kuma. Cette commande est importante pour faire en sorte que l’application uptime-kuma fonctionne toujours en arrière-plan, même après le démarrage du système.
pm2 save- Pour vérifier le service ‘ pm2-johndoe’, exécutez la commande ci-dessous.
sudo systemctl is-enabled pm2-johndoeVous verrez la sortie enabled, ce qui signifie que l’application uptime-kuma sera automatiquement exécutée après le démarrage du système.
De plus, vous pouvez essayer de redémarrer votre système et de vous reconnecter au serveur, puis vérifier le service uptime-kuma.
sudo systemctl status pm2-johndoeVous devriez voir une sortie similaire à celle ci-dessous.
? pm2-johndoe.service - Gestionnaire de processus PM2
Chargé: chargé (/etc/systemd/system/pm2-johndoe.service; enabled; vendor preset: enabled)
Actif: actif (en cours d'exécution) depuis mar. 10 août 2021 01:52:37 UTC; 3min 57s
Docs: https://pm2.keymetrics.io/
Main PID: 745 (PM2 v5.1.0: God)
Tâches: 34 (limite: 2343)
Mémoire: 120.4M
CGroup: /system.slice/pm2-johndoe.service
??745 PM2 v5.1.0: God Daemon (/home/johndoe/.pm2)
??772 npm
??873 sh -c node server/server.js "--port=3001" "--hostname=127.0.0.1"
??874 node server/server.js --port=3001 --hostname=127.0.0.1
10 août 01:52:36 ubuntu64 pm2[633]: [PM2] Lancement du démon PM2 avec pm2_home=/home/johndoe/.pm2
10 août 01:52:37 ubuntu64 pm2[633]: [PM2] PM2 a été correctement daemonisé
10 août 01:52:37 ubuntu64 pm2[633]: [PM2] Résurrection
10 août 01:52:37 ubuntu64 pm2[633]: [PM2] Restauration des processus situés dans /home/johndoe/.pm2/dump.pm2
10 août 01:52:37 ubuntu64 pm2[633]: [PM2] Processus /home/johndoe/.nvm/versions/node/v14.17.4/bin/npm restauréLe “ pm2-johndoe.service “ est en cours d’exécution au démarrage du système.
Configurer Apache comme proxy inverse
Pour ce guide, vous allez installer et configurer le serveur web Apache comme proxy inverse pour l’application uptime-Kuma.
- Exécutez la commande suivante pour installer les paquets du serveur web apache.
sudo apt install apache2Tapez “y” et appuyez sur “ Entrée “ pour installer le serveur web apache.
- Après cela, activez certains modules apache en utilisant la commande ci-dessous.
sudo a2enmod ssl proxy proxy_ajp proxy_wstunnel proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html- Ensuite, créez une nouvelle configuration de virtual-host ‘ uptime-kuma.conf ‘ en utilisant la commande de l’éditeur nano ci-dessous.
sudo nano /etc/apache2/sites-available/uptime-kuma.confCollez la configuration suivante dans votre terminal et changez le nom de domaine “ uptime.example.net “ par votre domaine tel que “ domain.com “.
ServerName uptime.example.net
ProxyPass / http://localhost:3001/
RewriteEngine on
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/?(.*) "ws://localhost:3001/$1" [P,L]
Appuyez sur “ Ctrl+x “ et tapez “ Y “ pour enregistrer la configuration.
- Maintenant, activez la configuration de virtual-host apache “uptime-kuma” en utilisant la commande ci-dessous.
sudo a2ensite uptime-kumaAprès cela, exécutez la commande suivante pour vérifier la configuration apache et vous assurer que vous n’avez pas d’erreur.
sudo apachectl configtest- Maintenant, appliquez la nouvelle configuration en redémarrant le service apache en utilisant la commande ci-dessous.
sudo systemctl restart apache2
Sécuriser Uptime-kuma avec SSL Letsencrypt
Pour sécuriser l’accès à Uptime-Kuma, vous allez configurer le SSL de Letsencrypt pour le serveur web apache.
- Tout d’abord, installez l’outil certbot en exécutant la commande suivante.
sudo apt install python3-certbot-apacheTapez “ y “ et appuyez sur “ Entrée “ pour commencer l’installation.
- Après l’installation, générez le SSL Let’s encrypt en utilisant la commande certbot comme ci-dessous.
sudo certbot --apache yourdomain.comTapez votre adresse e-mail pour vous inscrire à Letsencrypt et appuyez sur “ Entrée “ pour continuer. Letsencrypt enverra des e-mails à votre adresse e-mail chaque fois que vos certificats SSL expirent.
Enregistrement du journal de débogage dans /var/log/letsencrypt/letsencrypt.log
Plugins sélectionnés : Authenticator apache, Installer apache
Entrez l’adresse e-mail (utilisée pour les renouvellements urgents et les avis de sécurité) (Entrez ‘c’ pour
cancel): [email protected]
Pour les CGU de Letsencrypt (Conditions d'utilisation), tapez " A " pour accepter et appuyez sur " Entrée " pour continuer.
- Veuillez lire les Conditions d’utilisation à
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. Vous devez
accepter pour vous inscrire auprès du serveur ACME à
https://acme-v02.api.letsencrypt.org/directory
- Veuillez lire les Conditions d’utilisation à
- (A)ccepter/(C)annuler: ASeriez-vous disposé à partager votre adresse e-mail avec l’Electronic Frontier
Pour le partage d'e-mail avec l'EFF (Electronic Frontier Foundation), vous pouvez taper " Y " pour oui et " N " pour non. Pour cet exemple, nous ne partagerons pas d'adresse e-mail avec l'EFF.
Foundation, un partenaire fondateur du projet Let’s Encrypt et l’organisation à but non lucratif
qui développe Certbot ? Nous aimerions vous envoyer des e-mails sur notre travail
encryptant le web, les nouvelles de l’EFF, les campagnes et les moyens de soutenir la liberté numérique.
- (A)ccepter/(C)annuler: A
- (Y)es/(N)o: N
Maintenant, l'outil certbot générera SSL Letsencrypt pour le nom de domaine Uptime-Kuma. De plus, il ajoutera quelques configurations supplémentaires pour la configuration de l'hôte virtuel apache. Vous serez invité à configurer la redirection automatique de HTTP vers HTTPS. Tapez le numéro "2" pour configurer la redirection automatique de apache de HTTP vers HTTPS et appuyez sur " Entrée ".Veuillez choisir si vous souhaitez ou non rediriger le trafic HTTP vers HTTPS, en supprimant l'accès HTTP. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: Pas de redirection - Ne faites aucun changement supplémentaire à la configuration du serveur web. 2: Rediriger - Faites en sorte que toutes les demandes redirigent vers un accès HTTPS sécurisé. Choisissez cela pour les nouveaux sites, ou si vous êtes sûr que votre site fonctionne sur HTTPS. Vous pouvez annuler ce changement en modifiant la configuration de votre serveur web. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Sélectionnez le numéro approprié [1-2] puis [entrer] (appuyez sur 'c' pour annuler): 2
- (Y)es/(N)o: N
Une fois le processus de déploiement réussi, vous verrez une sortie similaire à celle ci-dessous.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Félicitations ! Vous avez activé avec succès https://uptime.example.net
Vous devriez tester votre configuration à :
https://www.ssllabs.com/ssltest/analyze.html?d=uptime.example.net
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NOTES IMPORTANTES :
- Félicitations ! Votre certificat et votre chaîne ont été enregistrés à :
/etc/letsencrypt/live/uptime.example.net/fullchain.pem
Votre fichier clé a été enregistré à :
/etc/letsencrypt/live/uptime.example.net/privkey.pem
Votre certificat expirera le 2021-10-10. Pour obtenir une nouvelle version ou une version modifiée
de ce certificat à l'avenir, exécutez simplement certbot à nouveau
avec l'option "certonly". Pour renouveler *tous* vos certificats de manière non interactive, exécutez "certbot renew"
- Vos informations d'identification de compte ont été enregistrées dans votre répertoire de configuration Certbot à /etc/letsencrypt. Vous devriez faire une
sauvegarde sécurisée de ce dossier maintenant. Ce répertoire de configuration contiendra également des certificats et des clés privées obtenus par Certbot, donc
faire des sauvegardes régulières de ce dossier est idéal.
- Si vous aimez Certbot, veuillez envisager de soutenir notre travail en :
Faisant un don à ISRG / Let's Encrypt : https://letsencrypt.org/donate
Faisant un don à l'EFF : https://eff.org/donate-le
- Nous n'avons pas pu vous abonner à la liste de diffusion de l'EFF car votre
adresse e-mail semble invalide. Vous pouvez réessayer plus tard en
visitant https://act.eff.org.Vérifier l’installation d’Uptime-Kuma
- Ouvrez votre navigateur web et tapez l’URL d’installation d’Uptime-Kuma dans la barre d’adresse.
Vous serez redirigé vers la connexion sécurisée HTTPS.
- Créez un nouvel utilisateur administrateur pour Uptime-kuma sur la première page. Tapez votre utilisateur administrateur et votre mot de passe, puis cliquez sur le bouton “ Créer “.

- Après cela, connectez-vous avec votre nouveau nom d’utilisateur et mot de passe, puis cliquez sur le bouton “ Connexion “.

Maintenant, vous verrez le tableau de bord d’uptime-kuma.
- Pour ajouter un nouvel hôte à la surveillance, cliquez sur le bouton “ Ajouter un nouveau moniteur “.

- Pour cet exemple, vous allez surveiller le site web, donc choisissez le “ Type de moniteur “ comme “ HTTP(s) “, tapez l’adresse URL du site web, cliquez sur le “ Configurer la notification “ pour le support de notification, puis cliquez sur le bouton “ Enregistrer “ en bas de la page.

- Vous serez redirigé vers le tableau de bord uptime-Kuma et verrez votre hôte sur la page du tableau de bord.

Voici un autre exemple après avoir ajouté le nouveau type “ TCP/IP “ avec des ports fermés, et le résultat est “ ENCONNREFUSED “ ou erreur de connexion car le port est refusé/fermé.

Conclusion
Félicitations ! Vous avez installé avec succès Uptime-Kuma avec le serveur web Apache comme proxy inverse et sécurisé le déploiement d’Uptime-Kuma avec SSL Letsencrypt. Pour la prochaine phase, vous pouvez ajouter vos hôtes et activer la notification pour tout incident de panne.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.