8.2.16 Установка Trilium Notes

The Host Banner Trilium

Trilium Notes — это мощное и гибкое open-source-приложение для ведения иерархических заметок, которое сочетает в себе функции полнотекстового редактора, базы знаний и менеджера личной информации. Платформа поддерживает WYSIWYG-и Markdown-редактирование, вложения любых файлов, тегирование, быстрый поиск и версионирование каждой записи. Встроенное шифрование обеспечивает безопасность ваших данных, а механизм синхронизации позволяет бесшовно работать с одной и той же базой заметок одновременно на настольном клиенте, мобильном устройстве и через веб-интерфейс. Благодаря API, WebDAV-доступу и возможностям кастомизации Trilium легко интегрируется в существующие рабочие процессы и подходит как для личных заметок, так и для командных проектов.

Подготовка сервера

Требования

Переменные, которые нужно заменить

  • TRILIUM_VERSION– тег образа Trilium в docker-compose.yml (например latest, 0.63.4);
  • YOUR_USER– системное имя пользователя в пути WorkingDirectory=/home/YOUR_USER/trilium;
  • SERVER_IP– публичный IP-адрес сервера, который подставляется в ссылку http://SERVER_IP:8080;
  • YOUR_DOMAIN– Ваше доменное имя.

Установка Trilium

Для начала создадим директорию для нашего приложения:

mkdir ~/trilium && cd ~/trilium

Теперь создадим docker-compose.ymlфайл, в котором укажем желаемую версию для Trilium, в нашем случае это latest, но Вы можете использовать любую доступную:

version: '3.8'
services:
  trilium:
    image: zadam/trilium:latest
    container_name: trilium
    restart: unless-stopped
    ports:
      - "8080:8080"
    volumes:
      - ./data:/home/node/trilium-data

Примечание: Каталог ./data будет содержать все заметки и настройки. Он монтируется внутрь контейнера.

docker compose up -d

docker compose up -d

Контейнер будет запущен в фоновом режиме. Trilium станет доступен по адресу http://SERVER_IP:8080

Настройка HTTPS (рекомендуется)

Хотя Trilium по умолчанию публикует веб-интерфейс по незашифрованному HTTP-порту 8080, указывать пароли и обмениваться заметками безопаснее через TLS. Это удобно сделать следующим способом:

Обратный прокси (Nginx / Caddy / Traefik).

Запускаем прокси на порту 443 TCP, а контейнер Trilium оставляем слушать 8080 только на localhost.*

  • Создайте виртуальный хост YOUR_DOMAIN, пропишите правило proxy_pass http://127.0.0.1:8080.
  • Выпустите сертификат Let’s Encrypt через Certbot:
    sudo certbot --nginx -d trilium.example.com
    
  • Certbot автоматически пропишет директивы ssl_certificate и настроит авто-продление.

Совет: подробная инструкция по выпуску Let’s Encrypt-сертификатов с Certbot доступна в нашей статье.

Настройка автозапуска

Чтобы Trilium автоматически запускался при старте системы необходимо создать systemd-сервиса. Для этого выполните команду:

sudo nano /etc/systemd/system/trilium.service

Вставьте содержимое:

[Unit]
Description=Trilium Notes (via Docker Compose)
Requires=docker.service
After=docker.service

[Service]
WorkingDirectory=/home/YOUR_USER/trilium
ExecStart=/usr/bin/docker compose up -d
ExecStop=/usr/bin/docker compose down
Restart=always
TimeoutStartSec=0
RemainAfterExit=true

[Install]
WantedBy=multi-user.target

Активируйте сервис:

sudo systemctl daemon-reexec
sudo systemctl enable trilium
sudo systemctl start trilium

Проверка работы

  1. Откройте http://SERVER_IP:8080 в браузере

  2. В появившемся окне выберите пункт, который подходит для Вас:

  3. Убедитесь, что открывается веб-интерфейс Trilium

trilium welcome page

  1. Проверьте логи:
docker compose logs -f

docker compose logs

Распространённые ошибки
Ошибка Причина Решение
8080 порт занят На сервере уже используется Измените порт в docker-compose.yml
Данные не сохраняются Не подключён том Проверьте volumes: и права доступа
Не запускается при перезагрузке systemd не настроен Выполните systemctl enable trilium