gilles
c4f672bb69
docs: ajout historique_memoire.md — historique complet du projet
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-19 07:03:44 +02:00
gilles
27c62fa54c
fix(docker): Dockerfile workspace-aware + db.rs create_if_missing
...
- Contexte de build depuis la racine du workspace Cargo
- Rust 1.86 pour edition 2024
- Layer cache avec stubs membres du workspace
- Création répertoire /data dans l'image
- SQLite create_if_missing(true) pour créer la DB au premier démarrage
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-19 07:02:54 +02:00
gilles
20eb495357
chore: ajout tokengite.md et mise à jour .gitignore
...
Release / Build x86_64-unknown-linux-gnu (push) Failing after 5m44s
Release / Build aarch64-unknown-linux-gnu (push) Failing after 4m31s
Release / Build armv7-unknown-linux-gnueabihf (push) Failing after 4m27s
Release / Création de la release Gitea (push) Has been skipped
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
v0.1.0
2026-05-19 06:49:26 +02:00
gilles
675ae99c7e
chore: exclure fichiers locaux du dépôt (.claude, tokengite, doc_brainstorming, repo_glance)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-19 06:48:09 +02:00
gilles
6cd910dbc0
feat(agent-scan-network): MQTT + configs exemples + ROADMAP Phase 6
...
- 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 >
2026-05-19 06:32:57 +02:00
gilles
288ec178ac
feat(agent-metric): publication MQTT optionnelle
...
- Nouveau module mqtt.rs : connexion broker, publish QoS 0, reconnexion auto
- Topics : sentinelmesh/<hostname>/metrics/realtime|medium et events
- Config : section mqtt (enabled, broker, port, topic_prefix, client_id)
- Publié sur : collecte temps réel, medium, boot, événements système
- Désactivé par défaut (mqtt.enabled: false)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-19 06:31:39 +02:00
gilles
f0a071e83a
feat(backend): historique, SSE et Prometheus — Phase 6
...
- Migration 002 : table metrics_history (index agent_id/timestamp)
- AppState : broadcast channels (metrics_tx, network_tx) + FromRef<SqlitePool>
- GET /api/v1/history/{agent_id}?hours=N : série temporelle, rétention 7 jours
- POST /api/v1/metrics : écrit dans history + broadcast SSE
- GET /api/v1/stream : Server-Sent Events (events metrics + network)
- GET /metrics : endpoint Prometheus text/plain (CPU, RAM, disque, temp, réseau)
- Bump version API 0.2.0
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-19 06:30:34 +02:00
gilles
0e1eafc81e
feat(ci): pipelines Gitea Actions CI + release multi-arch
...
- ci.yaml : cargo check + clippy (-D warnings) + fmt + tests sur push/PR main
- release.yaml : build cross (amd64/arm64/armv7) via cross-rs, création release
Gitea avec binaires nommés par architecture sur tag v*
- ROADMAP Phase 5 marquée complète
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-19 06:26:22 +02:00
gilles
df8eddc6b8
feat(docker): Dockerfiles agents multi-arch (amd64, arm64, armv7)
...
- Build en 2 étapes : rust:1.82-alpine → alpine:3.21
- Mapping automatique TARGETPLATFORM → target musl Rust
- Cache couche dépendances Cargo (builds incrémentaux rapides)
- agent-scan-network : inclut iputils (ping)
- agent-metric : inclut smartmontools (SMART), requiert --privileged pour /sys
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-19 06:25:43 +02:00
gilles
b9e3188cb4
feat(deploy): Docker Compose production + script désinstallation
...
- docker-compose.yml : healthcheck, réseau interne, volumes nommés
- docker-compose.dev.yml : profil développement (logs debug, restart no)
- install/uninstall.sh : arrêt service, suppression binaire + config + unit
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-19 06:25:20 +02:00
gilles
10cc6979c9
feat(install): script d'installation agents complet
...
- Détection architecture (amd64, arm64, Raspberry Pi armv7)
- Téléchargement binaire depuis release Gitea
- Création config YAML dans /etc/sentinelmesh/
- Création et activation service systemd
- Enregistrement automatique auprès du backend
- Vérification des prérequis (root, curl, systemd)
- Support --server, --token, --agent-type, --hostname, --version
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-19 06:24:29 +02:00
gilles
8a8641e9cd
feat(widgets): implémentation Phase 4 — widgets Glance complets
...
- widget-network-scan : liste équipements avec état (online/offline),
hostname, IP, vendor, badges services, tri online en premier
- widget-agent-metrics : barres CPU/RAM/disque/température par agent,
code couleur ok (vert) / warn (orange) / crit (rouge)
- sentinelmesh.css : styles custom (points statut, badges, barres de
progression animées) compatibles thèmes Glance
- glance-page-example.yaml : page Infrastructure prête à l'emploi
- Backend widgets enrichi : mac, ports, offline count, net_rx/tx_bps
- ROADMAP Phase 4 marquée complète
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-19 06:21:57 +02:00
gilles
6bda1a2b59
feat(agent-metric): implémentation Phase 3 — métriques système
...
- Collecte temps réel (1s) : CPU, RAM, charge réseau, top 5 processus
- Collecte medium (30min) : disques via sysinfo, températures hwmon, SMART smartctl
- Collecte statique (boot) : DMI/BIOS via /sys, interfaces réseau, CPU model
- API locale Axum sur :9101 — GET /metrics (réaltime + medium + hardware)
- Push backend : /api/v1/metrics (réaltime + medium) et /api/v1/events (hardware, boot)
- Architecture modulaire : collectors/realtime, medium, static_info
- ROADMAP Phase 3 marquée complète
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-19 06:18:08 +02:00
gilles
57b5fd6b77
feat(agent-scan-network): implémentation Phase 2 — découverte réseau
...
- Scan ping TCP multi-ports (sans root requis)
- Lecture table ARP Linux (/proc/net/arp)
- Détection 20 services par scan de ports TCP
- Base OUI embarquée (~70 constructeurs courants)
- API JSON locale Axum sur :9100 (GET /devices, GET /health)
- Push automatique vers backend /api/v1/network
- Enregistrement agent au démarrage
- Config YAML (subnet 10.0.0.0/22, concurrence, timeouts)
- ROADMAP Phase 1 et 2 marquées complètes
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-19 06:13:24 +02:00
gilles
2a44301269
feat(backend): implémentation complète Phase 1
...
- Migration SQLite initiale : agents, devices, metrics, events
- API REST v1 complète : /agents, /network, /metrics, /events, /widgets
- Endpoints widgets Glance : /api/v1/widgets/network et /api/v1/widgets/metrics
- Spec OpenAPI générée et servie sur /api-docs/openapi.json
- Gestion d'erreurs centralisée (AppError)
- CORS permissif pour développement
- push réseau met à jour le last_seen de l'agent
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-19 06:09:02 +02:00
gilles
7cf56f24ef
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 >
2026-05-19 05:59:12 +02:00
gilles
452fded27f
first commit
2026-05-19 05:26:47 +02:00