Documentation
Installer VIGIL Mesh sur Linux (desktop, serveur et Jetson)
Ce guide installe VIGIL Mesh sur Linux — poste desktop, serveur sans écran, ou carte NVIDIA Jetson (qui est un Linux ARM64 comme un autre). Dans un terminal interactif, le script officiel vérifie et installe le paquet, puis demande comment connecter la machine : soit la clé d'enrôlement fournie par la console (« Ajouter une machine »), soit le compte (e-mail, mot de passe, code MFA éventuel). Il propose ensuite les réseaux à rejoindre, à valider avec q. Après un redémarrage, le service se reconnecte seul aux réseaux choisis. L'installation manuelle du .deb reste disponible ; aucun port entrant n'est ouvert.
Prérequis
Le client Linux s'adresse à trois usages : le poste desktop, le serveur (ou la machine de site) sans interface graphique, et la carte embarquée type Jetson. L'installation crée une interface TUN et un service géré par systemd, et requiert les droits root le temps de l'installation et de la connexion.
- Une distribution à base Debian ou Ubuntu avec glibc 2.34 ou plus récent — Ubuntu 22.04 LTS, Debian 12 ou plus récent — en architecture amd64 ou arm64 (par exemple JetPack 6 / Ubuntu 22.04 sur une carte NVIDIA Jetson ; JetPack 5 / Ubuntu 20.04 est trop ancien).
- Les droits root (sudo) pour installer le paquet, créer l'interface TUN et activer le service.
- systemd actif et le support des interfaces TUN (/dev/net/tun), standard sur les distributions courantes.
- Les paquets ca-certificates, iproute2, nftables et systemd — dépendances du client, résolues automatiquement par apt.
- Un accès Internet sortant : aucune règle de pare-feu entrante ni redirection de port à préparer.
Méthode recommandée : le script d'installation
Le script officiel install-vigil-mesh.sh détecte l'architecture, lit le manifest publié, choisit le bon paquet, contrôle son empreinte SHA-256, l'installe, puis active et démarre le service. Dans un terminal interactif, il lance ensuite l'assistant : choix entre clé d'enrôlement et compte, authentification, chargement du catalogue et sélection persistante des réseaux.
curl -fLO https://vigil.design/downloads/install-vigil-mesh.sh
chmod +x ./install-vigil-mesh.sh
sudo ./install-vigil-mesh.sh- Choix 1 — clé d'enrôlement : dans la console, ouvrez le réseau puis « Ajouter une machine » et dépliez « Utiliser une clé d'enrôlement ». La clé commence par vek_, expire au bout d'une heure et ne sert qu'une fois. Collez-la à l'invite : la saisie est masquée et la clé ne passe jamais par les arguments du processus.
- Choix 2 — compte : l'assistant demande l'adresse e-mail et le mot de passe ; si le compte est protégé, il demande aussi le code MFA.
- Si la machine est déjà connectée, sa session n'est fermée qu'une fois les nouveaux identifiants saisis : une invite abandonnée laisse une machine distante en ligne.
- Une saisie numérique bascule le réseau correspondant sans perdre les autres choix ; all sélectionne tout et none désélectionne tout.
- Tapez q ou Q pour appliquer la sélection affichée puis quitter proprement l'assistant.
- Sans terminal interactif, ou avec --skip-onboarding, le script installe uniquement le paquet et le service : il ne demande aucun secret et ne modifie aucun attachement.
- Après un redémarrage de la machine, rien à refaire : le service systemd démarre seul, renouvelle la session et rétablit les réseaux choisis.
Machine sans écran ou installation en série : passez la clé d'enrôlement sur l'entrée standard avec --enroll-key-stdin. Le script ne pose alors aucune question. Avec --workspace et --network il attache ce réseau précis — c'est la commande que la console affiche, prête à copier ; sans eux il attache le réseau uniquement s'il n'y en a qu'un de disponible.
curl -fLO https://vigil.design/downloads/install-vigil-mesh.sh
chmod +x ./install-vigil-mesh.sh
printf '%s\n' 'vek_…' | sudo ./install-vigil-mesh.sh --enroll-key-stdin --workspace <workspace-id> --network <network-id>Méthode manuelle : le paquet .deb
Si vous préférez tout contrôler, installez le paquet à la main. Récupérez le .deb correspondant à votre architecture depuis /download/client — amd64 pour un poste ou serveur x86-64, arm64 pour une carte ARM 64 bits (Jetson compris) — avec l'empreinte SHA-256 publiée au manifest signé.
# 1. Vérifier l'empreinte SHA-256 face au manifest signé
sha256sum vigil-mesh_<version>_amd64.deb
# 2. Installer le paquet (apt résout les dépendances)
sudo apt install ./vigil-mesh_<version>_amd64.deb
# 3. Activer et démarrer le service au démarrage
sudo systemctl enable --now vigil-mesh.service
sudo systemctl status vigil-mesh.serviceConnexion manuelle après une installation non interactive
Ces commandes ne sont nécessaires qu'après l'installation manuelle du .deb, une exécution sans terminal interactif ou l'option --skip-onboarding. Authentifiez d'abord la machine par l'entrée standard — avec le compte ou avec une clé d'enrôlement — puis consultez le catalogue et attachez explicitement chaque réseau voulu. Plusieurs réseaux peuvent rester attachés en même temps : répétez la commande attach, sans remplacer les attachements existants.
- Secret hors arguments : le mot de passe passe uniquement par stdin avec --password-stdin, la clé d'enrôlement avec --key-stdin.
- Catalogue explicite : vigil-mesh account refresh affiche les couples workspace/réseau disponibles pour le compte ; vigil-mesh network list affiche les réseaux déjà attachés et leur état.
- Attachements multiples : vigil-mesh network attach ajoute un réseau précis ; relancez-la pour chacun des réseaux nécessaires.
# Lire le mot de passe sans écho et sans le placer dans argv
read -rsp 'Mot de passe VIGIL : ' VIGIL_PASSWORD; echo
printf '%s\n' "$VIGIL_PASSWORD" | sudo vigil-mesh account login --login vous@example.com --password-stdin
unset VIGIL_PASSWORD
# … ou échanger une clé d'enrôlement de la console
printf '%s\n' 'vek_…' | sudo vigil-mesh account enroll --key-stdin
sudo vigil-mesh account status
# Lister les réseaux disponibles puis attacher ceux voulus
sudo vigil-mesh account refresh
sudo vigil-mesh network attach --workspace <workspace-id> --network <network-id>
# Répéter attach pour chaque autre réseau nécessaire.MFA : le second facteur à la connexion
L'assistant interactif détecte l'état mfa-required et demande directement le code TOTP. Pour une connexion manuelle, transmettez ce code par stdin avec la commande account mfa et le jeton de challenge renvoyé par la connexion. Le code n'apparaît jamais dans les arguments du processus.
- Le mot de passe passe par --password-stdin ; aucune option ne transporte le secret dans argv.
- Le code MFA passe séparément par --code-stdin, avec le jeton de challenge renvoyé par la connexion.
- Après l'état ready, utilisez account refresh puis network attach pour choisir tous les réseaux nécessaires.
read -rsp 'Code MFA : ' VIGIL_MFA; echo
printf '%s\n' "$VIGIL_MFA" | sudo vigil-mesh account mfa --token <challenge-token> --code-stdin
unset VIGIL_MFA
sudo vigil-mesh account statusGérer le service
Le client tourne comme service systemd vigil-mesh.service, activé au démarrage. Après un redémarrage de la machine, il renouvelle la session et restaure les attachements configurés, sans nouvelle saisie.
# État du service et santé du client
systemctl status vigil-mesh.service
vigil-mesh --self-test
sudo vigil-mesh account status
sudo vigil-mesh network list
# Journaux
journalctl -u vigil-mesh.service -n 80 --no-pager
# Arrêter ou redémarrer
sudo systemctl stop vigil-mesh.service
sudo systemctl restart vigil-mesh.service
# Se déconnecter (supprime la session locale)
sudo vigil-mesh account logoutVérifier
Après la validation de l'assistant avec q, ou après la connexion et les attachements manuels, vérifiez l'état du service, de la session et de chaque réseau. Ces contrôles distinguent une installation saine d'un attachement réellement connecté.
- Service sain : systemctl status vigil-mesh.service et vigil-mesh --self-test réussissent.
- Compte prêt : sudo vigil-mesh account status indique l'état ready.
- Réseaux attachés : sudo vigil-mesh network list affiche chaque attachement voulu et son état, sans limiter la machine à un seul réseau.
- Résolution par nom : MagicDNS résout localement les noms des autres appareils, sans qu'aucune requête ne quitte la machine.
- Joignabilité : un test simple (ping vers l'adresse mesh d'un autre nœud, puis accès à un service partagé) confirme que le chemin est ouvert.