Så självhostar du Trilium Notes 2026: datakatalog, WebSockets och säkerhetskopior
En praktisk guide till självhostning av Trilium Notes med fokus på Docker, portar, persistent data, TLS, säkerhet, säkerhetskopiering och problemen som hindrar produktionsdrift.
En Trilium Notes-container kan vara grön samtidigt som det användarna faktiskt behöver är trasigt. För Trilium Notes beror det dolda felet oftast på att datakatalogen är monterad på fel sökväg eller inte är skrivbar. Den här guiden utgår från att “skapa länkade anteckningar, lägga till en bilaga och en relation, söka efter dem och verifiera revisionshistoriken efter en omstart” är acceptanstestet och bygger distributionen bakifrån utifrån det resultatet.
Trilium Notes har en specifik roll i stacken: en trädstrukturerad personlig kunskapsbas. Produktionsfrågan är därför inte om port 8080 svarar en gång, utan om state, beroenden och den publika adressen fortsätter att stämma överens efter en omstart, uppdatering och återställning.
Kartlägg Trilium Notes innan du rör Docker
Trilium Notes HTTP-process lyssnar på 8080; behåll den porten på applikationsnätverket och publicera endast plattformsrutten. Det lokala runtime-kravet är en beständig datakatalog och tillräckligt med minne för indexering. Validera detta under acceptanstestets belastning; en inaktiv health check kan inte bevisa att resurserna räcker.
Skriv ner gränsen som ett kort kontrakt: vem som äger kravet, vilken credential som används, vilken timeout som är acceptabel och hur ett fel visar sig. Kör sedan den här transaktionen: skapa länkade anteckningar, lägg till en bilaga och en relation, sök efter dem och verifiera revisionshistoriken efter en omstart. Observera anteckningsindexering, bilagestorlek, scripting och tillväxten av document.db under körningen, eftersom den belastningen ger en mer användbar initial storlek än en inaktiv container.
Testa Trilium Notes utifrån servern
Exponera ett HTTPS-hostnamn för Trilium Notes och håll den råa porten 8080 privat. Publicera webbgränssnittet via HTTPS med WebSockets bevarade. Det hindrar webbläsare och API-klienter från att lära sig två konkurrerande adresser.
Kör den beprövade transaktionen från en ren klient och granska den första begäran som misslyckas. Använd guiden för anpassad domän när DNS eller TLS är felkonfigurerat. Behandla “datakatalogen är monterad på fel sökväg eller inte är skrivbar” som en separat applikationsdiagnos när rutten väl är bekräftad.
Starta Trilium Notes med observerbara standardvärden
En produktionslik start är medvetet odramatisk: namngiven state, explicit port och inga secrets inuti imagen.
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
Exemplet är en baslinje, inte en komplett supporting stack. Bekräfta det lokala kravet innan exponering: en beständig datakatalog och tillräckligt med minne för indexering. Kontrollera de effektiva mounts och lyssnaren, och försök sedan skapa länkade anteckningar, lägga till en bilaga och en relation, söka efter dem och verifiera revisionshistoriken efter en omstart. Pinna den fungerande imagen före nästa omstart.
Övervaka arbetsbelastningen, inte bara containern
Observera det arbete Trilium Notes utför: anteckningsindexering, bilagestorlek, scripting och tillväxten av document.db. Sätt limits med marginal för det arbetet och undvik en liveness probe som konkurrerar med det. Operatörskontrollen bör fortfarande med jämna mellanrum försöka skapa länkade anteckningar, lägga till en bilaga och en relation, söka efter dem och verifiera revisionshistoriken efter en omstart.
Vid uppdateringar ska du komma ihåg att TriliumNext-migreringar, script och theme extensions bör testas på en duplicerad datakatalog. Distribuera kandidaten mot en återställd kopia och upprepa det kända testet. Om datakatalogen är monterad på fel sökväg eller inte är skrivbar använder du runtime-loggar och den faktiska nätverksbegäran för att hitta vilket antagande som ändrades.
Det här måste fungera innan riktiga Trilium Notes-data anländer
Release-dokumentationen för Trilium Notes behöver fakta, inte “ser bra ut”. Spara vald image digest, konfigurationschecksumma, publikt hostname och ett tidsstämplat resultat för att skapa länkade anteckningar, lägga till en bilaga och en relation, söka efter dem och verifiera revisionshistoriken efter en omstart. Använd exempeldata som inte är produktionsdata så att kontrollen kan köras efter varje deployment.
Bevisa två lifecycle-händelser separat. Ett byte av container måste bevara normal drift; en ren återställning måste visa att anteckningar, relationer, bilagor, attribut och revisioner återkommer och att den kända sökningen hittar samma anteckning. Medan kontrollerna körs mäter du anteckningsindexering, bilagestorlek, scripting och tillväxten av document.db och sparar resultatet som det förväntade intervallet för den här versionen.
Testa även ett nekande eller ogiltigt tillstånd: skicka ofarlig input nära den resurs- eller formatgräns som hör till den här gränsen: datakatalogen är monterad på fel sökväg eller inte är skrivbar. Trilium Notes ska misslyckas på ett diagnostiserbart sätt och får inte skriva över ett fungerande state. Återgå till det giltiga tillståndet, kör exemplet igen och bifoga relevanta maskerade loggar. Dessa artefakter ger ett framtida rollback-beslut konkreta bevis.
Säkerhetskopiera det state som Trilium Notes inte kan återskapa
Definiera recovery point och recovery time för Trilium Notes utifrån document.db, bilagor, revisioner och konfiguration. Montera /home/node/trilium-data före bootstrap, skriv ofarliga exempeldata och byt ut containern för att bevisa att sökvägen faktiskt är persistent. En named volume löser persistence vid redeploy; den löser inte en kompromettering eller förlust av servern.
Bygg en ren restore-miljö, använd samma pinnade applikationsversion och bevisa att anteckningar, relationer, bilagor, attribut och revisioner återkommer och att den kända sökningen hittar samma anteckning. Dokumentera kommandon, ägarskapskorrigeringar och tidsåtgång. Backup-guiden är en användbar standard: en backup är tillförlitlig efter en återställning, inte efter en uppladdning.
Välj Trilium Notes trust boundary
Stäng bootstrap-fönstret så snart den första betrodda administratören finns. Trilium Notes konkreta fallgrop är att exponera en personlig kunskapsbas utan en stark inloggning; den säkrare gränsen är att behandla anteckningsboken som privat data, kräva en stark inloggning och inte exponera mer av filsystemet än datakatalogen.
TRILIUM_DATA_DIR styr beteendet snarare än konfidentialiteten; validera dess typ och värde och lagra riktiga Trilium Notes-credentials separat. Privat nätverk ska bära credentials för beroenden, och rollerna inuti Trilium Notes ska ge minsta användbara behörighet. Se till att känsliga request bodies och provider-svar inte hamnar i rutinloggar.
Vad Dockup bör automatisera för Trilium Notes
För Trilium Notes kan Dockup skapa routen och TLS-certifikatet, bevara mounts, leverera secrets och placera en beständig datakatalog samt tillräckligt med minne för indexering på privat nätverk, samtidigt som deployment kan ske antingen till Dockup eller anslutna servrar.
Release-gaten är fortfarande den konkreta Trilium Notes-transaktionen: skapa länkade anteckningar, lägga till en bilaga och en relation, söka efter dem och verifiera revisionshistoriken efter en omstart. Verifiera också restore-villkoret – anteckningar, relationer, bilagor, attribut och revisioner återkommer och den kända sökningen hittar samma anteckning. De två kontrollerna visar om deploymenten fungerar och om den kan återställas.
Vanliga frågor
Vad behöver Trilium Notes för en produktionsdeployment?
Routa Trilium Notes-containern på port 8080 via en HTTPS-origin. Det lokala runtime-kravet är en beständig datakatalog och tillräckligt med minne för indexering. Kalla inte Trilium Notes redo förrän du kan skapa länkade anteckningar, lägga till en bilaga och en relation, söka efter dem och verifiera revisionshistoriken efter en omstart.
Vilka Trilium Notes-data ska ingå i en backup?
Spara /home/node/trilium-data och inkludera document.db, bilagor, revisioner och konfiguration i samma recovery manifest. En ren Trilium Notes-restore är godkänd först när anteckningar, relationer, bilagor, attribut och revisioner återkommer och den kända sökningen hittar samma anteckning.
Kräver Trilium Notes HTTPS bakom en reverse proxy?
Använd HTTPS för den publika Trilium Notes-originen och behåll port 8080 på den interna rutten. Tillämpa Trilium Notes-inställningen korrekt: publicera webbgränssnittet via HTTPS med WebSockets bevarade. För Trilium Notes skyddar HTTPS credentials eller användarinnehåll under överföring och håller origin-känsligt klientbeteende konsekvent.
Hur bör en Trilium Notes-uppgradering testas?
Återställ aktuell Trilium Notes-state till en isolerad deployment, tillämpa kandidatversionen och upprepa dess acceptanstransaktion. Var särskilt uppmärksam eftersom TriliumNext-migreringar, script och theme extensions bör testas på en duplicerad datakatalog. Behåll den tidigare Trilium Notes-imagen tills gränserna för datamigrering och rollback är förstådda.
