Установка сервера Joplin на Synology в контейнер Docker

Всем привет!!

В этом материале я расскажу как установить сервер Joplin на Synology в контейнер docker и синхронизировать заметки между разными устройствами.

Введение

Joplin — это кроссплатформенное приложение для ведения заметок с открытым исходным кодом, которое поддерживает синхронизацию между устройствами и предлагает альтернативу коммерческим решениям вроде Evernote или OneNote.

Основные возможности

  1. Шифрование данных
    — Поддержка сквозного шифрования (E2EE) для защиты конфиденциальных заметок.
    — Ключ шифрования хранится только у пользователя.
  2. Поддержка Markdown
    — Форматирование текста, таблиц, списков и вставка кода.
    — Режим WYSIWYG для тех, кто не знаком с Markdown.
  3. Синхронизация
    — Работает через Joplin Cloud, Dropbox, Nextcloud, WebDAV или собственный сервер.
    — Поддержка офлайн-редактирования.
  4. Организация заметок
    — Теги, папки и поиск по содержимому.
    — Возможность прикреплять файлы (PDF, изображения, аудио).
  5. Экспорт/импорт
    — Поддержка форматов: ENEX (Evernote), HTML, Markdown, PDF.

Joplin доступен практически на всех популярных платформах, включая мобильные и десктопные ОС, а также в виде терминального приложения. Не хватает только WEB версии. Вот полный список поддерживаемых платформ:

🖥 Десктопные приложения (официальные)

ПлатформаПоддержкаСсылка
Windows✅ (7, 10, 11)Скачать
macOS✅ (Intel/Apple Silicon)Скачать
Linux✅ (AppImage, Snap, Deb, RPM)Инструкции
Браузерные расширенияWeb Clipper для Chrome/Firefox

📱 Мобильные приложения (официальные)

ПлатформаПоддержкаСсылка
Android✅ (5.0+)Google Play
iOS/iPadOS✅ (12.0+)App Store

Сравнение Joplin и Synology Note Station:

КритерийJoplinSynology Note Station
Тип ПООткрытый исходный код (MIT License)Проприетарное (только для Synology)
ДоступностьКроссплатформенность (Win/macOS/Linux/Android/iOS)ПК(Windows/MacOS/Linux) + WEB + мобильные приложения (iOS/Android)
СинхронизацияПоддержка сторонних сервисов (Dropbox, WebDAV, S3, Joplin Cloud + собственный сервер)Только Synology NAS (через QuickConnect, DDNS, собственный домен)
ШифрованиеСквозное (E2EE) для заметок и файловШифрование на стороне сервера (AES-256)
ФорматированиеMarkdown + WYSIWYG редакторБогатый текстовый редактор (аналог Word)
ВложенияЛюбые файлы (до 250 МБ без настроек)Оптимизировано для изображений/PDF
API и интеграцииREST API для разработчиковНет публичного API
ЦенаБесплатноБесплатно (но требует покупки NAS)

Системные требования

Для запуска Joplin Server в Docker на Synology важно учитывать как требования самого Joplin, так и ограничения вашего NAS. Вот детальные системные требования и рекомендации:

🖥 Минимальные требования для Synology

КомпонентТребования
Модель NASПоддерживающая Docker (x86_64: DS218+, DS720+, DS920+ и новее)
CPU2-ядерный x64
RAM2 ГБ (4+ ГБ для >5 пользователей или больших баз заметок)
Хранение10+ ГБ
DSMDSM 7.2 и выше (Container Manager)

Установка

В каталоге docker создайте папку joplin, а в ней еще два каталога: storege и postgres

Откройте Container Manager и создайте новый проект с такой конфигурацией:

version: '3'

services:
  joplin_db:
    image: postgres:16
    container_name: joplin_db
    volumes:
      - ./postgres:/var/lib/postgresql/data
    environment:
      - POSTGRES_PASSWORD=joplin
      - POSTGRES_USER=joplin
      - POSTGRES_DB=joplin
    restart: unless-stopped

  joplin_app:
    image: joplin/server:latest
    container_name: joplin_app
    depends_on:
      - joplin_db
    ports:
      - "22300:22300"
    volumes:
      - ./storage:/var/lib/joplin
    environment:
      - APP_PORT=22300
      - APP_BASE_URL=https://joplin.XXX.synology.me  # замените на ваш домен или IP
      - DB_CLIENT=pg
      - POSTGRES_PASSWORD=joplin
      - POSTGRES_DATABASE=joplin
      - POSTGRES_USER=joplin
      - POSTGRES_PORT=5432
      - POSTGRES_HOST=joplin_db
      #- MAX_ITEM_SIZE=262144000  # максимальный размер файла по умолчанию 262144000 = 250 МБ
      - MAX_TIME_DRIFT=10000         # Разрешённый дрейф времени в миллисекундах (10 секунд)

      # Основные SMTP-настройки
      #- MAILER_ENABLED=1
      #- MAILER_HOST=smtp.example.com  # Например: smtp.yandex.ru, smtp.gmail.com
      #- MAILER_PORT=465
      #- MAILER_SECURE=1               # 1 для SSL/TLS, 0 для отключения
      #- MAILER_AUTH_USER=your_email@example.com
      #- MAILER_AUTH_PASSWORD=your_password
      # Отправитель писем
      # - MAILER_NOREPLY_NAME=JoplinServer
      # - MAILER_NOREPLY_EMAIL=noreply@example.com  # Должен совпадать с MAILER_AUTH_USER для некоторых сервисов  
      # Дополнительные настройки (если нужны)
      # - MAILER_TLS_REJECT_UNAUTH=0     # 0 - игнорировать ошибки сертификата
    restart: unless-stopped
  • https://joplin.XXX.synology.me – укажите ваш URL, по которому будет доступен сервер Joplin
  • MAILER* – если нужно, что бы работали почтовые уведомления, то раскомментируйте данные поля и укажите корректные данные.
  • MAX_TIME_DRIFT – при проблемах с синхронизацией можно уменьшить данное число в 2 раза

Пример для популярных почтовых сервисов

СервисSMTP_HOSTPORTSECURITY
Yandexsmtp.yandex.ru465tlsОфициальное руководство тут.
Mail.rusmtp.mail.ru465sslОфициальное руководство тут.
Gmailsmtp.gmail.com587tlsОфициальное руководство тут.

Не забывайте использовать пароль приложения вместо пароля от аккаунта

Push-уведомлений

Настройка push-уведомлений в Joplin Server требует дополнительной конфигурации, так как они работают через Firebase Cloud Messaging (FCM). Вот пошаговая инструкция:

Подготовка Firebase

  1. Зайдите в Firebase Console
  2. Создайте новый проект (или используйте существующий)
  3. В настройках проекта перейдите в “Project settings” → “Cloud Messaging”
  4. Скопируйте:
    • Server key (будет FCM_SERVER_KEY)
    • Sender ID (будет FCM_SENDER_ID)

Обновление docker-compose.yml

Добавьте новые переменные в сервис joplin_app:

environment:
  - FCM_SERVER_KEY=ваш_ключ_сервера
  - FCM_SENDER_ID=ваш_sender_id
  - FCM_TOPIC_PREFIX=your_prefix_  # опционально (по умолчанию "joplin_")

Фаервол

Если у вас включен фаервол на Synology, то нужно дополнительно разрешить сеть проекта, что бы все работало корректно. Напомню, что 16 маска это 255.255.0.0. 

Подробнее про настройку фаервола можно узнать в статье Настройка безопасности Synology NAS защищаем данные от внешних угроз

Обратный прокси

Для работы сервера Joplin по доменному имени нужно настроить обратный прокси в Synology. Откройте панель управления в DSM, портал для входа, дополнительно и обратный прокси. Создайте новое правило. Придумайте название правила. В источнике укажите https, имя домена, например joplin.XXX.synology.me и 443 порт. В месте назначения укажите http, localhost и порт 22300. Затем на вкладке пользовательский заголовок включите websocket. Если вы собираетесь использовать большие файлы в Joplin, то на вкладке дополнительных настройки нужно увеличить таймера с 60 секунд до 5000.

Первоначальная настройка

Для первоначальной настройки сервера Joplin откройте в браузере ваш URL адрес https://joplin.XXX.synology.me где нужно будет ввести логин admin@localhost и пароль admin по умолчанию. Первый делом необходимо сменить пароль. Затем создайте одного или несколько пользователей для синхронизации заметок через этот сервер Joplin.

По большому счету все, вы установили и настроили сервер Joplin на Synology в docker.

Настройки клиента

Теперь на клиенте Joplin на ПК или телефоне в настройках синхронизации укажите требуемые параметры для синхронизации через сервер Joplin

Не могу говорить за всех, но с первого раза тест не проходит, а со второго или третьего раза только.

Мой итог

Я уже лет 5 использую для заметок Synology Note, но ради эксперимента решил дублировать заметки в Joplin. За неделю использования мне очень понравился простой и быстрый интерфейс в приложениях Joplin на телефоне и ПК. Единственное, что мне не понравилось, как ни странно является одной из главных фишек Jopli, редактор Markdown. Он мне мешал делать заметки. Я его выключал везде где мог, но на телефоне к примеру выключить нет возможности.

Пару раз меня подводила синхронизация. Странно, но если в заметку на телефоне добавить 3 или 4 фотографии, то на ПК прейдёт на одну фотографии меньше. Если на телефоне нажать принудительно синхронизировать, то последняя фотография долетит до ПК. Но это не самое странное. Если на ПК отредактировать заметку, в которой не все фотографии долетели, то последняя фотография пропадет на телефоне из этой заметки. Думаю это баг моих версий и в будущем такого не будет.

Если бы у меня не было бы Synology Note, то Joplin однозначно стал бы моей основным программой для заметок.

Установка сервера Joplin на Synology в контейнер Docker

Подписаться
Уведомить о
guest
6 Комментарий
Старые
Новые
Межтекстовые Отзывы
Посмотреть все комментарии