JournalindeksDockup / feltnote
Note / self-host-trilium

Sådan self-hoster du Trilium Notes i 2026: datamappe, WebSockets og backups

En praktisk guide til self-hosting af Trilium Notes med fokus på Docker, porte, persistent data, TLS, sikkerhed, backups og de fejl, der forhindrer brug i produktion.

En Trilium Notes-container kan være grøn, selv om den funktion, brugerne er afhængige af, er gået i stykker. For Trilium Notes skyldes den skjulte fejl som regel, at datamappen er mountet på den forkerte sti eller ikke er skrivbar. Denne guide bruger “opret forbundne noter, tilføj en vedhæftning og en relation, søg efter dem, og verificer revisionshistorikken efter en genstart” som acceptancetest og bygger deploymentet baglæns ud fra det resultat.

Trilium Notes har en specifik rolle i stacken: en træbaseret personlig knowledge base. Produktionsspørgsmålet er derfor ikke, om port 8080 svarer én gang, men om state, dependencies og den offentlige adresse fortsat stemmer overens efter en genstart, opdatering og gendannelse.

Kortlæg Trilium Notes, før du rører ved Docker

Trilium Notes' HTTP-proces lytter på 8080; behold den port på application networket, og eksponér kun platformens route. Det lokale runtime-krav er en persistent datamappe og tilstrækkelig memory til indexing. Valider det under den faktiske acceptancetest; et idle health check kan ikke dokumentere, at ressourcen er tilstrækkelig.

Skriv grænsen ned som en kort kontrakt: hvem ejer kravet, hvilken credential bruges, hvilken timeout er acceptabel, og hvordan ser en fejl ud. Kør derefter denne transaktion: opret forbundne noter, tilføj en vedhæftning og en relation, søg efter dem, og verificer revisionshistorikken efter en genstart. Observer note-indexing, størrelsen på vedhæftninger, scripting og væksten i document.db under kørslen, fordi denne workload giver en mere brugbar startstørrelse end en idle container.

Test Trilium Notes udefra serveren

Eksponér ét HTTPS-hostname til Trilium Notes, og hold den rå port 8080 privat. Publicér web-UI'et via HTTPS med WebSockets bevaret. Det forhindrer browsere og API-klienter i at opdage to konkurrerende adresser.

Kør den kendte, fungerende transaktion fra en ren klient, og undersøg den første request, der fejler. Brug guiden til custom domains, når DNS eller TLS er forkert. Behandl “datamappen er mountet på den forkerte sti eller er ikke skrivbar” som en separat applikationsdiagnose, når routen er dokumenteret.

Start Trilium Notes med observerbare standardindstillinger

Et production-formet launch er med vilje kedeligt: named state, eksplicit port og ingen secret inde i imaget.

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

Eksemplet er et udgangspunkt og ikke en komplet supporting stack. Bekræft det lokale krav før eksponering: en persistent datamappe og tilstrækkelig memory til indexing. Kontrollér de effektive mounts og listeneren, og prøv derefter at oprette forbundne noter, tilføje en vedhæftning og en relation, søge efter dem og verificere revisionshistorikken efter en genstart. Pin det fungerende image før næste genstart.

Overvåg workloaden, ikke kun containeren

Observer det arbejde, Trilium Notes udfører: note-indexing, størrelsen på vedhæftninger, scripting og væksten i document.db. Sæt limits med headroom til dette arbejde, og undgå en liveness probe, der konkurrerer med det. Operatorens check skal stadig med faste intervaller forsøge at oprette forbundne noter, tilføje en vedhæftning og en relation, søge efter dem og verificere revisionshistorikken efter en genstart.

Ved opdateringer skal du huske, at TriliumNext-migrationer, scripts og theme extensions bør testes på en duplikeret datamappe. Deploy kandidaten mod en gendannet kopi, og gentag den kendte test. Hvis datamappen er mountet på den forkerte sti eller ikke er skrivbar, skal du bruge runtime-logs og den faktiske network request til at finde ud af, hvilken antagelse der er ændret.

Det, der skal bestå, før rigtige Trilium Notes-data ankommer

Release-recordet for Trilium Notes skal indeholde fakta, ikke “det ser godt ud”. Gem det valgte image digest, configuration checksum, offentlige hostname og et tidsstemplet resultat for: opret forbundne noter, tilføj en vedhæftning og en relation, søg efter dem, og verificer revisionshistorikken efter en genstart. Brug ikke-produktionsdata, så checket kan køres efter hver deployment.

Dokumentér to lifecycle events separat. En udskiftning af containeren skal bevare normal drift; en ren recovery skal vise, at noter, relationer, vedhæftninger, attributter og revisioner kommer tilbage, og at den kendte søgning finder den samme note. Mens checkene kører, skal du måle note-indexing, størrelsen på vedhæftninger, scripting og væksten i document.db og gemme resultatet som det forventede envelope for denne version.

Test også en afvist eller ugyldig tilstand: indsend harmløst input tæt på den resource- eller formatgrænse, der er knyttet til denne grænse: datamappen er mountet på den forkerte sti eller er ikke skrivbar. Trilium Notes skal fejle på en måde, der kan diagnosticeres, og må ikke overskrive healthy state. Gå tilbage til den gyldige tilstand, kør eksemplet igen, og vedhæft de relevante redigerede logs. Disse artefakter giver en fremtidig rollback-beslutning konkret evidens.

Tag backup af den state, Trilium Notes ikke kan genskabe

Definér recovery point og recovery time for Trilium Notes med udgangspunkt i document.db, vedhæftninger, revisioner og konfiguration. Mount /home/node/trilium-data før bootstrap, skriv harmløse eksempeldata, og udskift containeren for at dokumentere, at stien faktisk er persistent. En named volume løser persistence ved redeploy; den løser ikke kompromittering eller tab af serveren.

Byg et rent restore-miljø, brug den samme pinnede applikationsversion, og dokumentér, at noter, relationer, vedhæftninger, attributter og revisioner kommer tilbage, og at den kendte søgning finder den samme note. Registrér kommandoer, ownership-fixes og den forløbne tid. Backup-guiden er en nyttig standard: En backup er først trusted efter restoration, ikke efter upload.

Vælg Trilium Notes' trust boundary

Luk bootstrap-vinduet, så snart den første trusted administrator findes. Trilium Notes' konkrete fælde er at eksponere en personlig knowledge base uden et stærkt login; den sikrere grænse er at behandle notebooken som private data, kræve et stærkt login og ikke eksponere et bredere filesystem end datamappen.

TRILIUM_DATA_DIR styrer adfærd, ikke confidentiality; validér dens type og værdi, og opbevar ægte Trilium Notes-credentials separat. Private networking bør transportere dependency credentials, og roller i Trilium Notes bør kun give den mindst mulige nyttige handling. Sørg for, at følsomme request bodies og provider responses ikke havner i routine logs.

Det bør Dockup automatisere for Trilium Notes

For Trilium Notes kan Dockup oprette routen og TLS-certifikatet, bevare mounts, levere secrets og placere en persistent datamappe samt tilstrækkelig memory til indexing på private networking, mens der deployes til enten Dockup eller tilknyttede servere.

Release-gaten er stadig den konkrete Trilium Notes-transaktion: opret forbundne noter, tilføj en vedhæftning og en relation, søg efter dem, og verificer revisionshistorikken efter en genstart. Verificér også restore-betingelsen — noter, relationer, vedhæftninger, attributter og revisioner kommer tilbage, og den kendte søgning finder den samme note. Disse to checks viser, om deploymentet fungerer, og om det kan gendannes.

Ofte stillede spørgsmål

Hvad har Trilium Notes brug for til et produktionsdeployment?

Route Trilium Notes-containeren på port 8080 gennem én HTTPS-origin. Det lokale runtime-krav er en persistent datamappe og tilstrækkelig memory til indexing. Erklær ikke Trilium Notes klar, før du kan oprette forbundne noter, tilføje en vedhæftning og en relation, søge efter dem og verificere revisionshistorikken efter en genstart.

Hvilke Trilium Notes-data hører hjemme i en backup?

Persistér /home/node/trilium-data, og inkludér document.db, vedhæftninger, revisioner og konfiguration i det samme recovery manifest. En ren Trilium Notes-restore er først godkendt, når noter, relationer, vedhæftninger, attributter og revisioner kommer tilbage, og den kendte søgning finder den samme note.

Kræver Trilium Notes HTTPS bag en reverse proxy?

Brug HTTPS til den offentlige Trilium Notes-origin, og behold port 8080 på den interne route. Anvend Trilium Notes-indstillingen korrekt: publicér web-UI'et via HTTPS med WebSockets bevaret. For Trilium Notes beskytter HTTPS credentials eller brugerindhold under transport og holder origin-følsom klientadfærd konsistent.

Hvordan bør en Trilium Notes-opgradering testes?

Gendan den aktuelle Trilium Notes-state i et isoleret deployment, anvend kandidatversionen, og gentag dens acceptancetransaktion. Vær særligt opmærksom, fordi TriliumNext-migrationer, scripts og theme extensions bør testes på en duplikeret datamappe. Behold det tidligere Trilium Notes-image, indtil dets data-migration og rollback-grænse er forstået.