Cause racine : smartctl -a -j /dev/nvme0n1 (namespace) retourne exit 4
et omet smart_status car les commandes admin échouent via le namespace.
Solution : utiliser /dev/nvme0 (contrôleur) accessible grâce à la règle
udev SUBSYSTEM==nvme GROUP=disk.
- smart.rs : scan /sys/class/nvme/ pour les contrôleurs (nvme0, nvme1)
au lieu de /sys/block/ pour les namespaces (nvme0n1)
- deploy/99-nanometrics-smart.rules : udev rule KERNEL==nvme* GROUP=disk
- deploy/install.sh : déploie la règle udev + udevadm trigger
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Popup détail : valeur absolue RAM (Go) affichée à côté du %
- install.sh : bannière version agent plus visible à la fin
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- ConfigurationDirectoryMode 0750→0755 : le DynamicUser (sans groupe root)
peut maintenant traverser /etc/nanometrics et lire config.toml
- chmod 644 systématique sur config.toml même si conservé (corrige les
anciennes installs en 640 qui causent un PermissionDenied au démarrage)
- Prompt interactif si config existe : o=écraser, N=conserver ; variable
OVERWRITE_CONFIG=true pour forcer sans interaction (curl|bash)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Avec DynamicUser=yes, le fichier config.toml créé en root:root 640
n'est pas lisible par l'utilisateur dynamique → exit 101 (panic Rust).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- deploy/install.sh : installeur curl-able (détecte l'arch, télécharge
depuis la dernière release Gitea, configure le service systemd)
- deploy/release.sh : build musl statique x86_64 + aarch64, crée la
release Gitea et uploade les binaires en asset
- deploy/install-agent.sh : installeur local depuis le binaire compilé
- server/Dockerfile.dev + docker-compose.dev.yml : stack dev Docker
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>