Installer Uptime Kuma sur un cloud Hetzner

hetzner+uptime-kuma.png

Pour installer l'outil de surveillance Uptime Kuma, vous devez au préalable vous créer un compte Hetzner et posséder un nom de domaine. Ces deux critères réunis, let's go.

Créer un projet

  • Connectez-vous au service Hetzner Cloud.

  • Créer votre projet si ce n'est déjà fait. Un projet regroupe un ensemble de serveurs.

Ajouter une clé SSH

Si vous éprouvez des difficultés avec les clés SSH sur Hetzner, peut-être bien que cet article pourrait vous aider : Se connecter en SSH sur un server cloud Hetzner.

Ajouter un serveur

  • Ajouter un nouveau serveur à votre projet. Préférez un emplacement européen, sélectionner l'OS images > Ubuntu 22.04.

  • Sélectionner le type de serveur que vous désirez en fonction de votre budget et de la puissance que vous désirez.

  • La clé SSH que vous avez renseigné précédemment devrait être sélectionné par défaut.

  • Nommer et créer votre nouveau serveur.

Mettre à jour votre serveur

  • Récupérer l'adresse IP de votre serveur sur votre interface Hetzner.

  • Ouvrir un terminal (invite de commandes) et connecter en SSH à votre serveur :

ssh root@ipduserveur
  • Mettre à jour tous les versions de packages du serveur :
apt update
  • Télécharger et installer les nouvelles versions :
apt upgrade

Installer NodeJS et NPM

  • Télécharger la version LTS :
curl -sL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
  • Mettre à jour l'information du paquet
apt update
  • Installer les paquets
apt install nodejs
  • Vérifier qu'ils sont installés en affichant leurs versions :
node -v; npm -v

Installer Uptime Kuma

  • Créer un utilisateur System (nommer le comme vous voulez en place de master) avec son mot de passe :
adduser master
  • Ajouter l'utilisateur au sudo group
usermod -aG sudo master
  • Se connecter avec celui-ci
su - master
  • Créer un dossier uptime-kuma
mkdir uptime-kuma
  • Ouvrir ce dossier
cd uptime-kuma
  • Installer Git si celui-ci n'est pas installé :
sudo apt install git
  • Cloner le dépôt d'Uptime Kuma
git clone https://github.com/louislam/uptime-kuma.git .

Noter le point à la fin de la commande pour éviter de recréer un dossier uptime-kume ;)

  • Lancer l'installation :
npm run setup

Initialiser PM2

  • Installer PM2 globalement en root donc le mot de passe sera requit :
sudo npm install pm2 -g
  • Tester s'il est bien installé :
pm2 -v

Vous devriez avoir un beau logo et un numéro de version.

  • Démarrer Uptime Kuma avec PM2 :
pm2 start server/server.js --name kuma
  • Pour redémarrer Uptime Kuma au besoin :
pm2 restart kuma
  • Pour consulter en live les logs de Uptime Kuma :
pm2 logs kuma

Initialiser NGINX

  • Installer NGINX en mode root
sudo apt install nginx
  • Vérifier si NGINX s'est bien lancé après l'installation :
sudo systemctl status nginx
  • Créer le fichier de configuration NGINX de votre Uptime Kuma (en remplaçant yourdomain par votre nom de domaine)
sudo nano /etc/nginx/sites-enabled/status.yourdomain.com.conf
  • Copier la configuration suivante :
server {

listen 80;
server_name status.yourdomain.com;
location / {
    proxy_pass http://localhost:3001;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    }

location ~ /.well-known {
    alias /var/www/html;
    }
}
  • Sauvegarder et vérifier s'il n'y a pas d'erreurs :
sudo nginx -t
  • Redémarrer NGINX
sudo systemctl restart nginx

Installer le certificat SSL

  • Toujours en root, exécuter la commande suivante :
sudo apt install python3-certbot-nginx -y
  • Certifier votre domaine que vous avez bien-sûr au préalable fait pointer sur votre serveur :
sudo certbot certonly -d status.yourdomain.com
  • Première question, sélectionner 1 pour NGINX

  • Deuxième question, saisir votre e-mail sur lequel vous allez recevoir vos notifications Let’s Encrypt

  • Troisième question, saisir y pour accepter les conditions générales

  • Quatrième question, saisir n pour ne pas recevoir la newsletter de Let’s Encrypt. Sauf si vous le souhaitez

  • Votre certificat a été généré avec succès.

  • Copier / coller les lignes suivantes :

Certificate is saved at: /etc/letsencrypt/live/status.yourdomain.com/fullchain.pem
Key is saved at: /etc/letsencrypt/live/status.yourdomain.com/privkey.pem
  • Ouvrir de nouveau la configuration de NGINX :
sudo nano /etc/nginx/sites-enabled/status.yourdomain.com.conf
  • Modifier comme suit :
server {
    listen 443 ssl http2;
    server_name status.yourdomain.com;
    ssl_certificate /etc/letsencrypt/live/status.yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/status.yourdomain.com/privkey.pem;

location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
    proxy_pass http://localhost:3001/;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    }
}

server {
    listen 80;
    server_name status.yourdomain.com;
    return 301 https://status.yourdomain.com$request_uri;
}
  • Sauvegarder et vérifier s'il n'y a pas d'erreurs :
sudo nginx -t
  • Redémarrer NGINX
sudo systemctl restart nginx

Vous devriez pourvoir accéder à votre uptime kuma : https://status.yourdomain.com, redirection vers https comprise ;)

  • Suivre l'assistant

Mettre à jour Uptime Kuma

  • Se connecter à votre user System
su - master
  • Ouvrir le dossier
cd  uptime-kuma
  • Récupérer la dernière version à partir du dépôt Git (remplacer avec la bonne version)

Dépôt Git : https://github.com/louislam/uptime-kuma

Vous pouvez voir la dernière version également après le fetch.

git fetch --all
git checkout 1.23.6 --force
  • Installer les dépendances
npm install --production
npm run download-dist
  • Redémarrer Uptime Kuma
pm2 restart kuma

enjoy ^^