Module 13 / 16← Ordre des modules
● Exploitation · scripts publics · diagnostic

Scripts Jarvis

Installer les scripts opérationnels à partir des versions publiques fournies avec ce site. Les scripts sont issus du Golden Build réel, mais les valeurs privées ont été retirées et les paramètres locaux sont externalisés dans ~/.config/jarvis/jarvis.env.

Scripts fournis

7

Configuration locale

jarvis.env

Bootstrap

v1.1.0-public

Lecture seuleModificationValidationOptionnel
Nouveau : le site est désormais autonome : les scripts ne dépendent plus d’un backup privé pour être récupérés.
Séparation code / configuration : NAS, point de montage, GID et paramètres locaux vivent dans ~/.config/jarvis/jarvis.env. Les secrets Hermes restent, eux, dans ~/.hermes/.env.
Sécurité : ne placez jamais un token Telegram, une clé API, un mot de passe ou une URL iCal secrète dans les scripts publics ou dans le ZIP du site.

Scripts publics fournis

Ces fichiers proviennent des scripts Golden réels, mais les valeurs propres à une machine ont été retirées. Les paramètres locaux sont externalisés dans jarvis.env.

jarvis-health

Diagnostic complet du cœur Jarvis et des intégrations optionnelles.

jarvis-system-info

Inventaire léger du système, du réseau, d’Ollama et du Gateway Hermes.

jarvis-bootstrap

Bootstrap Golden public, sans NAS ni chemin utilisateur codé en dur.

jarvis-backup-extra

Snapshot cohérent Camofox, Open WebUI et métadonnées voix.

jarvis-backup-safe

Wrapper sûr qui garantit le retour du Gateway Hermes.

jarvis-watchdog

Surveillance de jarvis-health et alertes Telegram sur changement d’état.

Installation pas à pas

Les scripts de backup et watchdog sont installés ici mais ne seront activés que dans les Modules 14 et 15.

13.1 · Vérifier les prérequis

Lecture seule
command -v python3
command -v bash
command -v hermes
command -v ollama
python3 --version
python3 -c 'import psutil; print("psutil OK")'
hermes gateway status
Pourquoi : Les scripts de diagnostic utilisent Python 3 et psutil; le bootstrap et les scripts d’exploitation utilisent Bash.
Résultat attendu : Toutes les commandes sont disponibles. Si psutil manque, installez le paquet Ubuntu python3-psutil avant de continuer.

13.2 · Préparer les répertoires locaux

Modification
mkdir -p "$HOME/.local/bin" "$HOME/.config/jarvis"
chmod 700 "$HOME/.local/bin" "$HOME/.config/jarvis
Pourquoi : Les scripts restent dans le compte utilisateur et la configuration locale est séparée du code public.
Résultat attendu : Les deux répertoires existent et appartiennent à l’utilisateur courant.

13.3 · Récupérer les scripts publics

Modification
SITE_DIR="METTRE_VOTRE_CHEMIN_DU_SITE"
ls -lh "$SITE_DIR/scripts"/jarvis-* "$SITE_DIR/scripts/jarvis.env.example
Pourquoi : Le site contient maintenant les scripts eux-mêmes. Vous pouvez aussi les télécharger individuellement avec les boutons ci-dessus.
Résultat attendu : Les sept scripts, le fichier de configuration exemple et le ZIP public sont visibles.

13.4 · Installer les sept scripts

Modification
SITE_DIR="METTRE_VOTRE_CHEMIN_DU_SITE"
for f in jarvis-health jarvis-system-info jarvis-bootstrap          jarvis-backup jarvis-backup-extra jarvis-backup-safe jarvis-watchdog; do
  install -m 700 "$SITE_DIR/scripts/$f" "$HOME/.local/bin/$f"
done
ls -l "$HOME/.local/bin"/jarvis-*
Pourquoi : Tous les scripts sont installés dès maintenant. Les Modules 14 et 15 ne feront qu’activer/configurer les fonctions de backup et watchdog.
Résultat attendu : Les sept fichiers sont présents avec des permissions 700.

13.5 · Installer le modèle de configuration

Modification
SITE_DIR="METTRE_VOTRE_CHEMIN_DU_SITE"
install -m 600 "$SITE_DIR/scripts/jarvis.env.example"   "$HOME/.config/jarvis/jarvis.env"

sed -n '1,120p' "$HOME/.config/jarvis/jarvis.env
Pourquoi : Les paramètres propres au NAS ou à votre installation ne sont plus écrits dans les scripts. Ils sont regroupés dans un fichier local séparé.
Résultat attendu : Le fichier existe en mode 600. Les valeurs NAS seront finalisées au Module 14.

13.6 · Valider la syntaxe des sept scripts

Validation
python3 -m py_compile "$HOME/.local/bin/jarvis-health"
python3 -m py_compile "$HOME/.local/bin/jarvis-system-info"

for f in jarvis-bootstrap jarvis-backup jarvis-backup-extra          jarvis-backup-safe jarvis-watchdog; do
  bash -n "$HOME/.local/bin/$f" || exit 1
done

echo "Syntaxe scripts : OK
Pourquoi : On valide les fichiers réellement installés avant toute exécution.
Résultat attendu : Aucune erreur puis Syntaxe scripts : OK.

13.7 · Contrôler la sanitisation publique

Validation
grep -RInE '192\.168\.|/home/[A-Za-z0-9._-]+'   "$HOME/.local/bin/jarvis-health"   "$HOME/.local/bin/jarvis-system-info"   "$HOME/.local/bin/jarvis-bootstrap"   "$HOME/.local/bin/jarvis-backup"   "$HOME/.local/bin/jarvis-backup-extra"   "$HOME/.local/bin/jarvis-backup-safe"   "$HOME/.local/bin/jarvis-watchdog" || true
Pourquoi : Les versions publiques ne doivent contenir ni ancienne IP LAN/NAS, ni chemin personnel, ni identité issue de la machine Golden d’origine.
Résultat attendu : Aucune correspondance privée réelle. localhost et les chemins basés sur $HOME sont normaux.

13.8 · Vérifier le PATH

Validation
command -v jarvis-health
command -v jarvis-system-info
command -v jarvis-bootstrap
command -v jarvis-backup
command -v jarvis-watchdog
Pourquoi : Les scripts doivent être exécutables directement depuis le shell et par systemd utilisateur.
Résultat attendu : Les chemins retournés pointent vers ~/.local/bin.

13.9 · Tester jarvis-system-info

Validation
jarvis-system-info
echo "Code retour : $?
Pourquoi : Ce script indépendant valide la chaîne Python et les commandes système de base.
Résultat attendu : Le rapport s’affiche sans traceback et retourne normalement 0.

13.10 · Tester jarvis-health

Validation
jarvis-health
RC=$?
echo "Code retour jarvis-health : $RC
Pourquoi : jarvis-health est la référence de diagnostic utilisée ensuite par le watchdog.
Résultat attendu : Le rapport complet s’affiche. Un cœur sain termine sur SANTÉ: OK avec code 0.

13.11 · Vérifier les intégrations optionnelles

Validation
jarvis-health | grep -Ei 'Home Assistant|UniFi|SANTÉ' || true
Pourquoi : Home Assistant et UniFi sont maintenant des options post-validation.
Résultat attendu : S’ils ne sont pas configurés, ils sont signalés comme non configurés sans transformer à eux seuls le cœur Jarvis en panne.

13.12 · Vérifier la version publique du bootstrap

Lecture seule
jarvis-bootstrap --help | head -80
jarvis-bootstrap --check
Pourquoi : Le bootstrap livré est la variante publique du Golden v1.1.0, avec paramètres NAS externalisés.
Résultat attendu : L’aide s’affiche et --check produit un audit sans reconstruction.

13.13 · Afficher le plan de reconstruction

Lecture seule
jarvis-bootstrap --plan
Pourquoi : Le plan permet de comprendre l’ordre de reconstruction sans appliquer d’action.
Résultat attendu : Les couches Ubuntu, Ollama, Hermes, voix, Camofox, Open WebUI, backup et validation sont listées.

13.14 · Ne pas lancer la reconstruction complète ici

Lecture seule
# Audit sûr sur une machine opérationnelle :
jarvis-bootstrap --check
jarvis-bootstrap --plan

# À NE PAS lancer sur Jarvis en production :
# jarvis-bootstrap --rebuild-all
Pourquoi : --rebuild-all reste réservé à une Ubuntu vierge ou une machine destinée à la reconstruction.
Résultat attendu : Aucune reconstruction n’est lancée dans ce module.

13.15 · Vérifier les scripts destinés aux modules suivants

Validation
for f in jarvis-backup jarvis-backup-extra jarvis-backup-safe jarvis-watchdog; do
  test -x "$HOME/.local/bin/$f" && echo "OK   $f" || echo "KO   $f"
done
Pourquoi : Les briques des Modules 14 et 15 doivent déjà être disponibles localement.
Résultat attendu : Les quatre lignes commencent par OK.

13.16 · Conserver une copie du pack public

Optionnel
SITE_DIR="METTRE_VOTRE_CHEMIN_DU_SITE"
mkdir -p "$HOME/jarvis-install-media"
cp "$SITE_DIR/scripts/jarvis-scripts-public.zip" "$HOME/jarvis-install-media/"
ls -lh "$HOME/jarvis-install-media/jarvis-scripts-public.zip
Pourquoi : Le pack peut servir de média local de reconstruction sans dépendre du site au moment d’une panne.
Résultat attendu : Le ZIP public est conservé dans un emplacement choisi par l’utilisateur.

Organisation obtenue

Code public

~/.local/bin/jarvis-* contient uniquement du code générique et réutilisable.

Paramètres locaux

~/.config/jarvis/jarvis.env contient les paramètres spécifiques à votre NAS et à votre installation.

Secrets

~/.hermes/.env reste le seul emplacement pour les tokens et clés d’intégration Hermes.

Modules suivants

Le Module 14 active la sauvegarde. Le Module 15 active le watchdog.

Validation du Module 13

Ne passez au Module 14 que lorsque les scripts publics sont réellement installés et exécutables.

Les 7 scripts publics sont disponibles dans le site.
Le ZIP jarvis-scripts-public.zip est téléchargeable.
Les 7 scripts sont installés en mode 700.
jarvis.env existe en mode 600.
Les deux scripts Python passent py_compile.
Les cinq scripts Bash passent bash -n.
Aucune valeur privée de l’ancienne machine n’est présente.
jarvis-system-info fonctionne.
jarvis-health fonctionne.
jarvis-bootstrap --check fonctionne.
jarvis-bootstrap --plan fonctionne.
--rebuild-all n’a pas été lancé sur la production.

STOP — Module 13 validé

Les scripts Jarvis sont maintenant distribués directement avec le site. Le Module 14 va configurer et activer la chaîne de sauvegarde à partir de ces mêmes fichiers publics.