Journal-IndexDockup / Feldnotiz
Note / self-host-trilium

Trilium Notes 2026 selbst hosten: Datenverzeichnis, WebSockets und Backups

Ein praxisnaher Leitfaden zum Self-Hosting von Trilium Notes mit Docker, Ports, persistenten Daten, TLS, Sicherheit, Backups und den Fehlern, die den Produktiveinsatz verhindern.

Ein Trilium Notes-Container kann grün sein, obwohl der für Benutzer wichtige Anwendungsfall fehlschlägt. Bei Trilium Notes besteht dieser versteckte Fehler meist darin, dass das Datenverzeichnis am falschen Pfad eingebunden oder nicht beschreibbar ist. Dieser Leitfaden verwendet als Abnahmetest: „Verknüpfte Notizen erstellen, einen Anhang und eine Relation hinzufügen, danach suchen und den Revisionsverlauf nach einem Neustart überprüfen“ – und leitet die Bereitstellung von diesem Ergebnis aus rückwärts her.

Trilium Notes hat eine bestimmte Rolle im Stack: eine persönliche Wissensdatenbank in Baumstruktur. Die Frage für den Produktiveinsatz lautet daher nicht, ob Port 8080 einmal antwortet, sondern ob Status, Abhängigkeiten und öffentliche Adresse nach einem Neustart, Update und Restore weiterhin zusammenpassen.

Trilium Notes vor Docker analysieren

Der HTTP-Prozess von Trilium Notes lauscht auf Port 8080. Belasse diesen Port im Anwendungsnetzwerk und veröffentliche ausschließlich die Plattform-Route. Die lokale Laufzeitanforderung besteht aus einem dauerhaften Datenverzeichnis und ausreichend Arbeitsspeicher für die Indexierung. Validiere dies unter der Abnahmelast; ein inaktiver Health Check kann nicht belegen, dass die Ressourcen ausreichen.

Halte die Grenze in einem kurzen Vertrag fest: Wer ist für die Anforderung zuständig, welches Credential wird verwendet, welches Timeout ist akzeptabel und wie zeigt sich ein Fehler? Führe anschließend diese Transaktion aus: Verknüpfte Notizen erstellen, einen Anhang und eine Relation hinzufügen, danach suchen und den Revisionsverlauf nach einem Neustart überprüfen. Beobachte währenddessen die Notizen-Indexierung, die Größe der Anhänge, Scripting und das Wachstum von document.db, denn diese Auslastung liefert eine aussagekräftigere Ausgangsgröße als ein inaktiver Container.

Trilium Notes außerhalb des Servers testen

Verwende einen HTTPS-Hostname für Trilium Notes und halte den rohen Port 8080 privat. Stelle die Weboberfläche über HTTPS bereit und erhalte WebSockets. Dadurch wird verhindert, dass Browser und API-Clients zwei konkurrierende Adressen kennenlernen.

Führe von einem sauberen Client aus die bekannte funktionierende Transaktion durch und untersuche den ersten fehlschlagenden Request. Verwende den Leitfaden für eigene Domains, wenn DNS oder TLS fehlerhaft sind. Behandle „Das Datenverzeichnis ist am falschen Pfad eingebunden oder nicht beschreibbar“ als separate Anwendungsdiagnose, sobald die Route nachgewiesen ist.

Trilium Notes mit beobachtbaren Standardeinstellungen starten

Ein produktionsnaher Start ist bewusst unspektakulär: benannter State, expliziter Port und kein Secret im Image.

docker run -d \
  --name trilium-notes \
  --restart unless-stopped \
  -p 127.0.0.1:8080:8080 \
  -v trilium-notes-data:/home/node/trilium-data \
  -e TRILIUM_DATA_DIR=/home/node/trilium-data \
  triliumnext/notes:latest

Das Beispiel ist eine Ausgangsbasis und kein vollständiger Supporting Stack. Bestätige die lokale Anforderung vor der Veröffentlichung: ein dauerhaftes Datenverzeichnis und ausreichend Arbeitsspeicher für die Indexierung. Prüfe die tatsächlich wirksamen Mounts und den Listener. Versuche anschließend, verknüpfte Notizen zu erstellen, einen Anhang und eine Relation hinzuzufügen, danach zu suchen und den Revisionsverlauf nach einem Neustart zu überprüfen. Pinne das funktionierende Image, bevor du den nächsten Neustart durchführst.

Die Auslastung beobachten, nicht nur den Container

Beobachte die von Trilium Notes ausgeführten Arbeiten: Notizen-Indexierung, Größe der Anhänge, Scripting und das Wachstum von document.db. Setze Limits mit ausreichendem Spielraum für diese Arbeiten und vermeide einen Liveness Probe, der mit ihnen konkurriert. Der Operator-Check sollte weiterhin regelmäßig versuchen, verknüpfte Notizen zu erstellen, einen Anhang und eine Relation hinzuzufügen, danach zu suchen und den Revisionsverlauf nach einem Neustart zu überprüfen.

Denke bei Updates daran, dass TriliumNext-Migrationen, Scripts und Theme-Erweiterungen in einem duplizierten Datenverzeichnis getestet werden sollten. Deploye den Kandidaten gegen eine wiederhergestellte Kopie und wiederhole den bekannten Test. Wenn das Datenverzeichnis am falschen Pfad eingebunden oder nicht beschreibbar ist, verwende Runtime-Logs und den tatsächlichen Netzwerk-Request, um herauszufinden, welche Annahme sich geändert hat.

Was vor dem Eintreffen echter Trilium Notes-Daten erfolgreich sein muss

Der Release-Eintrag für Trilium Notes braucht Fakten statt „sieht gut aus“. Speichere den ausgewählten Image-Digest, die Konfigurations-Checksumme, den öffentlichen Hostnamen und ein Ergebnis mit Zeitstempel für: verknüpfte Notizen erstellen, einen Anhang und eine Relation hinzufügen, danach suchen und den Revisionsverlauf nach einem Neustart überprüfen. Verwende nicht-produktive Beispieldaten, damit der Check nach jedem Deployment ausgeführt werden kann.

Weise zwei Lifecycle-Ereignisse separat nach. Das Ersetzen eines Containers muss den normalen Betrieb erhalten. Ein sauberer Recovery muss zeigen, dass Notizen, Relationen, Anhänge, Attribute und Revisionen zurückkehren und die bekannte Suche dieselbe Notiz findet. Miss während der Checks die Notizen-Indexierung, die Größe der Anhänge, das Scripting und das Wachstum von document.db und speichere das Ergebnis als erwarteten Rahmen für diese Version.

Teste außerdem eine abgewiesene oder ungültige Bedingung: Sende harmlose Eingaben nahe am Ressourcen- oder Formatlimit, das mit dieser Grenze verbunden ist: Das Datenverzeichnis ist am falschen Pfad eingebunden oder nicht beschreibbar. Trilium Notes sollte auf diagnostizierbare Weise fehlschlagen und keinen intakten State überschreiben. Stelle die gültige Bedingung wieder her, führe das Beispiel erneut aus und füge die relevanten redigierten Logs an. Diese Artefakte liefern konkrete Anhaltspunkte für eine spätere Rollback-Entscheidung.

Den State sichern, den Trilium Notes nicht wiederherstellen kann

Definiere den Recovery Point und die Recovery Time für Trilium Notes anhand von document.db, Anhängen, Revisionen und Konfiguration. Binde /home/node/trilium-data vor dem Bootstrap ein, schreibe harmlose Beispieldaten und ersetze den Container, um nachzuweisen, dass dieser Pfad tatsächlich persistent ist. Ein Named Volume löst die Persistenz bei Redeployments, schützt aber nicht vor einer Kompromittierung oder dem Verlust des Servers.

Erstelle eine saubere Restore-Umgebung, verwende dieselbe gepinnte Anwendungsversion und weise nach, dass Notizen, Relationen, Anhänge, Attribute und Revisionen zurückkehren und die bekannte Suche dieselbe Notiz findet. Dokumentiere Befehle, Anpassungen der Eigentümer und die verstrichene Zeit. Der Backup-Leitfaden ist dafür ein nützlicher Standard: Ein Backup gilt nach der Wiederherstellung als vertrauenswürdig, nicht nach dem Upload.

Die Vertrauensgrenze von Trilium Notes festlegen

Schließe das Bootstrap-Fenster, sobald der erste vertrauenswürdige Administrator existiert. Die konkrete Falle bei Trilium Notes besteht darin, eine persönliche Wissensdatenbank ohne starkes Login zu veröffentlichen. Die sicherere Grenze ist, das Notizbuch als private Daten zu behandeln, ein starkes Login zu verlangen und kein größeres Dateisystem als das Datenverzeichnis freizugeben.

TRILIUM_DATA_DIR steuert das Verhalten, nicht die Vertraulichkeit. Validiere Typ und Wert und speichere echte Trilium Notes-Credentials separat. Das private Netzwerk sollte Dependency-Credentials übertragen, und Rollen innerhalb von Trilium Notes sollten nur die kleinstmögliche sinnvolle Aktion erlauben. Halte sensible Request-Bodies und Provider-Antworten aus den regulären Logs heraus.

Was Dockup für Trilium Notes automatisieren sollte

Für Trilium Notes kann Dockup die Route und das TLS-Zertifikat erstellen, Mounts erhalten, Secrets bereitstellen und ein dauerhaftes Datenverzeichnis sowie ausreichend Arbeitsspeicher für die Indexierung in einem privaten Netzwerk sicherstellen – unabhängig davon, ob auf Dockup oder auf angebundenen Servern deployt wird.

Das Release-Gate bleibt dennoch die konkrete Trilium Notes-Transaktion: verknüpfte Notizen erstellen, einen Anhang und eine Relation hinzufügen, danach suchen und den Revisionsverlauf nach einem Neustart überprüfen. Prüfe außerdem die Restore-Bedingung: Notizen, Relationen, Anhänge, Attribute und Revisionen kehren zurück und die bekannte Suche findet dieselbe Notiz. Diese beiden Checks zeigen, ob das Deployment funktioniert und ob es wiederhergestellt werden kann.

Häufig gestellte Fragen

Was benötigt Trilium Notes für ein produktives Deployment?

Leite den Trilium Notes-Container über eine einzige HTTPS-Origin auf Port 8080. Die lokale Laufzeitanforderung besteht aus einem dauerhaften Datenverzeichnis und ausreichend Arbeitsspeicher für die Indexierung. Erkläre Trilium Notes erst dann für bereit, wenn du verknüpfte Notizen erstellen, einen Anhang und eine Relation hinzufügen, danach suchen und den Revisionsverlauf nach einem Neustart überprüfen kannst.

Welche Trilium Notes-Daten gehören in ein Backup?

Persistiere /home/node/trilium-data und nimm document.db, Anhänge, Revisionen und Konfiguration in dasselbe Recovery-Manifest auf. Ein sauberer Trilium Notes-Restore ist erst dann erfolgreich, wenn Notizen, Relationen, Anhänge, Attribute und Revisionen zurückkehren und die bekannte Suche dieselbe Notiz findet.

Benötigt Trilium Notes HTTPS hinter einem Reverse Proxy?

Verwende HTTPS für die öffentliche Trilium Notes-Origin und halte Port 8080 auf der internen Route. Wende die Trilium Notes-Einstellung korrekt an: Stelle die Weboberfläche über HTTPS bereit und erhalte WebSockets. Bei Trilium Notes schützt HTTPS Credentials oder Benutzerinhalte während der Übertragung und sorgt für ein konsistentes, originabhängiges Client-Verhalten.

Wie sollte ein Trilium Notes-Upgrade getestet werden?

Stelle den aktuellen Trilium Notes-State in einem isolierten Deployment wieder her, wende die Kandidatenversion an und wiederhole die Abnahmetransaktion. Gehe dabei besonders sorgfältig vor, da TriliumNext-Migrationen, Scripts und Theme-Erweiterungen in einem duplizierten Datenverzeichnis getestet werden sollten. Behalte das vorherige Trilium Notes-Image, bis die Grenzen für Datenmigration und Rollback verstanden sind.