v0.40.1 · open source · auto-hébergé

Supervision de serveurs auto-hébergée, déployée en quelques minutes.

Un Hub unique, un agent léger par hôte. Métriques en direct toutes les 30 secondes, inventaire des paquets mis à jour quotidiennement, alertes sur seuils par email ou webhook.

Métriques en direct

Utilisation CPU

34.2%

Utilisation mémoire

6.1 GB

Disque I/O

R: 4.8 MB/s / W: 1.2 MB/s

Réseau

↓ 1.4 MB/s / ↑ 0.6 MB/s
Aperçu du tableau de bord
Watchflare dashboard with real-time host metrics, package inventory and alerts Watchflare dashboard with real-time host metrics, package inventory and alerts
Fonctionnalités

Tout ce qu'il faut pour garder un œil sur vos serveurs.

Métriques en direct, télémétrie conteneurs, inventaire des paquets et alertes sur seuils. Collectés toutes les 30 secondes par un agent léger et centralisés dans un seul Hub.

Streaming temps réel

CPU, mémoire, disque, réseau, charge moyenne, température, I/O disque, swap. SSE côté Hub, gRPC côté agent. Mises à jour en direct, sans polling côté client.

sse · grpc · 30s interval

Métriques conteneurs

CPU, mémoire et réseau par conteneur via l'API Docker ou Podman. Activable par une option à l'installation, rien à ajouter dans vos conteneurs.

docker · podman · per-container

Inventaire des paquets

~30 gestionnaires de paquets scannés chaque jour. Changements tracés par hôte et mises à jour (sécurité comprise) signalées sur les gestionnaires compatibles.

apt · dnf · brew · pip · npm · et d'autres

Sécurisé par défaut

TLS 1.3 de bout en bout avec CA auto-générée (ou la vôtre), requêtes gRPC avec signatures HMAC-SHA256 et anti-replay, sessions JWT, mots de passe bcrypt.

tls 1.3 · hmac · jwt · bcrypt

Write-ahead log

Hub hors ligne ? L'agent stocke les métriques sur disque et les envoie dans l'ordre à la reconnexion. Aucun trou dans la limite du buffer (10 Mo, configurable).

local wal · replay on reconnect

Alertes & historique

Seuils (CPU, mémoire, disque, charge, température) et détection des hôtes hors ligne. Alertes par email ou webhook, chaque déclenchement et résolution conservé par hôte.

smtp · thresholds · incident timeline
Aperçu

Dans le tableau de bord.

Liste des hôtes Watchflare avec CPU, mémoire, disque, température et compteurs de paquets par hôte Liste des hôtes Watchflare avec CPU, mémoire, disque, température et compteurs de paquets par hôte
Page de détail d'un hôte Watchflare avec graphiques CPU et mémoire en temps réel Page de détail d'un hôte Watchflare avec graphiques CPU et mémoire en temps réel
Vue d'inventaire des paquets Watchflare avec versions, statuts et compteurs de paquets obsolètes/sécurité Vue d'inventaire des paquets Watchflare avec versions, statuts et compteurs de paquets obsolètes/sécurité
Panneau de règles d'alerte Watchflare avec seuils par hôte pour hôte hors ligne, CPU, mémoire et disque Panneau de règles d'alerte Watchflare avec seuils par hôte pour hôte hors ligne, CPU, mémoire et disque
Architecture

Comment tout s'articule.

Hôtes supervisés
linux · systemd prod-web-01 WAL local
macos · homebrew mac-mini WAL local
linux · systemd worker-02 WAL local + métriques conteneurs
gRPC · TLS 1.3 · HMAC
Watchflare Hub
Go binary gRPC SSE SvelteKit
SQL · SSE · HTTP
Stockage et sorties
postgres + extension TimescaleDB hypertables · agrégats continus
navigateur · SSE Tableau de bord web sveltekit · uPlot
outbound Notifications email · webhooks · seuils · hôte hors ligne
Agent
Go · gRPC client · WAL
Un binaire léger non privilégié sur chaque hôte. Collecte les métriques, les met en buffer localement si le Hub est injoignable, les envoie à la reconnexion.
Hub
Go · Gin · gRPC · SvelteKit
Un binaire unique avec le dashboard SvelteKit embarqué via go:embed. Déployé via Docker Compose (ou en binaire standalone).
Database
TimescaleDB
PostgreSQL + extension. Hypertables, compression, agrégats continus pour la rétention long terme.
Security
TLS 1.3 · HMAC · JWT
CA auto-générée (ou la vôtre). Épinglée sur chaque agent à l'inscription. Requêtes gRPC avec signatures HMAC-SHA256 et anti-replay, sessions JWT, mots de passe bcrypt.
Installation

Docker pour le Hub, une commande sur chaque hôte.

Démarrez le Hub avec Docker Compose, puis inscrivez chaque hôte avec un token à usage unique et une commande à copier-coller. Guide complet sur docs.watchflare.io.

# 1. Créer un répertoire de travail et télécharger le compose $ mkdir watchflare && cd watchflare && \ curl -sSLO https://get.watchflare.io/hub/docker-compose.yml # 2. Générer les trois secrets requis # (POSTGRES_PASSWORD, JWT_SECRET, SMTP_ENCRYPTION_KEY) $ printf "POSTGRES_PASSWORD=%s\nJWT_SECRET=%s\nSMTP_ENCRYPTION_KEY=%s\n" \ "$(openssl rand -base64 32)" \ "$(openssl rand -base64 32)" \ "$(openssl rand -base64 32)" > .env # 3. Démarrer le Hub $ docker compose up -d # Ouvrir http://votre-serveur:8080 et créer votre compte administrateur
# Installer et inscrire l'agent (géré par systemd) $ curl -sSL https://get.watchflare.io | sudo bash -s -- \ --token wf_reg_YOUR_TOKEN \ --host YOUR_HUB_IP \ --port 50051 # Vérifier le statut du service $ watchflare-agent status
# Installer et inscrire l'agent via Homebrew (sans sudo) $ curl -sSL https://get.watchflare.io/brew | bash -s -- \ --token wf_reg_YOUR_TOKEN \ --host YOUR_HUB_IP \ --port 50051 # Vérifier le statut du service $ watchflare-agent status
Prérequis
Hub Docker Engine 20.10+ avec Compose v2+ · ports 8080 (Hub) et 50051 (gRPC)
Agent Linux (systemd) ou macOS (Homebrew) · x86_64 et ARM64
FAQ

Questions courantes sur Watchflare.

Watchflare est sous licence AGPL-3.0 et gratuit à auto-héberger. Le Hub tourne dans Docker sur n'importe quelle machine Linux moderne que vous avez déjà. Votre seul coût est le matériel sur lequel il tourne.
Linux (x86_64 et ARM64) sur n'importe quelle distribution moderne avec systemd, et macOS (Intel et Apple Silicon) via Homebrew. Le support Windows est prévu.
L'agent est un petit binaire non privilégié qui collecte les métriques toutes les 30 secondes avec un usage CPU et mémoire minimal. Aucun impact notable sur un Raspberry Pi ou un VPS à 5 €.
L'agent écrit dans un Write-Ahead Log local (10 Mo par défaut, configurable). Quand le Hub revient, toutes les métriques en attente sont envoyées dans l'ordre, sans trou dans la limite du buffer. Les métriques des conteneurs sont ponctuelles et ne sont pas bufferisées.
Toutes les métriques résident dans l'instance PostgreSQL + TimescaleDB embarquée. Par défaut, la base de données tourne sur la même machine que le Hub, dans un volume Docker que vous contrôlez. Vous pouvez aussi pointer le Hub vers une instance externe, à condition qu'elle ait l'extension TimescaleDB installée.
Les issues et les PRs sont ouvertes sur GitHub. Nouveaux collecteurs, portages OS et retours terrain sont particulièrement bienvenus. Voir CONTRIBUTING.md pour commencer.

Supervisez vos serveurs, simplement.

Open source, auto-hébergé, prêt à déployer.