Journal-indexDockup / praktijknotitie
Note / self-host-trilium

Trilium Notes zelf hosten in 2026: datamap, WebSockets en back-ups

Een praktische handleiding voor het zelf hosten van Trilium Notes met aandacht voor Docker, poorten, persistente data, TLS, beveiliging, back-ups en de problemen die productiegebruik in de weg staan.

Een Trilium Notes-container kan groen zijn terwijl de functionaliteit die gebruikers belangrijk vinden niet werkt. Bij Trilium Notes is de verborgen oorzaak meestal dat de datamap op het verkeerde pad is gemount of niet schrijfbaar is. Deze handleiding gebruikt “gekoppelde notities maken, een bijlage en relatie toevoegen, ze opzoeken en de revisiegeschiedenis na een herstart controleren” als acceptatietest en werkt de deployment vanuit dat resultaat terug.

Trilium Notes heeft een specifieke rol in de stack: een persoonlijke knowledge base met een boomstructuur. De vraag voor productie is daarom niet of poort 8080 eenmalig antwoord geeft, maar of state, dependencies en het publieke adres na een herstart, update en restore op elkaar afgestemd blijven.

Breng Trilium Notes in kaart voordat je Docker aanraakt

Het HTTP-proces van Trilium Notes luistert op 8080; houd die poort op het applicatienetwerk en publiceer alleen de platformroute. De lokale runtimevereiste is een duurzame datamap en voldoende geheugen voor indexing. Valideer dit onder de acceptatieworkload; een inactieve health check kan niet bewijzen dat de resources toereikend zijn.

Leg de grens vast in een kort contract: wie verantwoordelijk is voor de requirement, welke credential wordt gebruikt, welke timeout acceptabel is en hoe een fout zichtbaar wordt. Voer daarna deze transactie uit: maak gekoppelde notities, voeg een bijlage en relatie toe, zoek ze op en controleer de revisiegeschiedenis na een herstart. Observeer tijdens de run note indexing, de grootte van bijlagen, scripting en de groei van document.db, omdat deze workload een nuttigere uitgangsgrootte oplevert dan een inactieve container.

Test Trilium Notes van buiten de server

Stel één HTTPS-hostnaam beschikbaar voor Trilium Notes en houd ruwe poort 8080 privé. Publiceer de webinterface via HTTPS en behoud WebSockets. Zo voorkom je dat browsers en API-clients twee concurrerende adressen leren kennen.

Voer vanaf een schone client de bekende, werkende transactie uit en inspecteer het eerste verzoek dat faalt. Gebruik de handleiding voor een custom domain als DNS of TLS niet correct is. Beschouw “de datamap is op het verkeerde pad gemount of niet schrijfbaar” als een afzonderlijke applicatiediagnose zodra de route is bewezen.

Start Trilium Notes met inzichtelijke defaults

Een production-vormige launch is bewust saai: named state, een expliciete poort en geen secret in de 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

Het voorbeeld is een baseline en geen complete supporting stack. Bevestig de lokale requirement voordat je de service beschikbaar maakt: een duurzame datamap en voldoende geheugen voor indexing. Controleer de effectieve mounts en listener en probeer vervolgens gekoppelde notities te maken, een bijlage en relatie toe te voegen, ze op te zoeken en de revisiegeschiedenis na een herstart te controleren. Pin de werkende image voordat je opnieuw herstart.

Houd de workload in de gaten, niet alleen de container

Observeer het werk dat Trilium Notes uitvoert: note indexing, de grootte van bijlagen, scripting en de groei van document.db. Stel limieten in met voldoende headroom voor dat werk en vermijd een liveness probe die ermee concurreert. De operatorcheck moet nog steeds volgens een schema proberen gekoppelde notities te maken, een bijlage en relatie toe te voegen, ze op te zoeken en de revisiegeschiedenis na een herstart te controleren.

Houd er bij updates rekening mee dat TriliumNext-migraties, scripts en theme extensions op een dubbele datamap moeten worden getest. Deploy de candidate tegen een herstelde kopie en herhaal de bekende test. Als de datamap op het verkeerde pad is gemount of niet schrijfbaar is, gebruik dan runtime-logs en het daadwerkelijke network request om te achterhalen welke aanname is veranderd.

Wat moet slagen voordat echte Trilium Notes-data wordt toegevoegd?

Het releaserecord voor Trilium Notes heeft feiten nodig, geen “ziet er goed uit”. Sla de geselecteerde image digest, configuratiechecksum, publieke hostnaam en een resultaat met timestamp op voor: gekoppelde notities maken, een bijlage en relatie toevoegen, ze opzoeken en de revisiegeschiedenis na een herstart controleren. Gebruik niet-productie-sampledata zodat de controle na elke deployment kan worden uitgevoerd.

Bewijs twee lifecycle-events afzonderlijk. Een containervervanging moet normale werking behouden; een clean recovery moet aantonen dat notities, relaties, bijlagen, attributen en revisies terugkomen en dat de bekende zoekopdracht dezelfde notitie vindt. Meet tijdens de controles note indexing, de grootte van bijlagen, scripting en de groei van document.db en bewaar het resultaat als de verwachte envelope voor deze versie.

Test ook een geweigerde of ongeldige toestand: dien onschadelijke input in rond de resource- of formatlimiet die bij deze grens hoort: de datamap is op het verkeerde pad gemount of niet schrijfbaar. Trilium Notes moet op een diagnosticeerbare manier falen en mag gezonde state niet overschrijven. Herstel de geldige toestand, voer het sample opnieuw uit en voeg de relevante geredigeerde logs toe. Deze artifacts leveren concreet bewijs voor een toekomstige rollbackbeslissing.

Maak een back-up van de state die Trilium Notes niet kan reconstrueren

Definieer het recovery point en de recovery time voor Trilium Notes aan de hand van document.db, bijlagen, revisies en configuratie. Mount /home/node/trilium-data vóór de bootstrap, schrijf onschadelijke sampledata en vervang de container om te bewijzen dat dat pad daadwerkelijk persistent is. Een named volume zorgt voor persistence bij een redeploy; het beschermt niet tegen een compromise of serververlies.

Bouw een clean restore-omgeving, gebruik dezelfde gepinde applicatieversie en bewijs dat notities, relaties, bijlagen, attributen en revisies terugkomen en dat de bekende zoekopdracht dezelfde notitie vindt. Noteer commands, ownership-fixes en de verstreken tijd. De back-uphandleiding biedt een nuttige standaard: een back-up is pas betrouwbaar na een restore, niet na het uploaden.

Kies de trust boundary van Trilium Notes

Sluit het bootstrapvenster zodra de eerste vertrouwde administrator bestaat. De concrete valkuil bij Trilium Notes is het blootstellen van een persoonlijke knowledge base zonder sterke login; de veiligere grens is om het notebook als private data te behandelen, een sterke login te vereisen en geen breder filesystem dan de datamap beschikbaar te maken.

TRILIUM_DATA_DIR bepaalt gedrag en geen vertrouwelijkheid; valideer het type en de waarde ervan en sla echte Trilium Notes-credentials afzonderlijk op. Private networking moet dependency-credentials transporteren en rollen binnen Trilium Notes moeten de kleinst bruikbare actie toestaan. Houd gevoelige request bodies en providerresponses uit routinematige logs.

Wat Dockup voor Trilium Notes moet automatiseren

Voor Trilium Notes kan Dockup de route en het TLS-certificaat aanmaken, mounts behouden, secrets leveren en een duurzame datamap en voldoende geheugen voor indexing beschikbaar maken via private networking, terwijl de deployment naar Dockup of gekoppelde servers gaat.

De release gate blijft de concrete Trilium Notes-transactie: gekoppelde notities maken, een bijlage en relatie toevoegen, ze opzoeken en de revisiegeschiedenis na een herstart controleren. Controleer ook de restorevoorwaarde — notities, relaties, bijlagen, attributen en revisies komen terug en de bekende zoekopdracht vindt dezelfde notitie. Deze twee controles laten zien of de deployment werkt en of deze kan worden hersteld.

Veelgestelde vragen

Wat heeft Trilium Notes nodig voor een production deployment?

Routeer de Trilium Notes-container op poort 8080 via één HTTPS-origin. De lokale runtimevereiste is een duurzame datamap en voldoende geheugen voor indexing. Markeer Trilium Notes pas als klaar wanneer je gekoppelde notities kunt maken, een bijlage en relatie kunt toevoegen, ze kunt opzoeken en de revisiegeschiedenis na een herstart kunt controleren.

Welke Trilium Notes-data hoort in een back-up?

Maak een persistente mount van /home/node/trilium-data en neem document.db, bijlagen, revisies en configuratie op in hetzelfde recoverymanifest. Een clean Trilium Notes-restore slaagt pas wanneer notities, relaties, bijlagen, attributen en revisies terugkomen en de bekende zoekopdracht dezelfde notitie vindt.

Heeft Trilium Notes HTTPS nodig achter een reverse proxy?

Gebruik HTTPS voor de publieke Trilium Notes-origin en houd poort 8080 op de interne route. Pas de Trilium Notes-instelling correct toe: publiceer de webinterface via HTTPS en behoud WebSockets. Voor Trilium Notes beschermt HTTPS credentials of gebruikerscontent tijdens transport en houdt het origin-sensitive clientgedrag consistent.

Hoe moet een Trilium Notes-upgrade worden getest?

Restore de huidige Trilium Notes-state naar een geïsoleerde deployment, pas de candidate-versie toe en herhaal de acceptatietransactie. Let hier extra op, omdat TriliumNext-migraties, scripts en theme extensions op een dubbele datamap moeten worden getest. Bewaar de vorige Trilium Notes-image totdat de grenzen van datamigratie en rollback duidelijk zijn.