docs: ajout historique_memoire.md — historique complet du projet
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,78 @@
|
|||||||
|
# Historique et mémoire du projet SentinelMesh
|
||||||
|
|
||||||
|
## Références
|
||||||
|
|
||||||
|
- **Dépôt Gitea** : https://git.maison43gil.com/gilles/SentinelMesh.git
|
||||||
|
- **Utilisateur** : gilles
|
||||||
|
- **Token** : 8bb9ee27860bd2f66c4113406dbcc0d545ba6ac6
|
||||||
|
- **Push** : `git remote set-url origin "https://gilles:<token>@git.maison43gil.com/gilles/SentinelMesh.git"`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 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`
|
||||||
Reference in New Issue
Block a user