Ευρετήριο ημερολογίουDockup / σημείωση πεδίου
Note / self-host-trilium

Πώς να κάνετε self-host το Trilium Notes το 2026: κατάλογος δεδομένων, WebSockets και backups

Πρακτικός οδηγός για self-hosting του Trilium Notes με Docker, ports, persistent data, TLS, ασφάλεια, backups και τις αστοχίες που εμποδίζουν τη χρήση σε production.

Ένα container του Trilium Notes μπορεί να εμφανίζεται ως healthy, ενώ η λειτουργία που ενδιαφέρει τους χρήστες να έχει αποτύχει. Στο Trilium Notes, αυτή η κρυφή αστοχία συνήθως οφείλεται στο ότι ο κατάλογος δεδομένων έχει γίνει mount σε λάθος path ή δεν είναι εγγράψιμος. Ο οδηγός αυτός αντιμετωπίζει ως acceptance test τη διαδικασία «δημιουργία συνδεδεμένων σημειώσεων, προσθήκη attachment και relation, αναζήτησή τους και επαλήθευση του revision history μετά από restart» και σχεδιάζει το deployment με βάση αυτό το αποτέλεσμα.

Το Trilium Notes έχει συγκεκριμένο ρόλο στο stack: είναι μια personal knowledge base με δενδροειδή δομή. Επομένως, το ερώτημα για production δεν είναι αν το port 8080 απαντά μία φορά, αλλά αν το state, οι dependencies και το public address συνεχίζουν να συμφωνούν μετά από restart, update και restore.

Χαρτογραφήστε το Trilium Notes πριν αγγίξετε το Docker

Η HTTP process του Trilium Notes ακούει στο 8080· κρατήστε αυτό το port στο application network και δημοσιεύστε μόνο το platform route. Η απαίτηση του local runtime είναι ένας durable data directory και αρκετή μνήμη για indexing. Επικυρώστε τα υπό το acceptance workload· ένα idle health check δεν μπορεί να αποδείξει ότι ο πόρος επαρκεί.

Καταγράψτε το boundary ως ένα σύντομο contract: ποιος έχει την ευθύνη για την απαίτηση, ποιο credential χρησιμοποιείται, ποιο timeout είναι αποδεκτό και πώς εμφανίζεται η αποτυχία. Στη συνέχεια εκτελέστε αυτή τη συναλλαγή: δημιουργήστε συνδεδεμένες σημειώσεις, προσθέστε ένα attachment και relation, αναζητήστε τα και επαληθεύστε το revision history μετά από restart. Παρατηρήστε το note indexing, το attachment size, το scripting και την αύξηση του document.db κατά την εκτέλεση, επειδή αυτό το workload δίνει πιο χρήσιμο αρχικό μέγεθος από ένα idle container.

Δοκιμάστε το Trilium Notes εκτός του server

Εκθέστε ένα HTTPS hostname για το Trilium Notes· κρατήστε το raw port 8080 private. Δημοσιεύστε το web UI μέσω HTTPS με διατηρημένα τα WebSockets. Έτσι αποτρέπετε τα browsers και τα API clients από το να γνωρίζουν δύο ανταγωνιστικά addresses.

Από έναν clean client, εκτελέστε τη γνωστή σωστή συναλλαγή και ελέγξτε το πρώτο request που αποτυγχάνει. Χρησιμοποιήστε τον οδηγό για custom domain όταν υπάρχει πρόβλημα με το DNS ή το TLS. Αντιμετωπίστε το «ο κατάλογος δεδομένων έχει γίνει mount σε λάθος path ή δεν είναι εγγράψιμος» ως ξεχωριστή διάγνωση της εφαρμογής, αφού επιβεβαιωθεί το route.

Εκκινήστε το Trilium Notes με observable defaults

Ένα launch με μορφή production είναι σκόπιμα απλό: named state, explicit port και κανένα secret μέσα στο 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

Το παράδειγμα αποτελεί baseline και όχι ολοκληρωμένο supporting stack. Επιβεβαιώστε την απαίτηση του local runtime πριν από την έκθεση: έναν durable data directory και αρκετή μνήμη για indexing. Ελέγξτε τα effective mounts και τον listener και, στη συνέχεια, προσπαθήστε να δημιουργήσετε συνδεδεμένες σημειώσεις, να προσθέσετε ένα attachment και relation, να αναζητήσετε τα στοιχεία και να επαληθεύσετε το revision history μετά από restart. Κάντε pin το working image πριν από το επόμενο restart.

Παρακολουθήστε το workload, όχι μόνο το container

Παρατηρήστε την εργασία που εκτελεί το Trilium Notes: note indexing, attachment size, scripting και την αύξηση του document.db. Ορίστε limits με headroom για αυτή την εργασία και αποφύγετε ένα liveness probe που την ανταγωνίζεται. Ο operator check θα πρέπει και πάλι να επιχειρεί, βάσει schedule, να δημιουργήσει συνδεδεμένες σημειώσεις, να προσθέσει ένα attachment και relation, να αναζητήσει τα στοιχεία και να επαληθεύσει το revision history μετά από restart.

Για τα updates, θυμηθείτε ότι τα migrations, τα scripts και τα theme extensions του TriliumNext πρέπει να δοκιμάζονται σε duplicate data directory. Κάντε deploy το candidate σε ένα recovered copy και επαναλάβετε το γνωστό test. Αν ο κατάλογος δεδομένων έχει γίνει mount σε λάθος path ή δεν είναι εγγράψιμος, χρησιμοποιήστε τα runtime logs και το πραγματικό network request για να εντοπίσετε ποια παραδοχή άλλαξε.

Τι πρέπει να περνά πριν φτάσουν πραγματικά δεδομένα στο Trilium Notes

Το release record για το Trilium Notes χρειάζεται facts, όχι «φαίνεται εντάξει». Αποθηκεύστε το επιλεγμένο image digest, το configuration checksum, το public hostname και ένα timestamped αποτέλεσμα για: δημιουργία συνδεδεμένων σημειώσεων, προσθήκη attachment και relation, αναζήτηση και επαλήθευση του revision history μετά από restart. Χρησιμοποιήστε sample data εκτός production, ώστε ο έλεγχος να μπορεί να εκτελείται μετά από κάθε deployment.

Αποδείξτε ξεχωριστά δύο lifecycle events. Η αντικατάσταση ενός container πρέπει να διατηρεί την κανονική λειτουργία· ένα clean recovery πρέπει να δείχνει ότι οι σημειώσεις, οι relations, τα attachments, τα attributes και τα revisions επανέρχονται και ότι η γνωστή αναζήτηση βρίσκει την ίδια σημείωση. Όσο εκτελούνται οι έλεγχοι, μετρήστε το note indexing, το attachment size, το scripting και την αύξηση του document.db και διατηρήστε το αποτέλεσμα ως το αναμενόμενο envelope για αυτή την έκδοση.

Δοκιμάστε επίσης μια denied ή invalid condition: υποβάλετε harmless input κοντά στο όριο πόρου ή format που σχετίζεται με αυτό το boundary: ο κατάλογος δεδομένων έχει γίνει mount σε λάθος path ή δεν είναι εγγράψιμος. Το Trilium Notes πρέπει να αποτυγχάνει με τρόπο που επιτρέπει τη διάγνωση και δεν πρέπει να αντικαθιστά το healthy state. Επαναφέρετε τη valid condition, εκτελέστε ξανά το sample και επισυνάψτε τα σχετικά redacted logs. Αυτά τα artifacts παρέχουν συγκεκριμένα στοιχεία για μια μελλοντική απόφαση rollback.

Κάντε backup του state που δεν μπορεί να αναδημιουργήσει το Trilium Notes

Ορίστε το recovery point και το recovery time για το Trilium Notes με βάση τα document.db, attachments, revisions και configuration. Κάντε mount το /home/node/trilium-data πριν από το bootstrap, γράψτε harmless sample data και αντικαταστήστε το container για να αποδείξετε ότι το path είναι πράγματι persistent. Ένα named volume λύνει το persistence σε redeploy· δεν λύνει όμως το πρόβλημα ενός compromise ή της απώλειας του server.

Δημιουργήστε ένα clean restore environment, χρησιμοποιήστε την ίδια pinned application version και αποδείξτε ότι οι σημειώσεις, οι relations, τα attachments, τα attributes και τα revisions επανέρχονται και ότι η γνωστή αναζήτηση βρίσκει την ίδια σημείωση. Καταγράψτε τις commands, τις διορθώσεις ownership και τον χρόνο που χρειάστηκε. Ο οδηγός backup αποτελεί χρήσιμο standard: ένα backup είναι αξιόπιστο μετά το restoration και όχι μετά το upload.

Επιλέξτε το trust boundary του Trilium Notes

Κλείστε το bootstrap window μόλις υπάρξει ο πρώτος trusted administrator. Η συγκεκριμένη παγίδα του Trilium Notes είναι η έκθεση μιας personal knowledge base χωρίς ισχυρό login· το ασφαλέστερο boundary είναι να αντιμετωπίζετε το notebook ως private data, να απαιτείτε strong login και να μην εκθέτετε ευρύτερο filesystem από τον data directory του.

Το TRILIUM_DATA_DIR ελέγχει τη συμπεριφορά και όχι την confidentiality· επικυρώστε τον τύπο και την τιμή του και αποθηκεύστε τα πραγματικά credentials του Trilium Notes ξεχωριστά. Η private networking πρέπει να μεταφέρει τα dependency credentials και οι ρόλοι μέσα στο Trilium Notes πρέπει να παρέχουν το ελάχιστο χρήσιμο action. Κρατήστε τα sensitive request bodies και τα provider responses εκτός των routine logs.

Τι πρέπει να αυτοματοποιεί το Dockup για το Trilium Notes

Για το Trilium Notes, το Dockup μπορεί να δημιουργεί το route και το TLS certificate, να διατηρεί τα mounts, να παρέχει τα secrets και να τοποθετεί έναν durable data directory και αρκετή μνήμη για indexing σε private networking, ενώ κάνει deploy είτε στο Dockup είτε σε attached servers.

Το release gate παραμένει η συγκεκριμένη συναλλαγή του Trilium Notes: δημιουργία συνδεδεμένων σημειώσεων, προσθήκη attachment και relation, αναζήτηση και επαλήθευση του revision history μετά από restart. Επαληθεύστε επίσης τη συνθήκη restore — οι σημειώσεις, οι relations, τα attachments, τα attributes και τα revisions επανέρχονται και η γνωστή αναζήτηση βρίσκει την ίδια σημείωση. Αυτοί οι δύο έλεγχοι δείχνουν αν το deployment λειτουργεί και αν μπορεί να γίνει recover.

Συχνές ερωτήσεις

Τι χρειάζεται το Trilium Notes για deployment σε production;

Κάντε route το container του Trilium Notes στο port 8080 μέσω ενός HTTPS origin. Η απαίτηση του local runtime είναι ένας durable data directory και αρκετή μνήμη για indexing. Μην θεωρήσετε το Trilium Notes έτοιμο μέχρι να μπορείτε να δημιουργήσετε συνδεδεμένες σημειώσεις, να προσθέσετε ένα attachment και relation, να αναζητήσετε τα στοιχεία και να επαληθεύσετε το revision history μετά από restart.

Ποια δεδομένα του Trilium Notes πρέπει να περιλαμβάνονται σε backup;

Κάντε persist το /home/node/trilium-data και συμπεριλάβετε τα document.db, attachments, revisions και configuration στο ίδιο recovery manifest. Ένα clean Trilium Notes restore θεωρείται επιτυχές μόνο όταν οι σημειώσεις, οι relations, τα attachments, τα attributes και τα revisions επανέρχονται και η γνωστή αναζήτηση βρίσκει την ίδια σημείωση.

Απαιτεί το Trilium Notes HTTPS πίσω από reverse proxy;

Χρησιμοποιήστε HTTPS για το public Trilium Notes origin και κρατήστε το port 8080 στο internal route. Εφαρμόστε σωστά τη ρύθμιση του Trilium Notes: δημοσιεύστε το web UI μέσω HTTPS με διατηρημένα τα WebSockets. Για το Trilium Notes, το HTTPS προστατεύει τα credentials ή το user content κατά τη μεταφορά και διατηρεί συνεπή τη client behavior που εξαρτάται από το origin.

Πώς πρέπει να δοκιμάζεται ένα upgrade του Trilium Notes;

Κάντε restore το τρέχον state του Trilium Notes σε ένα isolated deployment, εφαρμόστε την candidate version και επαναλάβετε το acceptance transaction. Δώστε ιδιαίτερη προσοχή, επειδή τα migrations, τα scripts και τα theme extensions του TriliumNext πρέπει να δοκιμάζονται σε duplicate data directory. Διατηρήστε το προηγούμενο Trilium Notes image μέχρι να γίνουν κατανοητά τα όρια του data migration και του rollback.