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>
66 lines
3.3 KiB
Markdown
66 lines
3.3 KiB
Markdown
# Roadmap SentinelMesh
|
|
|
|
## Phase 1 — Architecture & Backend ✅
|
|
|
|
- [x] Structure du dépôt
|
|
- [x] Workspace Cargo
|
|
- [x] Backend Axum skeleton
|
|
- [x] Base SQLite + migrations (agents, devices, metrics, events)
|
|
- [x] Endpoints API v1 complets (/agents, /network, /metrics, /events, /widgets)
|
|
- [x] Spec OpenAPI générée sur /api-docs/openapi.json
|
|
|
|
## Phase 2 — Découverte réseau ✅
|
|
|
|
- [x] `agent-scan-network` MVP : ping sweep TCP, ARP (/proc/net/arp), OUI
|
|
- [x] Détection services par scan de ports TCP (SSH, HTTP, HTTPS, SMB, MQTT, Docker, Proxmox, HA…)
|
|
- [x] API JSON locale de l'agent (GET /devices)
|
|
- [x] Push vers le backend (/api/v1/network)
|
|
- [x] Enregistrement automatique de l'agent au démarrage
|
|
- [x] Subnet configuré : 10.0.0.0/22
|
|
- [ ] `widget-network-scan` Glance (tuile + popup) — reporté Phase 4
|
|
- [ ] Résolution DNS inverse (PTR) — Phase 2+
|
|
|
|
## Phase 3 — Métriques système ✅
|
|
|
|
- [x] `agent-metric` : CPU/RAM/réseau/charge (1s via sysinfo)
|
|
- [x] `agent-metric` : disques, températures hwmon, SMART smartctl (30min)
|
|
- [x] `agent-metric` : DMI/hardware/BIOS depuis /sys (boot + toutes les 30min)
|
|
- [x] Événement boot envoyé au démarrage
|
|
- [x] API locale sur :9101 (GET /metrics)
|
|
- [x] Push vers /api/v1/metrics et /api/v1/events
|
|
- [ ] `widget-agent-metrics` Glance — Phase 4
|
|
|
|
## Phase 4 — Widgets Glance ✅
|
|
|
|
- [x] `widget-network-scan` : liste équipements (état, IP, hostname, vendor, services, tri online/offline)
|
|
- [x] `widget-agent-metrics` : barres CPU/RAM/disque/température par agent, code couleur (ok/warn/crit)
|
|
- [x] CSS custom (`sentinelmesh.css`) : badges, barres de progression, points de statut
|
|
- [x] Page Glance exemple complète (`glance-page-example.yaml`)
|
|
- [x] 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 ✅
|
|
|
|
- [x] `install/install.sh` : script complet (détection arch, téléchargement, config, systemd, enregistrement)
|
|
- [x] `install/uninstall.sh` : désinstallation propre
|
|
- [x] Docker Compose production (healthcheck, réseau, volumes nommés)
|
|
- [x] `docker-compose.dev.yml` : profil développement
|
|
- [x] Dockerfiles agents multi-arch (amd64, arm64, armv7 Raspberry Pi)
|
|
- [x] `.gitea/workflows/ci.yaml` : check + clippy + fmt + tests sur push/PR
|
|
- [x] `.gitea/workflows/release.yaml` : build multi-arch + release Gitea sur tag v*
|
|
|
|
## Phase 6 — Extensions ✅
|
|
|
|
- [x] SSE (Server-Sent Events) : GET /api/v1/stream — events `metrics` et `network` en temps réel
|
|
- [x] Historique métriques : GET /api/v1/history/{agent_id}?hours=N, rétention 7 jours
|
|
- [x] Prometheus : GET /metrics — format text/plain, compatible Grafana/Prometheus
|
|
- [x] MQTT agent-metric : publication realtime/medium/events (rumqttc, QoS 0/1)
|
|
- [x] MQTT agent-scan-network : publication résumé scan réseau
|
|
- [x] Topics MQTT : sentinelmesh/<hostname>/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
|