Merci à Komi pour avoir suggéré l'idée. 👍
Connaître l'état de ses services est presque une impérative, si en plus vous partagez certaines applications avec vos amis, votre famille, votre hamster, il est toujours bon d'être averti en cas de pépin.
Aujourd'hui nous allons parler de Lunalytics ! Un superbe outil de monitoring de vos services et applications qui vaut le coup d’œil, il semble vraiment prometteur !
En effet, même s'il est jeune, mais développée depuis un an et demi, il est déjà bien foutu, et d'après les premiers retours, il est très précis, sans parler de sa configuration aisée et poussée. Bien entendu il manque encore quelques options mais les dev y travaillent activement, voici la roadmap :
Intéressé ? Continuez la lecture.
Rien à foutre ? Continuez quant même la lecture, on ne sait jamais !

⚡ Caractéristiques
- Facile à auto-héberger.
- Surveiller le temps de fonctionnement pour HTTP(s)/TCP.
- Prise en charge de plusieurs utilisateurs.
- Pages d'état/de tableau de bord entièrement personnalisables.
- Contrôle d'accès basé sur les rôles.
- UX/UI propre et facile à utiliser.
- Profils/thèmes/couleurs d'utilisateurs personnalisables.
- Prise en charge des notifications : Discord, Slack, Telegram, Webhook.
💾 Installation
Prérequis
Avant de commencer, assurez-vous d’avoir :
Étapes d'Installation
- Créez votre compose.yml dans le dossier ou vous comptez installer Lunalytics :
nano compose.yml
- Et collez ça dedans :
services:
lunalytics:
image: ksjaay/lunalytics:latest
container_name: lunalytics
restart: unless-stopped
ports:
- '2308:2308'
volumes:
- ./data:/app/data
- ./logs:/app/logs
- - '2308:2308' => Vous pouvez éventuellement modifier le port, le premier.
- On va déployer l'application :
docker compose up -d
- Rendez-vous sur l'ip:port, suivant l'IP de votre serveur local et du port choisi, 2308 par défaut :
http://ip:2308/
ou votre domaine :
https://lunalytics.mondomaine.com
⬇️ Terminer l'installation
Lors du premier lancement de votre instance, il vous sera demandé de compléter quelques informations.
Création du compte administrateur

- 1 => Indiquez une adresse mail.
- 2 => Choisissez un pseudo.
- 3 => Cliquez sur Continue.
Maintenant, configurons le mot de passe de votre compte administrateur :

- 1 => Choisissez un mot de passe fort.
- 2 => Confirmez le mot de passe.
- 3 => Cliquez sur Continue.
Choix de la base de données

- 1 => Pour un homelab, la première option est largement suffisante.
- 2 => Si vous avez besoin d'une solide base de données.
Après avoir cliqué sur Basic Setup, vous allez être redirigés sur le tableau de bord :

🚦 Ajouter une sonde
Maintenant on va commencer par ajouter la première sonde.

Rendez-vous sur le tableau de bord :

- 1 => Cliquez sur la maison.
- 2 => Cliquez sur + New.
Remplissez les informations de base :

- 1 => Nommez l'application ou le service.
- 2 => HTTP dans la majorité des cas.
- 3 => Indiquez l'ip:port ou l'URL. Au choix.
- 4 => GET dans la majorité des cas.
- 5 => Terminez en cliquant sur Create.
Le service a bien été ajouté :

Vous pouvez changer l'apparence simplement en cliquant sur Layout en haut à droite.
Card

List

Compact

🔔 Notifications
Lunalytics propose pour l'instant 4 systèmes :
- Discord
- Slack
- Telegram
- Webhook
Pour l'exemple on va choisir Discord, parce qu'il est populaire et non parce que c'est l'idéal. Créez votre webhook sur Discord et conservez bien le lien.
Cliquez sur la cloche, non pas moi, sur le tableau de bord !

Cliquez sur + New :

Remplissez les informations demandées :

- 1 => Choisissez Discord.
- 2 => Donnez lui un petit nom.
- 3 => Collez votre URL précédemment obtenue en créant votre webhook sur Discord.
- 4 => Nommez votre webhook.
- 5 => Choisissez le message et à quel groupe il doit-être envoyé.
- 6 => Basic ou une autre, peut importe. Cela changera simplement la gueule de la notification et les infos, de détaillées à fort détaillées. Vous pouvez faire parler la notification dans la langue que vous voulez, il suffit d’éditer le bloc en dessous :

N'oubliez pas de cliquez sur Create pour terminer :

Exemples de notifications


Nous avions créé une sonde pour Immich, je vais retourner dessus et l'éditer afin de lui indiquer qu'il peut envoyer les notifications sur Discord :

N'oubliez pas de valider avec Update :

🚥 Page de statut
On va maintenant créer une page de statut. Cliquez sur l'icône Status :

Cliquez en haut à droite sur + New :

La page est ultra paramétrable, prenez votre temps pour la configurer à votre manière :

La partie déterminante pour son fonctionnement se trouve sous l'onglet Settings :

- 1 => Indiquez default.
- 2 => Nommez votre page.
- 3 => URL où l'utilisateur sera redirigé lorsqu'il cliquera sur le logo ou le titre.
- 4 => Rendre publique ou non la page.
- 5 => Cacher ou non les sondes en pause.
La partie Layout pourra vous faire perdre beaucoup de temps pour la configurer tellement c'est complet :

Cela dit, il y a une chose qui est obligatoire de configurer pour que ça fonctionne bien, ajouter les services souhaités, cliquez sur Select a monitor et ajoutez les services ou vous pouvez très bien cliquez Add all monitors afin d'ajouter toutes les sondes, c'est vous qui voyez :

Et enfin, dans la partie Preview, vous pourrez juger si le résultat vous convient :

Si tel est le cas, cliquez sur Create :

Pour finir, cliquez sur l'icone de l’œil :

Et...

🔴 Incidents
Lorsqu'un service rencontre un problème, ou au contraire lorsque le souci est résolu, vous pourrez le communiquer. Dans notre exemple on va créer un incident pour Immich qui aurait cessé de fonctionner.
Cliquez sur l'icône des incidents :

Cliquez en haut à droite sur + New :

Complétez les informations suivantes :

- 1 => Donnez un titre à votr incident.
- 2 => Sélectionnez le service impacté.
- 3 => Indiquez un message concernant l'incident.
- 4 => Cliquez sur Create pour terminer.
Voici le résultat sur la page de statut :

🎨 Apparence
Je vous conseille d'aller faire un tour dans la partie apparence, car non seulement vous pourrez configurer son apparence, mais aussi le format des dates et heures et le fuseau horaire.
Cliquez en haut à droite sur votre nom d'utilisateur, ensuite cliquez sur Settings :

Côté gauche, cliquez sur Appearance :

Modifiez selon vos souhaits :

- 1 => Sélectionnez le thème. Lumineux, sombre ou système.
- 2 => Choisissez la couleur des boutons etc.
- 3 => Choisissez le format de l'heure.
- 4 => Choisissez le format de la date.
- 5 => Choisissez le fuseau horaire.
👥 Gestion des utilisateurs
Lorsqu'un utilisateur s'est inscrit sur votre instance, il faudra le valider à la main.
Cliquez en haut à droite sur votre nom d'utilisateur, ensuite cliquez sur Settings :

Rendez-vous dans la partie Manage Team :

Validez en cliquant sur le ✅ ou au contraire, sur la ❌ :

Validez la confirmation :

Vous pouvez maintenant décider du rôle de cet utilisateur en cliquant sur le crayon :

Terminez en cliquant sur Confirm.