Installer Tianji avec Docker
Tianji

Installer Tianji avec Docker

Table des matières

GitHub - msgbyte/tianji: Tianji: Insight into everything, Website Analytics + Uptime Monitor + Server Status. not only another GA alternatives
Tianji: Insight into everything, Website Analytics + Uptime Monitor + Server Status. not only another GA alternatives - msgbyte/tianji

Je voulais vous partager cette petite trouvaille qui pourrait vous intéresser si vous souhaitez centraliser plusieurs outils, tels que l'analyse d'un site web (nombre de visiteurs, pages vues, etc.), le monitoring d'applications, une page de statut, la surveillance de vos serveurs, pour n'en citer que quelques-uns.

Aujourd'hui, nous allons parler de Tianji ! Ce puissant couteau suisse m'a vraiment bluffé par sa simplicité d'utilisation et par la qualité des informations collectées, à tous points de vue. Voyons ça ensemble!

Je ne vais pas aborder tous les outils disponibles mais la plus grande partie.
💡
Il est vivement conseillé de relier Tianji à un domaine/sous-domaine pour une utilisation optimale.

⚡ Caractéristiques

  • Analyse de site Web.
  • Moniteur de disponibilité.
  • État du serveur.
  • Statut du menu fixe.
  • Page d'état.
  • Télémétrie.
  • Enquête.
  • Flux.
  • Pas de suivi des cookies.
  • Conforme au RGPD et au CCPA.
  • Open source.
  • Disponible également en français.

💾 L'installation

  1. Créez votre compose.yml dans le dossier ou vous comptez installer Tianji:
sudo nano compose.yml
  1. Et collez ça dedans:
version: '3'
services:
  tianji:
    image: moonrailgun/tianji
    build:
      context: ./
      dockerfile: ./Dockerfile
    ports:
      - "12345:12345"
    environment:
      DATABASE_URL: postgresql://tianji:tianji@postgres:5432/tianji
      JWT_SECRET: remplace-moi-par-une-chaîne-aléatoire
      ALLOW_REGISTER: "false"
      ALLOW_OPENAPI: "true"
    depends_on:
      - postgres
    restart: always
  postgres:
    image: postgres:15.4-alpine
    environment:
      POSTGRES_DB: tianji
      POSTGRES_USER: tianji
      POSTGRES_PASSWORD: tianji
    volumes:
      - tianji-db-data:/var/lib/postgresql/data
    restart: always
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
      interval: 5s
      timeout: 5s
      retries: 5
volumes:
  tianji-db-data:

Veillez à changer:

  • JWT_SECRET: remplace-moi-par-une-chaîne-aléatoire => Remplacez remplace-moi-par-une-chaîne-aléatoire par une phrase de passe à vous. Vous pouvez en générer une ici.
  • ALLOW_REGISTER: "false" => De base il est impossible d'enregistrer de nouveaux utilisateurs, si vous voulez permettre la création de nouveaux utilisateurs, remplacez false par true: "true".
  1. On va déployer l'application:
docker compose up -d
  1. Rendez-vous sur le domaine relié à Tianji:
https://tianji.mondomaine.com

👤 Se connecter avec le compte administrateur par défaut

Lorsque vous lancez pour la première fois Tianji, il faudra se connecter avec le compte administrateur par défaut:

  • Nom d'utilisateur => admin
  • Mot de passe => admin

Cliquez sur Connexion pour terminer, vous serez redirigé vers votre tableau de bord.


🔒 Changer le mot de passe du compte administrateur par défaut

Cliquez en bas à gauche sur les trois petits points verticaux et choisissez Profil:

Cliquez ensuite sur Changer le mot de passe:

Complétez le formulaire suivant:

  • Ancien mot de passe => admin
  • Nouveau mot de passe => Choisissez un mot de passe fort.
  • Répéter le nouveau mot de passe => Confirmez le nouveau mot de passe choisi.

Cliquez sur Soumettre, vous serez redirigé vers la page de connexion pour vous connecter avec votre nouveau mot de passe:


📊 Commencer l'analyse de son site Web

Je vais prendre en exemple belginux.

Cliquez sur Site web dans le menu de gauche:

Ensuite, cliquez sur +:

Remplissez le formulaire suivant:

  • Nom du site Web => Nommez le site Web que vous désirez ajouter.
  • Domaine => Indiquez le domaine et uniquement le domaine.µ

Cliquez sur Créer, ce qui donne:

Bien entendu à ce stade, mon instance Tianji ne peut recevoir aucune information provenant de belginux. Pour que cela fonctionne, il faut cliquer sur Code en haut à droite:

Placez ce code dans les balises <head> … </head> de votre site Web. Si vous utilisez Ghost CMS, il faut se rendre dans Code injection et ensuite dans Site header et coller votre code.

Après quelques secondes vous pouvez voir apparaître les premières informations:


🐋 Ajouter un service en monitoring

Cliquez sur Moniteur dans le menu de gauche:

Cliquez sur + Ajouter:

Tant qu'à faire je vais commencer par ajouter le site belginux en remplissant le formulaire:

  • Type de moniteur => Vous avez plusieurs options: Ping, TCP Port, DNS, HTTP, OpenAI ou personnalisé.
  • Nom => Nommez le service ou le site à monitorer.
  • Intervalle de vérification => C'est l'intervalle en secondes entre deux ping.
  • Nombre maximum de tentatives => Nombre de tentatives avant que le service ne soit déclaré comme en panne.
  • Hôte => Indiquez un domaine (sans HTTP/HTTPS) ou une ip.
  • Mode tendance => L'axe Y ne commence pas à zéro.
  • Notification => Choisissez le type de notification: Email(SMTP), Apprise, Telegram, Webhook.

Cliquez sur Créer pour terminer, ce qui donne:

Avec plusieurs services:


🔔 Configurer les notifications

Cliquez en bas à gauche sur les trois points verticaux et choisissez Notifications:

Cliquez sur + Nouveau:

Par e-mail

Si vous avez votre propre service mail, vous avez les informations nécessaires à entrer ci-dessous.

Mais vous pouvez également utiliser les serveurs mail de Google, Outlook, Infomaniak,.. Jetez un œil ici pour avoir les paramètres nécessaires:

Configurer le SMTP pour envoyer un mail avec une application Docker
Tutoriel pour configurer le SMTP afin d’envoyer un mail à partir de vos applications self-hosted.

Remplissez le formulaire:

  • Type de notification => Dans notre exemple, par Email(SMTP).
  • Nom d'affichage => Choisissez un nom d'affichage qui apparaîtra dans l'en-tête de l'e-mail.
  • Hôte => Indiquez le nom du serveur SMTP.
  • Port => Indiquez le port.
  • Sécurité => Choisissez la sécurité en fonction des informations de votre serveur mail.
  • Nom d'utilisateur => L'adresse e-mail avec laquelle vous allez envoyer les notifications.
  • Mot de passe => Le mot de passe de l'adresse e-mail.
  • De l'email => L'adresse e-mail avec laquelle vous allez envoyer les notifications.
  • À l'email => Indiquez l'adresse e-mail à laquelle la notification doit-être envoyé.

Cliquez sur Test pour vous assurer que c'est fonctionnel:

Du côté de ma boîte mail:

Gotify

Ce n'est pas directement une intégration de Gotify mais on va utiliser le système Apprise qui est vraiment fabuleux et compatible avec énormément de services:

GitHub - caronc/apprise: Apprise - Push Notifications that work with just about every platform!
Apprise - Push Notifications that work with just about every platform! - caronc/apprise

Il existe un tutoriel si vous n'aviez pas encore Gotify ou si vous ne savez pas comment le configurer:

Installer Gotify avec Docker
Tutoriel d’installation de Gotify, un serveur simple pour envoyer et recevoir messages.

Créez un token pour l'application Tianji, par exemple:

Récupérez le token, ici: AfNdy_Z8Tl.zCI-

Maintenant, il va falloir créer un lien de cette manière:

gotifys://{hostname}/{token} => hostname est le domaine de Gotify, sans HTTPS, ou l'ip:port, suivi d'un slash et du token.

gotifys://notif.mondomaine.com/AfNdy_Z8Tl.zCI-

Remplissez maintenant le formulaire:

  • Type de notification => Apprise.
  • Nom d'affichage => Nommez la notification.
  • URL Apprise => Collez l'URL crée précédemment.

Après avoir cliqué sur Test, Gotify me notifie bel et bien:

Terminez en cliquant sur Sauvegarder.

⚠️ Si vous n'avez pas de domaine pour Gotify ou pas de HTTPS, il faudra vous baser sur cette url, ce n'est pas sécurisé donc déconseillé:

gotify://{hostname}/{token}

Vous pouvez maintenant éditer un service pour lui adjoindre un système de notification:

Dans Moniteur, éditez le service:

Choisissez le service de notification souhaité et cliquez sur Sauvegarder:


🚦Créer une page de statut

Il est possible de créer une page de statut afin de rendre la lecture de la disponibilité des services plus claire ou de la partager.

Cliquez sur Pages dans le menu de gauche:

Ensuite sur

Remplissez la première partie comme ceci:

  • Titre => Nommez votre page.
  • Slug => Ajoutez un slug, dans mon cas, applications.

Dans la partie Corps, cliquez sur Ajouter un groupe:

Ensuite, cliquez sur +:

Sélectionnez le service que vous voulez afficher avec Sélectionner un moniteur:

Répétez l'opération pour chaque service que vous voulez ajouter:

Cliquez sur Next quand vous avez terminé, ce qui donne:

Maintenant il ne reste plus qu'à vous rendre sur la page https://tianji.mondomaine.com/status/slug, suivant le slug choisi:


🖥️ Surveiller l'état d'un serveur

Une option bien pratique pour surveiller l'état global d'un serveur! Rapide et facile à mettre en place, vous allez voir, c'est bien foutu!

Cliquez dans le menu de gauche sur Serveurs:

Cliquez sur + Ajouter:

Une fenêtre va apparaître avec un commande à exécuter sur le serveur à surveiller:

💡
Vous pouvez également sélectionner Désinstaller si vous ne souhaitez plus le service, vous aurez la commande nécessaire à coller.

Ce qui donne:

Il faut parfois un tout petit peu de temps pour que le serveur apparaisse.

Du côté de Tianji:

  • De manière compacte
  • Quand on développe le tout
💡
Il est impératif que les serveurs soient à l'heure exacte, sans quoi Tianji pourrait indiquer que le serveur est hors ligne. Si cela se produit, un simple appui sur F5 rafraîchira les données et pourra afficher l'état exact.

zarev

->.<-
🐧 Passionné de self-hosting, je partage ce que je connais et me nourris des connaissances des bonnes âmes qui partagent avec moi. Soutenons l'utilisation des apps open source et leurs développeurs.

Vous pourriez aussi aimer