Outil de monitoring d’uptime conçu pour répondre à un besoin concret : surveiller mes propres services auto-hébergés sans dépendre d’un SaaS payant. Il est depuis devenu collaboratif, avec des équipes, des alertes ciblées et une page de statut publique.
Surveillance
- Trois types de moniteurs, HTTP, ping et port, avec code de statut attendu, mot-clé présent ou absent, seuil de latence et intervalle de vérification propre à chaque moniteur (10 min par défaut).
- Expiration SSL, suivie avec des alertes à J-30, J-14, J-7 et J-1.
- Disponibilité et SLA, pourcentage d’uptime sur 24 h, 7, 30 et 90 jours sur chaque carte, et rapport SLA mensuel.
- Historique, latence et résultats des vérifications sur 7 jours glissants, avec une fenêtre d’affichage réglable par moniteur.
Alertes et incidents
- Alertes par email et webhook (Discord, Slack, ntfy), sur panne après deux échecs consécutifs pour éviter les fausses alertes, sur rétablissement, sur latence élevée et sur expiration SSL.
- Destinataires ciblés, par moniteur et par groupe ; sans destinataire configuré, les administrateurs de l’équipe sont prévenus, aucune alerte ne se perd.
- Journal d’incidents, ouverture et fermeture automatiques, acquittement et note de post-mortem.
- Maintenance planifiée, des fenêtres qui coupent alertes et ouvertures d’incident pendant que les vérifications continuent.
Équipes et partage
- Équipes et rôles, chaque moniteur appartient à une équipe, avec trois rôles : administrateur, membre et lecture seule.
- Groupes et environnements, tableau de bord groupé et repliable, recherche, tri, étiquette prod, staging ou dev.
- Page de statut publique et badge d’uptime à intégrer, qui n’affichent que les moniteurs marqués publics.
- Jetons d’API en lecture seule, pour interroger les données depuis Grafana ou un script.
Connexion et pilotage par l’IA
- SSO GotYeah, la connexion passe par le compte unique GotYeah (OpenID Connect), commun à mes autres outils ; un mode « GotYeah uniquement » masque l’ancien formulaire.
- Pilotage MCP depuis Claude, via le hub MCP commun à mes outils : lister les équipes, consulter, créer, modifier et supprimer moniteurs et groupes, avec les mêmes droits que dans l’interface.
Architecture
- Stack séparée, API FastAPI + frontend SvelteKit, avec environnements dev et prod distincts.
- Auto-surveillance, la boucle de vérification expose son propre état de santé et redémarre si elle s’arrête.
- CI/CD GitHub Actions, contrôles et mise en production automatiques.
Uptime monitoring tool built to address a concrete need: keeping an eye on my own self-hosted services without relying on a paid SaaS. It has since become collaborative, with teams, targeted alerts and a public status page.
Monitoring
- Three monitor types, HTTP, ping and port, with expected status code, keyword present or absent, latency threshold and a check interval set per monitor (10 min by default).
- SSL expiry, tracked with alerts 30, 14, 7 and 1 day before.
- Availability and SLA, uptime percentage over 24 h, 7, 30 and 90 days on every card, plus a monthly SLA report.
- History, latency and check results over a rolling 7-day window, with a display window set per monitor.
Alerts and incidents
- Email and webhook alerts (Discord, Slack, ntfy), on outage after two consecutive failures to avoid false alarms, on recovery, on high latency and on SSL expiry.
- Targeted recipients, per monitor and per group; with no recipient configured, the team’s admins are notified, so no alert gets lost.
- Incident log, opened and closed automatically, with acknowledgement and a post-mortem note.
- Scheduled maintenance, windows that mute alerts and incident creation while checks keep running.
Teams and sharing
- Teams and roles, every monitor belongs to a team, with three roles: admin, member and read-only.
- Groups and environments, grouped, collapsible dashboard, search, sorting, prod, staging or dev label.
- Public status page and embeddable uptime badge, showing only the monitors marked public.
- Read-only API tokens, to query the data from Grafana or a script.
Sign-in and AI control
- GotYeah SSO, sign-in goes through the single GotYeah account (OpenID Connect), shared with my other tools; a “GotYeah only” mode hides the old form.
- MCP control from Claude, through the MCP hub shared by my tools: list teams, view, create, update and delete monitors and groups, with the same permissions as in the interface.
Architecture
- Separate stack, FastAPI API + SvelteKit frontend, with distinct dev and prod environments.
- Self-monitoring, the check loop exposes its own health status and restarts if it stops.
- GitHub Actions CI/CD, automated checks and releases.