Einen Knoten installieren
Vier Schritte auf der Box, und zwei Dinge, die nur du außerhalb davon tun kannst: DNS setzen und deinen Fingerabdruck verifizieren lassen.
Der Einzeiler-Weg
Abschnitt betitelt „Der Einzeiler-Weg“Hast du ein Einschreibungs-Token erhalten, fallen die Schritte 0 bis 2 komplett
zu einem einzigen Befehl zusammen. Er lädt den Code herunter, entpackt ihn nach
/opt/trusted-codes und führt tc-operator setup aus, das die operator.yaml
dieses Knotens anhand des Tokens holt, den Stack installiert und den Knoten
selbst einschreibt.
curl -fsSL https://app.trusted.codes/download/install-node.sh | sudo bash -s -- <einschreibungs-token>Lass das Token weg, um danach gefragt zu werden, damit es nie in deiner Shell-Historie landet:
curl -fsSL https://app.trusted.codes/download/install-node.sh | sudo bashDer Download wird gegen das veröffentlichte Release-Manifest verifiziert, und das Manifest selbst gegen einen fest hinterlegten Signaturschlüssel.
Nimm stattdessen die manuellen Schritte unten, wenn du das Archiv erst prüfen,
eine Version festlegen oder woanders als /opt/trusted-codes installieren
willst (--dir <pfad>).
Schritt 0 — Den Code auf die Box bringen
Abschnitt betitelt „Schritt 0 — Den Code auf die Box bringen“sudo mkdir -p /opt/trusted-codessudo tar -xzf trusted-codes-operator-<version>.tar.gz -C /opt/trusted-codescd /opt/trusted-codesDer Installations-Preflight prüft, dass der Baum vollständig ist, und scheitert laut, mit dieser Anweisung, falls nicht.
Schritt 1 — operator.yaml bearbeiten
Abschnitt betitelt „Schritt 1 — operator.yaml bearbeiten“cp scripts/tc-operator/operator.yaml.example operator.yamlchmod 600 operator.yaml$EDITOR operator.yamlBehalte den Modus 0600 — sie enthält dein SMTP-Passwort. Zwei Felder sind erforderlich:
home_server: node1.example.comadmin_email: ops@example.comFür alles andere gibt es eine funktionierende Voreinstellung. operator.yaml behandelt den Rest der Datei.
Schritt 2 — Installieren
Abschnitt betitelt „Schritt 2 — Installieren“sudo scripts/tc-operator/tc-operator install --config operator.yamlEr ist idempotent — sicher, ihn erneut auszuführen, und ein erneuter Lauf ist der normale Weg, ein neues Archiv einzuspielen. Er:
- Führt einen Preflight des Hosts durch: prüft das Betriebssystem, legt eine 4-GB-Swapdatei an, installiert Docker, falls es fehlt, öffnet 22, 80 und 443 in der Firewall.
- Erzeugt jedes Geheimnis und stellt das mTLS-Zertifikat des Knotens aus.
- Startet den vollständigen Stack in einem isolierten Docker-Projekt, jeder
veröffentlichte Port gebunden an
127.0.0.1. - Spielt das Schema ein — Migrationen, dann Referenz-Seeds, dann den Betreiber-Override. Eine frische Datenbank, konstruiert und nie aus einem Dump.
- Verdrahtet Föderationsidentität und -Flags und schaltet WebFinger-Auffindung ein.
- Testet sich selbst: ein authentifiziertes Lesen und der antwortende Föderations-Handler.
- Gibt die DNS-Records aus, die du brauchst, und schreibt die Aufnahme-Nutzlast.
Er bricht nicht ab, wenn dein DNS noch nicht gesetzt ist. TLS ist ein eigener Schritt.
Die Installation ist nicht hinter einer getippten Bestätigung geschützt: Es ist dein einer Befehl auf deiner eigenen Box.
Er schreibt /etc/trusted-codes/install.log mit der vollständigen Ausgabe jedes
Befehls, und /etc/trusted-codes/README.md — eine Referenz direkt auf der Box,
die jede Datei in diesem Verzeichnis benennt, welche davon identitätskritisch
sind, was jeder Container tut und was ausfällt, wenn er unten ist. Fang bei
diesen beiden an, wenn etwas seltsam aussieht.
Dein erster Admin
Abschnitt betitelt „Dein erster Admin“Hast du admin_email gesetzt, legt die Installation auch deinen ersten
operator_admin für diese Adresse an und gibt ein einmaliges, vorläufiges
Passwort aus. Melde dich in der Admin-App des Knotens an und ändere es sofort.
Der Installer gibt es nur einmal aus, nie wieder. Verlierst du es, bevor du es
geändert hast, führe die Installation erneut in einem Terminal aus: Sie findet
das bestehende Konto und bietet an, das Passwort zurückzusetzen.
Diese Rolle verwaltet nur diesen Knoten. Ihr wird jeder zentrale Bildschirm verweigert — Lizenzen, Berechtigungen, Pläne, Feature Flags — auf Serverebene, nicht nur in der Oberfläche, und es gibt keinen Weg, sie zu eskalieren. Siehe Den Knoten betreiben.
Schritt 3 — DNS setzen, dann TLS abschließen
Abschnitt betitelt „Schritt 3 — DNS setzen, dann TLS abschließen“Der Installer gibt den genauen Record aus. Setze ihn bei deinem DNS-Provider:
node1.example.com. A <deine-box-ip>Sobald er auflöst:
sudo scripts/tc-operator/tc-operator finalize-tls --config operator.yamlDas fragt so lange ab, bis der A-Record auf die Box auflöst, rendert die Proxy-Konfiguration und bringt HTTPS mit einem Let’s-Encrypt-Zertifikat hoch.
Probe es zuerst mit --dry-run. Das verwendet die Staging-Umgebung von Let’s
Encrypt: Das Zertifikat ist nicht vertrauenswürdig, und du verbrauchst kein
Ratenlimit. Das zählt, weil das echte Limit pro Domain gilt und du es nicht
rückgängig machen kannst, sobald du es erreicht hast.
Schritt 4 — Die Aufnahme-Nutzlast einreichen
Abschnitt betitelt „Schritt 4 — Die Aufnahme-Nutzlast einreichen“Der Installer hat /etc/trusted-codes/admission-payload.json geschrieben. Sie
enthält nur öffentliches Schlüsselmaterial: deinen öffentlichen
Föderations-Signaturschlüssel samt Fingerabdruck, deinen mTLS-Fingerabdruck,
deine Domains und deine Fähigkeiten.
scripts/tc-operator/tc-operator submit-admissionDas signiert die Nutzlast mit dem Föderationsschlüssel deines Knotens und stellt sie in die zentrale Prüfwarteschlange.
Die Signatur beweist, dass dein Knoten den Schlüssel besitzt. Sie beweist nicht, dass dir der Hostname gehört — sag Trusted Codes deshalb den Fingerabdruck deines öffentlichen Schlüssels über einen separaten Kanal. Der Befehl gibt ihn aus. Jemand verifiziert diesen Fingerabdruck von Hand und genehmigt dann deinen Knoten; es gibt keine Selbstgenehmigung. Der erneute Aufruf des Befehls aktualisiert den ausstehenden Eintrag.
Sobald genehmigt, und sobald die signierte Registry neu veröffentlicht ist, föderiert dein Knoten mit dem Mesh. Bis dahin bleibt die Admin-Oberfläche hinter einem „Genehmigung ausstehend”-Bildschirm.
Bevor du echte Nutzer darauf loslässt
Abschnitt betitelt „Bevor du echte Nutzer darauf loslässt“Der Knoten läuft, sobald die Installation fertig ist. Das ist nicht dasselbe wie bereit zu sein.
- DNS-Records lösen auf die Box auf, und
finalize-tlsist mit einem gültigen Zertifikat abgeschlossen. - Die Aufnahme ist genehmigt — dein Fingerabdruck verifiziert, der Knoten föderiert.
- SMTP verdrahtet und verifiziert. Schick dir selbst einen Anmeldelink und bestätige, dass er ankommt.
- Das Admin-Passwort ist vom vorläufigen geändert.
/etc/trusted-codes/secrets.envirgendwo offline kopiert. Es zu verlieren verliert die Identitätsschlüssel des Knotens und macht jede wiederhergestellte Daten unlesbar.- Optionale Integrationsschlüssel gesetzt, falls du diese Funktionen willst.
Wenn etwas fehlschlägt
Abschnitt betitelt „Wenn etwas fehlschlägt“Ein Oberflächen-Build wurde übersprungen. Die anderen Oberflächen wurden
installiert; nur dieses Portal wurde nicht gebaut. Lies den Fehler in
install.log — suche nach surface <name>: building. Die übliche Ursache ist
Speicher: Eine Zeile mit „killed” oder Signal 137 bedeutet, dass der Box der
Speicher ausging. Füge RAM oder Swap hinzu und führe die Installation erneut
aus, was den Build wiederholt. Der Knoten ist währenddessen nutzbar.
TLS wurde nicht abgeschlossen. Fast immer DNS, das noch nicht propagiert
ist. Bestätige mit getent hosts <deine-domain>, und führe dann finalize-tls
erneut aus.
Die Aufnahme hängt in „ausstehend”. Jemand bei Trusted Codes muss deinen Fingerabdruck außerhalb des Systems verifizieren und genehmigen. Erneutes Einreichen aktualisiert den Eintrag; es genehmigt ihn nicht.