Files
SentinelMesh/historique_memoire.md
T
2026-05-19 07:03:44 +02:00

3.4 KiB

Historique et mémoire du projet SentinelMesh

Références


Règles de travail

  • Toutes les réponses, commentaires dans le code, et messages de commit sont en français uniquement
  • Committer + pusher après chaque étape logique (pas seulement en fin de phase)
  • Toujours utiliser le préfixe rtk pour les commandes shell (réduction des tokens)

Historique des phases

Phase 1 — Architecture & Backend

  • Workspace Cargo multi-membres (backend, agents/agent-scan-network, agents/agent-metric)
  • Backend Axum 0.8 + SQLite via SQLx avec migrations
  • Endpoints API v1 : /agents, /network, /metrics, /events, /widgets
  • Spec OpenAPI générée sur /api-docs/openapi.json

Phase 2 — Découverte réseau

  • agent-scan-network : ping sweep TCP, ARP via /proc/net/arp, lookup OUI
  • Scan de ports TCP (SSH, HTTP, HTTPS, SMB, MQTT, Docker, Proxmox, HA…)
  • API JSON locale sur :9100, push vers le backend
  • Subnet configuré : 10.0.0.0/22

Phase 3 — Métriques système

  • agent-metric : CPU/RAM/réseau/charge chaque seconde (sysinfo 0.32)
  • Disques, températures hwmon, SMART via smartctl (toutes les 30min)
  • Infos DMI/hardware depuis /sys au boot + toutes les 12h
  • API locale sur :9101, push vers /api/v1/metrics et /api/v1/events

Phase 4 — Widgets Glance

  • widget-network-scan : liste équipements (état, IP, hostname, vendor, services)
  • widget-agent-metrics : barres CPU/RAM/disque/température par agent
  • CSS custom sentinelmesh.css : badges, barres de progression, points de statut
  • Page Glance exemple complète (glance-page-example.yaml)

Phase 5 — Déploiement & Distribution

  • install/install.sh : détection arch, téléchargement, config, systemd, enregistrement
  • install/uninstall.sh : désinstallation propre
  • Docker Compose production (healthcheck, réseau, volumes nommés)
  • Dockerfiles agents multi-arch (amd64, arm64, armv7)
  • Pipelines Gitea Actions : CI (check/clippy/fmt/test) + release multi-arch sur tag v*

Phase 6 — Extensions

  • SSE temps réel : GET /api/v1/stream (events metrics + network)
  • Historique métriques : GET /api/v1/history/{agent_id}?hours=N, rétention 7 jours
  • Prometheus : GET /metrics format text/plain
  • MQTT dans les deux agents (rumqttc, QoS 0/1) — topics realtime/medium/events/network/scan

Bugs corrigés notables

Problème Solution
utoipa-swagger-ui 8 incompatible avec axum 0.8 Supprimé, OpenAPI JSON servi manuellement
refresh(true) supprimé en sysinfo 0.32 refresh() sans argument
Edition 2024 requiert Rust 1.86+ Dockerfile mis à jour
SQLite ne crée pas le fichier au premier démarrage create_if_missing(true) dans db.rs
Dockerfile backend — contexte workspace mal configuré Contexte depuis la racine, stubs membres du workspace

État actuel (mai 2026)

  • Toutes les 6 phases complètes et pushées
  • Tag v0.1.0 créé et pushé (déclenche le pipeline release multi-arch)
  • Test de déploiement Docker réussi — backend opérationnel
  • Fichiers locaux exclus du dépôt via .gitignore : .claude/, doc_brainstorming/, repo_glance/, tokengite.md