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.
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
| Couche | Choix |
|---|---|
| API | AdonisJS v6, TypeScript, Lucid |
| Base | PostgreSQL 17 |
| Interface | Vue 3, Vite, Pinia, TypeScript |
| Déploiement | Docker 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