6cd910dbc0
- mqtt.rs : publication résumé scan sur sentinelmesh/<host>/network/scan - Config MQTT dans les deux agents (enabled: false par défaut) - ROADMAP Phase 6 complète : SSE, historique, Prometheus, MQTT ✅ Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3.3 KiB
3.3 KiB
Roadmap SentinelMesh
Phase 1 — Architecture & Backend ✅
- Structure du dépôt
- Workspace Cargo
- Backend Axum skeleton
- Base SQLite + migrations (agents, devices, metrics, events)
- Endpoints API v1 complets (/agents, /network, /metrics, /events, /widgets)
- Spec OpenAPI générée sur /api-docs/openapi.json
Phase 2 — Découverte réseau ✅
agent-scan-networkMVP : ping sweep TCP, ARP (/proc/net/arp), OUI- Détection services par scan de ports TCP (SSH, HTTP, HTTPS, SMB, MQTT, Docker, Proxmox, HA…)
- API JSON locale de l'agent (GET /devices)
- Push vers le backend (/api/v1/network)
- Enregistrement automatique de l'agent au démarrage
- Subnet configuré : 10.0.0.0/22
widget-network-scanGlance (tuile + popup) — reporté Phase 4- Résolution DNS inverse (PTR) — Phase 2+
Phase 3 — Métriques système ✅
agent-metric: CPU/RAM/réseau/charge (1s via sysinfo)agent-metric: disques, températures hwmon, SMART smartctl (30min)agent-metric: DMI/hardware/BIOS depuis /sys (boot + toutes les 30min)- Événement boot envoyé au démarrage
- API locale sur :9101 (GET /metrics)
- Push vers /api/v1/metrics et /api/v1/events
widget-agent-metricsGlance — Phase 4
Phase 4 — Widgets Glance ✅
widget-network-scan: liste équipements (état, IP, hostname, vendor, services, tri online/offline)widget-agent-metrics: barres CPU/RAM/disque/température par agent, code couleur (ok/warn/crit)- CSS custom (
sentinelmesh.css) : badges, barres de progression, points de statut - Page Glance exemple complète (
glance-page-example.yaml) - Backend widgets enrichi : mac, ports, offline count, net_rx/tx_bps
- Popups détaillés — nécessite widget
extension(serveur HTTP séparé) — Phase 4+ - Icônes locales par type d'équipement — Phase 4+
- Favoris / personnalisation par équipement — Phase 4+
Phase 5 — Déploiement & Distribution ✅
install/install.sh: script complet (détection arch, téléchargement, config, systemd, enregistrement)install/uninstall.sh: désinstallation propre- Docker Compose production (healthcheck, réseau, volumes nommés)
docker-compose.dev.yml: profil développement- Dockerfiles agents multi-arch (amd64, arm64, armv7 Raspberry Pi)
.gitea/workflows/ci.yaml: check + clippy + fmt + tests sur push/PR.gitea/workflows/release.yaml: build multi-arch + release Gitea sur tag v*
Phase 6 — Extensions ✅
- SSE (Server-Sent Events) : GET /api/v1/stream — events
metricsetnetworken temps réel - Historique métriques : GET /api/v1/history/{agent_id}?hours=N, rétention 7 jours
- Prometheus : GET /metrics — format text/plain, compatible Grafana/Prometheus
- MQTT agent-metric : publication realtime/medium/events (rumqttc, QoS 0/1)
- MQTT agent-scan-network : publication résumé scan réseau
- Topics MQTT : sentinelmesh//metrics/realtime|medium et network/scan
- Home Assistant integration via MQTT discovery — futur
- PostgreSQL — futur (SQLite suffisant en homelab)
- WebSocket bidirectionnel — futur
- InfluxDB / Grafana direct — Prometheus couvre le besoin via scraping