Індекс журналуDockup / польова нотатка
Note / self-host-trilium

Як розгорнути Trilium Notes на власному сервері у 2026 році: каталог даних, WebSockets і резервні копії

Практичний посібник із самостійного розгортання Trilium Notes: Docker, порти, постійне зберігання даних, TLS, безпека, резервні копії та проблеми, які заважають використовувати систему в production.

Контейнер Trilium Notes може мати статус green, хоча основна потрібна користувачам функція не працює. У Trilium Notes прихована проблема зазвичай полягає в тому, що каталог даних підключено не за тим шляхом або він недоступний для запису. У цьому посібнику приймальним тестом є «створити пов’язані нотатки, додати вкладення та зв’язок, знайти їх і перевірити історію версій після перезапуску», а розгортання будується у зворотному напрямку — від цього результату.

Trilium Notes виконує в стеку конкретну роль: це персональна база знань із деревоподібною структурою. Тому в production важливо не те, чи відповість порт 8080 один раз, а те, чи залишатимуться узгодженими стан, залежності та публічна адреса після перезапуску, оновлення й відновлення.

Вивчіть Trilium Notes перед роботою з Docker

HTTP-процес Trilium Notes прослуховує порт 8080; залиште цей порт у мережі застосунку, а назовні опублікуйте лише маршрут платформи. Локальна вимога середовища виконання — надійний каталог даних і достатній обсяг пам’яті для індексації. Перевірте це під час виконання приймального навантаження: перевірка простою не може підтвердити достатність ресурсів.

Зафіксуйте межі у вигляді короткого контракту: хто відповідає за вимогу, які облікові дані використовуються, який timeout є прийнятним і як саме проявляється помилка. Потім виконайте цю транзакцію: створіть пов’язані нотатки, додайте вкладення та зв’язок, знайдіть їх і перевірте історію версій після перезапуску. Під час виконання спостерігайте за індексацією нотаток, розміром вкладень, скриптами та зростанням document.db, оскільки це навантаження дає корисніший початковий розмір, ніж контейнер у стані простою.

Перевірте Trilium Notes із зовнішнього боку сервера

Використовуйте одне HTTPS-ім’я хоста для Trilium Notes, а необроблений порт 8080 залиште приватним. Публікуйте вебінтерфейс через HTTPS зі збереженням WebSockets. Це не дає браузерам і API-клієнтам отримувати дві адреси, що конкурують між собою.

Із чистого клієнта виконайте відому робочу транзакцію та перевірте перший запит, який завершився помилкою. Якщо проблема пов’язана з DNS або TLS, скористайтеся посібником із користувацьких доменів. Якщо маршрут уже підтверджено, розглядайте «каталог даних підключено не за тим шляхом або він недоступний для запису» як окрему діагностику застосунку.

Запустіть Trilium Notes із параметрами, зручними для спостереження

Запуск, наближений до production, навмисно простий: іменований стан, явний порт і жодних секретів усередині 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

Цей приклад є базовою конфігурацією, а не повним стеком супровідних компонентів. Перед публікацією підтвердьте локальну вимогу: надійний каталог даних і достатній обсяг пам’яті для індексації. Перевірте фактичні mounts і listener, а потім спробуйте створити пов’язані нотатки, додати вкладення та зв’язок, знайти їх і перевірити історію версій після перезапуску. До наступного перезапуску зафіксуйте робочий image.

Спостерігайте за навантаженням, а не лише за контейнером

Спостерігайте за роботою Trilium Notes: індексацією нотаток, розміром вкладень, скриптами та зростанням document.db. Встановлюйте ліміти із запасом для цього навантаження й не використовуйте liveness probe, який конкурує з ним за ресурси. Перевірка оператора все одно має регулярно виконувати спробу створити пов’язані нотатки, додати вкладення та зв’язок, знайти їх і перевірити історію версій після перезапуску.

Під час оновлень пам’ятайте, що міграції TriliumNext, скрипти та theme extensions потрібно тестувати на дубльованому каталозі даних. Розгорніть candidate-версію на відновленій копії та повторіть відомий тест. Якщо каталог даних підключено не за тим шляхом або він недоступний для запису, використовуйте runtime logs і фактичний мережевий запит, щоб визначити, яке припущення змінилося.

Що має пройти до появи реальних даних Trilium Notes

У записі про реліз Trilium Notes потрібні факти, а не формулювання «виглядає добре». Збережіть digest вибраного image, checksum конфігурації, публічне ім’я хоста та результат із timestamp для таких дій: створити пов’язані нотатки, додати вкладення та зв’язок, знайти їх і перевірити історію версій після перезапуску. Використовуйте тестові дані, не пов’язані з production, щоб перевірку можна було виконувати після кожного розгортання.

Доведіть окремо два сценарії життєвого циклу. Заміна контейнера має зберігати нормальну роботу, а чисте відновлення має показати, що нотатки, зв’язки, вкладення, атрибути та версії повернулися, а відомий пошук знаходить ту саму нотатку. Поки тривають перевірки, вимірюйте індексацію нотаток, розмір вкладень, роботу скриптів і зростання document.db, а результат зберігайте як очікуваний envelope для цієї версії.

Також перевірте заборонену або некоректну умову: передайте безпечні тестові дані поблизу обмеження ресурсу чи формату, пов’язаного з цією межею: каталог даних підключено не за тим шляхом або він недоступний для запису. Trilium Notes має завершитися у спосіб, придатний для діагностики, і не повинен перезаписати коректний стан. Поверніть валідну умову, повторно запустіть тест і додайте відповідні logs із видаленими конфіденційними даними. Ці артефакти дають майбутньому рішенню про rollback конкретні докази.

Створюйте резервні копії стану, який Trilium Notes не може відтворити

Визначте recovery point і recovery time для Trilium Notes у термінах document.db, вкладень, версій і конфігурації. Підключіть /home/node/trilium-data до bootstrap, запишіть безпечні тестові дані та замініть контейнер, щоб довести фактичну постійність цього шляху. Іменований volume вирішує проблему збереження даних під час повторного розгортання, але не захищає від компрометації чи втрати сервера.

Підготуйте чисте середовище відновлення, використайте ту саму зафіксовану версію застосунку та підтвердьте, що нотатки, зв’язки, вкладення, атрибути й версії повернулися, а відомий пошук знаходить ту саму нотатку. Запишіть команди, виправлення ownership і витрачений час. Посібник із резервного копіювання задає корисний стандарт: резервна копія вважається надійною після відновлення, а не після завантаження.

Визначте межу довіри Trilium Notes

Закрийте bootstrap-вікно одразу після появи першого довіреного адміністратора. Конкретна пастка Trilium Notes — відкрити персональну базу знань без надійної автентифікації; безпечніший підхід — вважати notebook приватними даними, вимагати надійний login і не відкривати файлову систему ширше, ніж його каталог даних.

TRILIUM_DATA_DIR визначає поведінку, а не конфіденційність; перевіряйте його тип і значення, а справжні облікові дані Trilium Notes зберігайте окремо. Приватна мережа має передавати облікові дані залежностей, а ролі всередині Trilium Notes — надавати мінімально необхідні дії. Не записуйте чутливі тіла запитів і відповіді провайдерів у звичайні logs.

Що Dockup має автоматизувати для Trilium Notes

Для Trilium Notes Dockup може створити маршрут і TLS-сертифікат, зберегти mounts, передати secrets і розмістити на приватній мережі надійний каталог даних та достатній обсяг пам’яті для індексації під час розгортання в Dockup або на підключених серверах.

Критерієм випуску все одно залишається конкретна транзакція Trilium Notes: створити пов’язані нотатки, додати вкладення та зв’язок, знайти їх і перевірити історію версій після перезапуску. Також перевірте умову відновлення — нотатки, зв’язки, вкладення, атрибути й версії повертаються, а відомий пошук знаходить ту саму нотатку. Ці дві перевірки показують, чи працює розгортання і чи можна його відновити.

Поширені запитання

Що потрібно Trilium Notes для розгортання в production?

Прокладіть маршрут від контейнера Trilium Notes на порту 8080 через один HTTPS origin. Локальна вимога середовища виконання — надійний каталог даних і достатній обсяг пам’яті для індексації. Не вважайте Trilium Notes готовим, доки не зможете створити пов’язані нотатки, додати вкладення та зв’язок, знайти їх і перевірити історію версій після перезапуску.

Які дані Trilium Notes мають входити до резервної копії?

Зберігайте /home/node/trilium-data і включайте document.db, вкладення, версії та конфігурацію до одного recovery manifest. Чисте відновлення Trilium Notes вважається успішним лише тоді, коли нотатки, зв’язки, вкладення, атрибути й версії повернулися, а відомий пошук знаходить ту саму нотатку.

Чи потрібен Trilium Notes HTTPS за reverse proxy?

Використовуйте HTTPS для публічного origin Trilium Notes, а порт 8080 залиште на внутрішньому маршруті. Правильно застосуйте налаштування Trilium Notes: публікуйте вебінтерфейс через HTTPS зі збереженням WebSockets. Для Trilium Notes HTTPS захищає облікові дані або вміст користувачів під час передавання та забезпечує узгоджену поведінку клієнта, чутливу до origin.

Як тестувати оновлення Trilium Notes?

Відновіть поточний стан Trilium Notes в ізольованому розгортанні, застосуйте candidate-версію та повторіть приймальну транзакцію. Приділіть особливу увагу тому, що міграції TriliumNext, скрипти й theme extensions потрібно тестувати на дубльованому каталозі даних. Зберігайте попередній image Trilium Notes, доки не зрозумієте межі міграції даних і rollback.