Aller au contenu

Installer un nœud

Quatre étapes sur la machine, et deux choses que toi seul peux faire en dehors : pointer le DNS, et faire vérifier ton empreinte.

Si on t’a donné un jeton d’inscription, l’ensemble des étapes 0 à 2 se réduit à une seule commande. Elle télécharge le code, l’extrait vers /opt/trusted-codes et lance tc-operator setup, qui récupère le operator.yaml de ce nœud depuis le jeton, installe la pile et s’inscrit lui-même.

Fenêtre de terminal
curl -fsSL https://app.trusted.codes/download/install-node.sh | sudo bash -s -- <enrolment-token>

Omets le jeton pour qu’il te soit demandé, afin qu’il n’atterrisse jamais dans ton historique de commandes :

Fenêtre de terminal
curl -fsSL https://app.trusted.codes/download/install-node.sh | sudo bash

Le téléchargement est vérifié contre le manifeste de version publié, et le manifeste lui-même contre une clé de signature épinglée.

Prends les étapes manuelles ci-dessous à la place si tu veux inspecter l’archive d’abord, épingler une version, ou installer ailleurs qu’à /opt/trusted-codes (--dir <chemin>).

Fenêtre de terminal
sudo mkdir -p /opt/trusted-codes
sudo tar -xzf trusted-codes-operator-<version>.tar.gz -C /opt/trusted-codes
cd /opt/trusted-codes

Le préambule de l’installation vérifie que l’arborescence est complète et échoue bruyamment, avec cette instruction, sinon.

Fenêtre de terminal
cp scripts/tc-operator/operator.yaml.example operator.yaml
chmod 600 operator.yaml
$EDITOR operator.yaml

Garde-le en mode 0600 — il contient ton mot de passe SMTP. Deux champs sont requis :

home_server: node1.example.com
admin_email: ops@example.com

Tout le reste a une valeur par défaut fonctionnelle. operator.yaml couvre le reste du fichier.

Fenêtre de terminal
sudo scripts/tc-operator/tc-operator install --config operator.yaml

C’est idempotent — sûr à relancer, et relancer est la façon normale d’appliquer une nouvelle archive. Ça :

  1. Fait le préambule sur la machine : vérifie l’OS, provisionne un fichier d’échange de 4 Go, installe Docker s’il est absent, autorise les ports 22, 80 et 443 à travers le pare-feu.
  2. Génère chaque secret et émet le certificat mTLS du nœud.
  3. Démarre la pile complète dans un projet Docker isolé, chaque port publié lié à 127.0.0.1.
  4. Rejoue le schéma — migrations, puis semences de référence, puis dérogation de l’exploitant. Une base de données neuve construite par construction, jamais depuis un vidage.
  5. Branche l’identité et les drapeaux de fédération, et active la découverte WebFinger.
  6. S’auto-teste : une lecture authentifiée, et le gestionnaire de fédération qui répond.
  7. Imprime les enregistrements DNS dont tu as besoin et écrit la charge d’admission.

Ça n’abandonne pas si ton DNS n’est pas encore pointé. Le TLS est une étape séparée.

L’installation n’est pas verrouillée derrière une confirmation tapée : c’est ta seule commande sur ta propre machine.

Ça écrit /etc/trusted-codes/install.log avec la sortie complète de chaque commande, et /etc/trusted-codes/README.md — une référence sur la machine nommant chaque fichier de ce répertoire, lesquels sont critiques pour l’identité, ce que fait chaque conteneur et ce qui casse quand il est arrêté. Commence par ces deux-là quand quelque chose a l’air de clocher.

Si tu as réglé admin_email, l’installation crée aussi ton premier operator_admin pour cette adresse et imprime un mot de passe temporaire à usage unique. Connecte-toi à l’application d’administration du nœud et change-le immédiatement. L’installateur l’imprime une fois et plus jamais. Si tu le perds avant de l’avoir changé, relance l’installation depuis un terminal : elle trouve le compte existant et propose de réinitialiser le mot de passe.

Ce rôle n’administre que ce nœud. Il se voit refuser tout écran central — licences, droits, plans, drapeaux de fonctionnalité — au niveau du serveur, pas seulement dans l’interface, et il n’y a aucun moyen de l’escalader. Voir Faire tourner le nœud.

Étape 3 — Pointer le DNS, puis finaliser le TLS

Section intitulée « Étape 3 — Pointer le DNS, puis finaliser le TLS »

L’installateur imprime l’enregistrement exact. Règle-le chez ton fournisseur DNS :

node1.example.com. A <l'ip-de-ta-machine>

Une fois qu’il se résout :

Fenêtre de terminal
sudo scripts/tc-operator/tc-operator finalize-tls --config operator.yaml

Ça sonde jusqu’à ce que l’enregistrement A se résolve vers la machine, rend la configuration du proxy, et fait monter le HTTPS avec un certificat Let’s Encrypt.

Répète d’abord avec --dry-run. Ça utilise l’environnement de préproduction de Let’s Encrypt : le certificat n’est pas fiable, et tu ne brûles aucune limite de débit. Ça compte, parce que la vraie limite de débit est par domaine et tu ne peux pas annuler l’avoir atteinte.

L’installateur a écrit /etc/trusted-codes/admission-payload.json. Il ne contient que du matériel de clé publique : ta clé publique de signature de fédération et son empreinte, ton empreinte mTLS, tes domaines et tes capacités.

Fenêtre de terminal
scripts/tc-operator/tc-operator submit-admission

Ça signe la charge avec la clé de fédération de ton nœud et la poste dans la file de révision centrale.

La signature prouve que ton nœud détient la clé. Elle ne prouve pas que tu possèdes le nom d’hôte — donc dis à Trusted Codes l’empreinte de ta clé publique par un canal séparé. La commande l’imprime. Quelqu’un vérifie cette empreinte à la main puis approuve ton nœud ; il n’y a pas d’auto-approbation. Relancer la commande rafraîchit l’entrée en attente.

Une fois approuvé, et une fois le registre signé republié, ton nœud fédère avec le maillage. En attendant, la surface admin reste derrière un écran « approbation en attente ».

Le nœud tourne dès que l’installation se termine. Ce n’est pas la même chose qu’être prêt.

  • Les enregistrements DNS se résolvent vers la machine, et finalize-tls s’est terminé avec un certificat valide.
  • Admission approuvée — ton empreinte vérifiée, le nœud fédère.
  • SMTP branché et vérifié. Envoie-toi un lien de connexion et confirme qu’il arrive.
  • Le mot de passe admin changé depuis le temporaire.
  • /etc/trusted-codes/secrets.env copié quelque part hors ligne. Le perdre fait perdre les clés d’identité du nœud et rend illisible toute donnée restaurée.
  • Clés d’intégration optionnelles réglées, si tu veux ces fonctionnalités.

Une construction de surface a été sautée. Les autres surfaces se sont installées ; seul ce portail n’a pas été construit. Lis l’erreur dans install.log — cherche surface <name>: building. La cause habituelle est la mémoire : une ligne « killed » ou signal 137 signifie que la machine a manqué de mémoire. Ajoute de la RAM ou de l’échange et relance l’installation, qui retente la construction. Le nœud est utilisable entre-temps.

Le TLS ne s’est pas finalisé. Presque toujours un DNS qui ne s’est pas propagé. Confirme avec getent hosts <ton-domaine>, puis relance finalize-tls.

L’admission reste en attente. Quelqu’un chez Trusted Codes doit vérifier ton empreinte hors bande et l’approuver. Resoumettre rafraîchit l’entrée ; ça ne l’approuve pas.