Günlük diziniDockup / saha notu
Note / self-host-trilium

2026'da Trilium Notes'i Kendi Sunucunuzda Barındırma: Veri Dizini, WebSockets ve Yedekler

Docker, portlar, kalıcı veriler, TLS, güvenlik, yedekler ve production kullanımını engelleyen sorunları kapsayan pratik bir Trilium Notes'i kendi sunucunuzda barındırma rehberi.

Bir Trilium Notes container'ı yeşil durumda görünürken kullanıcıların önem verdiği iş bozuk olabilir. Trilium Notes'te bu gizli hata genellikle veri dizininin yanlış path'e mount edilmesi veya yazılabilir olmamasıdır. Bu rehberde “bağlantılı notlar oluşturma, bir ek ve ilişki ekleme, bunları arama ve yeniden başlatma sonrasında revision history'yi doğrulama” işlemlerini kabul testi olarak ele alıyor ve deployment'ı bu sonucu temel alarak geriye doğru tasarlıyoruz.

Trilium Notes'in stack içindeki rolü özeldir: ağaç yapısına sahip kişisel bir knowledge base. Bu nedenle production sorusu, 8080 portunun bir kez yanıt verip vermediği değil; restart, update ve restore sonrasında state'in, bağımlılıkların ve public adresin uyumlu kalıp kalmadığıdır.

Docker'a dokunmadan önce Trilium Notes'i haritalayın

Trilium Notes HTTP process'i 8080 portunu dinler; bu portu application network üzerinde tutun ve yalnızca platform route'unu publish edin. Local runtime gereksinimi kalıcı bir data directory ve indexing için yeterli memory'dir. Bunu acceptance workload altında doğrulayın; boşta çalışan bir health check, kaynağın yeterli olduğunu kanıtlayamaz.

Sınırı kısa bir contract olarak yazın: gereksinimin sahibi kim, hangi credential kullanılıyor, kabul edilebilir timeout nedir ve hata nasıl görünür? Ardından şu transaction'ı çalıştırın: bağlantılı notlar oluşturun, bir ek ve ilişki ekleyin, bunları arayın ve restart sonrasında revision history'yi doğrulayın. Çalışma sırasında note indexing'i, attachment size'ı, scripting'i ve document.db büyümesini gözlemleyin; çünkü bu workload, boşta çalışan bir container'dan daha kullanışlı bir başlangıç boyutu sağlar.

Trilium Notes'i sunucunun dışından test edin

Trilium Notes için tek bir HTTPS hostname expose edin; ham 8080 portunu private tutun. Web UI'ı WebSockets korunacak şekilde HTTPS üzerinden publish edin. Böylece browser'ların ve API client'larının birbiriyle yarışan iki farklı adres öğrenmesi önlenir.

Temiz bir client'tan bilinen iyi transaction'ı çalıştırın ve ilk başarısız request'i inceleyin. DNS veya TLS hatalıysa custom-domain rehberini kullanın. Route doğrulandıktan sonra “veri dizini yanlış path'e mount edilmiş veya yazılabilir değil” durumunu ayrı bir application diagnosis olarak ele alın.

Trilium Notes'i gözlemlenebilir varsayılanlarla başlatın

Production'a uygun bir launch özellikle sıradandır: named state, açıkça belirtilmiş port ve image içinde secret bulunmaması.

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

Bu örnek, supporting stack'in tamamı değil, bir baseline'dır. Expose işleminden önce local gereksinimi doğrulayın: kalıcı bir data directory ve indexing için yeterli memory. Effective mount'ları ve listener'ı kontrol edin, ardından bağlantılı notlar oluşturmayı, bir ek ve ilişki eklemeyi, bunları aramayı ve restart sonrasında revision history'yi doğrulamayı deneyin. Bir sonraki restart'tan önce çalışan image'ı pinleyin.

Yalnızca container'ı değil, workload'u izleyin

Trilium Notes'in gerçekleştirdiği işleri gözlemleyin: note indexing, attachment size, scripting ve document.db büyümesi. Bu işler için headroom bırakacak limitler belirleyin ve bunlarla yarışan bir liveness probe kullanmaktan kaçının. Operator check'i yine de belirli aralıklarla bağlantılı notlar oluşturmayı, bir ek ve ilişki eklemeyi, bunları aramayı ve restart sonrasında revision history'yi doğrulamayı denemelidir.

Update'ler için TriliumNext migrations, scripts ve theme extensions'ın duplicate bir data directory üzerinde test edilmesi gerektiğini unutmayın. Candidate'ı recovered bir copy üzerinde deploy edin ve bilinen testi tekrarlayın. Veri dizini yanlış path'e mount edilmiş veya yazılabilir değilse, hangi varsayımın değiştiğini bulmak için runtime log'larını ve gerçek network request'ini kullanın.

Gerçek Trilium Notes verileri gelmeden önce geçmesi gerekenler

Trilium Notes için release record'unda “iyi görünüyor” gibi ifadeler değil, gerçekler bulunmalıdır. Seçilen image digest'ini, configuration checksum'ını, public hostname'i ve şu işlem için timestamp içeren sonucu kaydedin: bağlantılı notlar oluşturma, bir ek ve ilişki ekleme, bunları arama ve restart sonrasında revision history'yi doğrulama. Kontrolün her deployment sonrasında çalıştırılabilmesi için production dışı örnek veriler kullanın.

İki lifecycle event'ini ayrı ayrı kanıtlayın. Container replacement normal çalışmayı korumalıdır; clean recovery ise notların, ilişkilerin, eklerin, attribute'ların ve revision'ların geri geldiğini ve bilinen aramanın aynı notu bulduğunu göstermelidir. Kontroller çalışırken note indexing'i, attachment size'ı, scripting'i ve document.db büyümesini ölçün; sonucu bu version için beklenen envelope olarak saklayın.

Denied veya invalid bir koşulu da test edin: bu sınırla ilişkili kaynak ya da format limitinin yakınında zararsız bir input gönderin: veri dizini yanlış path'e mount edilmiş veya yazılabilir değil. Trilium Notes, teşhis edilebilir bir şekilde başarısız olmalı ve sağlıklı state'in üzerine yazmamalıdır. Geçerli koşula dönün, örneği yeniden çalıştırın ve ilgili redacted log'ları ekleyin. Bu artifact'ler, gelecekteki rollback kararına somut kanıt sağlar.

Trilium Notes'in yeniden oluşturamayacağı state'i yedekleyin

Trilium Notes için recovery point ve recovery time hedeflerini document.db, ekler, revision'lar ve configuration üzerinden tanımlayın. Bootstrap işleminden önce /home/node/trilium-data dizinini mount edin, zararsız örnek veriler yazın ve bu path'in gerçekten kalıcı olduğunu kanıtlamak için container'ı değiştirin. Named volume, redeploy sonrasında persistence sorununu çözer; compromise veya server loss sorununu çözmez.

Temiz bir restore environment oluşturun, aynı pinlenmiş application version'ı kullanın ve notların, ilişkilerin, eklerin, attribute'ların ve revision'ların geri geldiğini ve bilinen aramanın aynı notu bulduğunu kanıtlayın. Komutları, ownership düzeltmelerini ve geçen süreyi kaydedin. Backup rehberi yararlı bir standarttır: bir backup, upload sonrasında değil restore sonrasında güvenilir kabul edilir.

Trilium Notes trust boundary'sini seçin

İlk trusted administrator oluşturulur oluşturulmaz bootstrap window'u kapatın. Trilium Notes'in somut tuzağı, kişisel bir knowledge base'i güçlü bir login olmadan expose etmektir; daha güvenli boundary, notebook'u private data olarak ele almak, güçlü login zorunlu kılmak ve data directory'nin ötesinde bir filesystem alanını expose etmemektir.

TRILIUM_DATA_DIR, confidentiality yerine davranışı kontrol eder; türünü ve değerini doğrulayın ve gerçek Trilium Notes credential'larını ayrı saklayın. Private networking dependency credential'larını taşımalı, Trilium Notes içindeki roller ise gerekli en küçük işlemi vermelidir. Hassas request body'lerini ve provider response'larını rutin log'ların dışında tutun.

Dockup Trilium Notes için neleri otomatikleştirmeli?

Trilium Notes için Dockup route'u ve TLS certificate'ı oluşturabilir, mount'ları koruyabilir, secret'ları iletebilir ve private networking üzerinde kalıcı bir data directory ile indexing için yeterli memory sağlayabilir; deployment'ı Dockup'a veya bağlı server'lara yapabilir.

Release gate yine somut Trilium Notes transaction'ıdır: bağlantılı notlar oluşturma, bir ek ve ilişki ekleme, bunları arama ve restart sonrasında revision history'yi doğrulama. Ayrıca restore koşulunu da doğrulayın — notlar, ilişkiler, ekler, attribute'lar ve revision'lar geri gelmeli ve bilinen arama aynı notu bulmalıdır. Bu iki kontrol, deployment'ın çalışıp çalışmadığını ve kurtarılıp kurtarılamadığını gösterir.

Sık sorulan sorular

Production deployment için Trilium Notes'in neye ihtiyacı vardır?

Trilium Notes container'ını 8080 portu üzerinden tek bir HTTPS origin'e route edin. Local runtime gereksinimi kalıcı bir data directory ve indexing için yeterli memory'dir. Bağlantılı notlar oluşturamıyor, bir ek ve ilişki ekleyemiyor, bunları arayamıyor ve restart sonrasında revision history'yi doğrulayamıyorsanız Trilium Notes'i hazır kabul etmeyin.

Hangi Trilium Notes verileri backup'a dahil edilmelidir?

/home/node/trilium-data dizinini persist edin ve document.db, ekleri, revision'ları ve configuration'ı aynı recovery manifest'ine dahil edin. Temiz bir Trilium Notes restore işlemi yalnızca notlar, ilişkiler, ekler, attribute'lar ve revision'lar geri geldiğinde ve bilinen arama aynı notu bulduğunda başarılı kabul edilir.

Trilium Notes reverse proxy arkasında HTTPS gerektirir mi?

Public Trilium Notes origin'i için HTTPS kullanın ve 8080 portunu internal route üzerinde tutun. Trilium Notes ayarını doğru uygulayın: Web UI'ı WebSockets korunacak şekilde HTTPS üzerinden publish edin. Trilium Notes için HTTPS, credentials veya user content'in transit sırasında korunmasını ve origin'e duyarlı client davranışının tutarlı kalmasını sağlar.

Bir Trilium Notes upgrade'i nasıl test edilmelidir?

Mevcut Trilium Notes state'ini isolated bir deployment'a restore edin, candidate version'ı uygulayın ve acceptance transaction'ını tekrarlayın. TriliumNext migrations, scripts ve theme extensions'ın duplicate bir data directory üzerinde test edilmesi gerektiğinden bu noktaya özellikle dikkat edin. Data migration ve rollback boundary'leri anlaşılana kadar önceki Trilium Notes image'ını saklayın.