Zum Inhalt springen

Bevor du beginnst

Vier Dinge. Drei davon kannst nur du bereitstellen.

Ubuntu 26.04 LTS ist das, worauf der Installer abgestimmt ist; alles ab 22.04 funktioniert. 2 vCPU, 4 GB RAM, mindestens 20 GB Speicher.

3,7 GB RAM reichen — der Installer legt eine 4-GB-Swapdatei an. Darunter scheitern Oberflächen-Builds: Ein mit Signal 137 abgebrochener Build bedeutet, dass der Box der Speicher ausging. Der Knoten installiert sich trotzdem und läuft, auch wenn ein Oberflächen-Build fehlschlägt; nur dieses Portal wird übersprungen, und ein erneuter Installationslauf versucht es erneut.

Das 4-GB-Profil betreibt die Datenbank, die Anmeldung, REST, die Edge Functions, das Gateway, den Speicher und Realtime. Studio, Analytics, Bild-Proxying und der Connection Pooler sind standardmäßig aus.

Du musst Docker, Node.js oder pnpm nicht selbst installieren. Der Installations-Preflight erledigt das und konfiguriert die Firewall so, dass sie 22, 80 und 443 zulässt.

Eine Domain, die du für den Knoten kontrollierst — zum Beispiel node1.example.com — und die Möglichkeit, einen A-Record zu setzen, der auf die öffentliche IP der Box zeigt.

Jede Web-Oberfläche, die du aktivierst, braucht ebenfalls einen eigenen A-Record (admin.node1.example.com, my.node1.example.com und so weiter). Der Installer gibt jeden benötigten Eintrag aus.

Für den Livebetrieb erforderlich. Ein SMTP-Provider trägt die gesamte Post des Knotens: Anmeldelinks, Registrierungsbestätigung und Passwort-Zurücksetzungen vom Auth-Dienst, sowie Einladungen, Benachrichtigungen und Verifizierungscodes von den Edge Functions.

Der Installer fragt nach Host, Port, Nutzer und Passwort, prüft die Konfiguration gegen den lebenden Provider, bevor irgendetwas installiert wird, und bietet an, dir eine Testnachricht zu senden.

ProviderHostPortNutzerPasswort
Resendsmtp.resend.com465resenddein API-Schlüssel
Postmarksmtp.postmarkapp.com465Server-TokenServer-Token
Eigenerje nach Provider465je nach Providerje nach Provider

Nutze Port 465, das ist implizites TLS. Das ist keine Vorliebe. Auf Port 587 schließt die Function-Laufzeitumgebung des Knotens das STARTTLS-Upgrade nicht ab. Der Versand hängt, läuft ab und schlägt fehl, sodass Einladungen, Benachrichtigungen und Verifizierungscodes nicht hinausgehen.

Zwei Prüfungen bestehen trotzdem, was das schwer aufzuspüren macht. Die Installationsprüfung verwendet einen anderen Mail-Client und verbindet sich auf 587 ohne Probleme. Anmeldelinks und Passwort-Zurücksetzungen kommen weiter an, weil der Anmeldedienst ein eigenes Programm mit einem eigenen Mail-Client ist — dir also selbst einen Anmeldelink zu schicken, der Test, den die Checkliste verlangt, gelingt auf einem Knoten, dessen Anwendungs-E-Mail kaputt ist.

Port 25 ausgehend ist bei den meisten Hosting-Providern gesperrt.

Die Absenderadresse muss zu einer verifizierten Domain gehören. Der Knoten sendet standardmäßig als noreply@<home_server>, und Provider lehnen jeden Versand von einer Domain ab, die sie nicht für SPF und DKIM verifiziert haben. Das ist nicht deine admin_email — das ist deine eigene Anmelde- und Kontaktadresse, und ihre Domain ist nicht verifiziert. Ist dein Knoten eine Subdomain in einem Konto, in dem nur die übergeordnete Domain verifiziert ist, setze smtp.sender_email auf diese verifizierte übergeordnete Domain. Die Testmail bei der Installation fängt das ab, bevor du live gehst.

Ohne E-Mail ist der Knoten fast reglos. Nutzer treten über E-Mail-gebundene Einladungslinks bei, ein Knoten, der keine Post versenden kann, kann also niemanden an Bord holen. Der Installer schaltet auch jede Föderations-Schnittstelle zwangsweise ab, wenn kein Transport konfiguriert ist, und sagt dir das. Der einzige Knoten, der berechtigterweise ohne E-Mail läuft, ist einer, der auf registration_mode: closed gesetzt ist und keine neuen Nutzer akzeptiert. Registrierungen werden auf einem Knoten nie automatisch bestätigt.

tc-operator läuft aus einem vollständigen Quellbaum. Du erhältst von Trusted Codes das Operator-Distributionsarchiv — ein Tarball mit dem vollständigen, baubaren Baum, ohne Versionskontroll-Historie und ohne interne Dokumente.

Hast du ein Einschreibungs-Token erhalten, holst du das Archiv gar nicht selbst; der Einzeiler-Installer erledigt das für dich und prüft den Download gegen das veröffentlichte, signierte Release-Manifest. Siehe Einen Knoten installieren.

Die Föderations-Vertrauenswurzel — die zentrale Registry-URL und ihr öffentlicher Wurzelschlüssel — ist fest im Installer verankert. Sie ist ein einziger Wert für das gesamte Mesh, identisch auf jedem Knoten, und du stellst ihn weder bereit noch änderst du ihn.

Jedes knotenspezifische Geheimnis (das JWT-Secret, der Anon- und der Service-Key, das Postgres-Passwort, der Verschlüsselungsschlüssel, der Föderations-Signaturschlüssel) wird für dich in /etc/trusted-codes/secrets.env erzeugt, mit dem Modus 0600. Du kopierst nie ein Geheimnis von Hand. Die eine Ausnahme ist dein SMTP-Passwort, das du in operator.yaml einträgst.

Auf einer Mac- oder Linux-Workstation mit Docker kannst du den gesamten Container-Ablauf ohne jede Host-Bereitstellung und ohne TLS durchlaufen:

Terminal-Fenster
scripts/tc-operator/tc-operator install --local --config operator.yaml

--local startet den Knoten in einem isolierten Loopback-Projekt und überspringt apt, die Firewall, die Swapdatei und TLS vollständig. Bau es wieder ab mit tc-operator uninstall --local --config operator.yaml --purge.