chore: initialise la structure du projet SentinelMesh

- Workspace Cargo avec backend, agent-scan-network, agent-metric
- Skeleton Rust pour les trois crates (Axum, Tokio, SQLx)
- Documentation : README, FEATURES, ROADMAP, ARCHITECTURE, API, INSTALL
- Exemples de widgets Glance (custom-api)
- Script d'installation agents (squelette Phase 5)
- Docker Compose + Dockerfile backend
- .gitignore et CLAUDE.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-19 05:59:12 +02:00
parent 452fded27f
commit 7cf56f24ef
22 changed files with 671 additions and 0 deletions
+13
View File
@@ -0,0 +1,13 @@
[package]
name = "agent-metric"
version = "0.1.0"
edition = "2021"
[dependencies]
tokio = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
anyhow = { workspace = true }
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
axum = "0.8"
+18
View File
@@ -0,0 +1,18 @@
use tracing::info;
use tracing_subscriber::EnvFilter;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
tracing_subscriber::fmt()
.with_env_filter(EnvFilter::from_default_env())
.init();
info!("agent-metric démarré");
// TODO Phase 3 : collecte CPU/RAM/GPU/réseau (1s)
// TODO Phase 3 : collecte HDD/SMART/températures (30min)
// TODO Phase 3 : collecte DMI/hardware/BIOS (boot)
// TODO Phase 3 : événements système
Ok(())
}
+13
View File
@@ -0,0 +1,13 @@
[package]
name = "agent-scan-network"
version = "0.1.0"
edition = "2021"
[dependencies]
tokio = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
anyhow = { workspace = true }
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
axum = "0.8"
+16
View File
@@ -0,0 +1,16 @@
use tracing::info;
use tracing_subscriber::EnvFilter;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
tracing_subscriber::fmt()
.with_env_filter(EnvFilter::from_default_env())
.init();
info!("agent-scan-network démarré");
// TODO Phase 2 : scan ICMP, ARP, MAC/OUI, DNS, détection services
// TODO Phase 2 : API JSON locale + push backend
Ok(())
}