Aller au contenu
Tous les projets
2026·Conception et développement full-stackEn production

Vigie

Supervision unifiée de mes projets web — analytique sans cookies, monitoring de disponibilité, suivi des tâches planifiées et page de statut publique.

AdonisJSVue 3TypeScriptPostgreSQLRedisDocker

En bref

  • Multi-projets avec isolation stricte des données par clé API
  • Analytique de visite sans cookie, donc sans bandeau de consentement
  • Alertes et page de statut publique générée automatiquement

Le problème

J'avais une dizaine de projets en ligne et aucune vision d'ensemble : est-ce que le cron de la nuit est passé ? Est-ce que l'API répond encore ? Combien de visiteurs cette semaine ? Chaque réponse demandait de se connecter à un serveur différent.

Brancher un service tiers par projet aurait multiplié les comptes, les coûts et les bandeaux de cookies. J'ai préféré construire l'outil unique qui me manquait.

Ce que fait Vigie

  • Analytique de visite sans cookie ni identifiant persistant — aucun bandeau de consentement nécessaire
  • Surveillance de disponibilité : sondes HTTP régulières avec historique et calcul d'uptime
  • Supervision des tâches planifiées : un cron qui ne s'est pas signalé dans sa fenêtre déclenche une alerte
  • Suivi des erreurs applicatives remontées par les projets branchés
  • Page de statut publique, alimentée par les mêmes données que le tableau de bord interne

Chaque projet supervisé possède sa clé API, et ne voit jamais les données des autres.

Architecture

CoucheChoix
APIAdonisJS v6, TypeScript, Lucid
BasePostgreSQL 17
InterfaceVue 3, Vite, Pinia, TypeScript
DéploiementDocker Compose sur VPS, Caddy en frontal, GitHub Actions sur main

Tout tourne en conteneurs — postgres, redis, api, worker, web — sans aucun Node requis sur la machine hôte. Le worker traite les sondes et les agrégations hors du cycle de requête, ce qui garde l'API réactive quel que soit le nombre de projets supervisés.

Ce que j'en retire

Le point dur n'était pas la collecte mais la rétention : conserver des années de points de mesure sans faire exploser la base. La réponse a été l'agrégation progressive — les données fines vieillissent en moyennes horaires, puis journalières.

Projet suivant

Pyro Radar