Documentation
Référence : CLI et fichiers de configuration
Cette page décrit, sans inventer de sous-commandes, la façon dont on configure et démarre les deux services de VIGIL-MESH. Une vigie lit un fichier de configuration minimal et s'enregistre auprès du contrôleur avec la commande register, qui consomme un jeton à usage unique. Le contrôleur — le serveur web — démarre à partir de sa propre configuration. Tout le reste de l'état d'une vigie (clés, certificat de flotte, allocations) descend du contrôleur ; il n'est jamais écrit à la main.
Fichier de configuration d'une vigie
Une vigie se configure via un fichier minimal, par exemple /etc/vigil/vigie.toml. Il ne contient que ce qui amorce l'enregistrement : le contrôleur fournit ensuite tout le reste. On y trouve typiquement quatre informations.
| Champ | Rôle |
|---|---|
| Jeton | Jeton de flotte à usage unique, généré côté contrôleur ; il amorce l'enregistrement et sera consommé au premier register. |
| Empreinte du contrôleur | Empreinte (pin) du contrôleur, pour que la vigie vérifie qu'elle parle bien au bon serveur. |
| IP | Adresse IP publique sous laquelle la vigie est joignable de l'extérieur. |
| Capacités | Capacités annoncées par la vigie (ce qu'elle déclare pouvoir servir). |
Enregistrer une vigie
Au premier démarrage, la commande register consomme le jeton à usage unique déclaré dans le fichier. En retour, la vigie reçoit du contrôleur ses clés de vérification, son certificat de flotte, la liste de ses vigies sœurs et ses premières allocations.
- Le jeton est à usage unique : une fois consommé par register, il n'est plus rejouable.
- L'enregistrement descend l'état de la vigie depuis le contrôleur — il n'y a rien d'autre à écrire localement.
- Une simple connexion sortante ne suffit pas : après register, le contrôleur qualifie les trois listeners entrants (udp/443, udp/4433, tcp/443) depuis l'extérieur avant toute allocation de trafic.
Démarrer le serveur (contrôleur)
Le contrôleur — le serveur web qui coordonne l'espace de travail, publie les cartes réseau signées et distribue les allocations — démarre à partir de sa propre configuration, par exemple passée via une option de configuration web (par ex. --web-config). C'est ce service qui délivre les jetons, qualifie les vigies et signe les netmaps.
- Le contrôleur est la source de vérité : il émet les jetons, valide les enregistrements et publie les netmaps signées.
- Les vigies et les nœuds dérivent leur état de ce serveur ; ils ne le contredisent jamais.
Bonnes pratiques
- Traitez le jeton comme un secret : il autorise un enregistrement. Générez-le juste avant l'usage et laissez-le être consommé rapidement.
- Restreignez les permissions du fichier de configuration de la vigie (lecture réservée au compte de service) et évitez de le versionner dans un dépôt.
- Vérifiez l'empreinte du contrôleur dans le fichier : c'est elle qui empêche une vigie de s'enregistrer auprès d'un imposteur.
- Décommissionnez plutôt que de réutiliser : changer la portée ou le propriétaire d'une vigie impose de la retirer et de générer un nouveau jeton — il n'y a pas de reconfiguration en place.
In English
A vigie is configured through a minimal file (e.g. /etc/vigil/vigie.toml) holding just a token, the controller's fingerprint, its public IP, and its advertised capabilities — everything else is downloaded from the controller.
The register command consumes the one-shot token; the controller then qualifies the three inbound ports from the outside before allocating any traffic.
The controller (the web server) starts from its own configuration (e.g. --web-config) and is the source of truth: it issues tokens, qualifies vigies, and signs the netmaps.