Joplin — приложение для заметок с открытым исходным кодом, которое хранит записи в Markdown и синхронизирует их между компьютером, телефоном и собственным сервером. Здесь нет привязки к одному облаку: в качестве хранилища можно выбрать Nextcloud, WebDAV, S3, Joplin Server или обычный каталог на диске. Сквозное шифрование добавляет защиту даже при компрометации облачного провайдера. Ниже — практическая настройка на Linux Mint: установка, синхронизация, шифрование, работа из терминала и проверка резервных копий.
Что даёт Joplin и где он уместен
Joplin хранит заметки в локальной базе SQLite, а вложения — отдельными файлами. Приложение поддерживает Markdown, теги, поиск, историю версий, веб-клипер и плагины. Синхронизация не является обязательной: без неё всё работает локально. Это удобно для черновиков, рабочих журналов и документации, которую не хочется отдавать в чужое облако.
Важно понимать модель хранения. Облако в Joplin — транспорт, а не основной источник данных. Каждый клиент держит полную копию и обменивается изменениями небольшими объектами. Поэтому при потере связи записи остаются доступными, но появляется риск конфликтов, если редактировать одну заметку на двух устройствах одновременно.
- Markdown и совместимость с обычными текстовыми редакторами;
- вложения, теги, поиск и история изменений;
- мобильные клиенты для Android и iOS;
- экспорт в JEX, Markdown и HTML без потери структуры;
- серверная часть для самостоятельного размещения.
Установка на Linux Mint
Самый предсказуемый способ — Flatpak из репозитория Flathub. Он не зависит от версии библиотек дистрибутива и обновляется вместе с остальными приложениями. Проверьте, что Flatpak настроен и репозиторий Flathub подключён, затем установите пакет.
flatpak install flathub net.cozic.joplin_desktop
flatpak run net.cozic.joplin_desktop
Альтернатива — AppImage с официального сайта. Его удобно держать в отдельном каталоге и запускать без установки, но обновлять придётся вручную. Для корпоративной среды лучше выбрать Flatpak или пакет из репозитория дистрибутива, если он там появился.
Синхронизация через Nextcloud или WebDAV
В настройках Joplin откройте раздел «Синхронизация» и выберите цель. Для Nextcloud укажите WebDAV-адрес вида cloud.example.com/remote.php/dav/files/USER/Joplin со схемой https, логин и пароль. Вместо основного пароля создайте в Nextcloud отдельный пароль приложения: его можно отозвать, не меняя доступ к аккаунту. Соединение должно идти только по HTTPS.
Для произвольного WebDAV-сервера понадобится URL каталога, который уже существует. Joplin не создаёт корневую папку на некоторых серверах, поэтому пустой каталог лучше подготовить заранее. После сохранения нажмите «Проверить синхронизацию» и только затем — «Синхронизировать».
joplin config sync.target 5
joplin config sync.5.path WEBDAV_URL
joplin config sync.5.username USER
joplin config sync.5.password APP_PASSWORD
joplin sync
Вместо WEBDAV_URL подставьте свой полный адрес. Цель 5 — Nextcloud, цель 6 — универсальный WebDAV, цель 2 — локальный каталог. Эти номера нужны только для терминального клиента; в графическом интерфейсе достаточно выбрать пункт из списка. Пароль в командной строке остаётся в истории shell. На сервере настройте профиль заранее и ограничьте доступ к каталогу ~/.config/joplin.
Сквозное шифрование: порядок включения
Шифрование включается в настройках безопасности. Задайте мастер-пароль, дождитесь полной синхронизации и только потом включайте E2EE. Если включить режим на устройстве с неполной копией, часть объектов может остаться незашифрованной до следующего обмена. Мастер-пароль не восстанавливается: при утере данные на сервере превратятся в набор нечитаемых файлов.
Шифруются тела заметок, заголовки, теги и вложения. Провайдер при этом видит размеры объектов и время изменения, а имена файлов заменены идентификаторами. Это защита от любопытного хостинга, но не от анализа трафика и не от вредоносного ПО на самом устройстве.
joplin e2ee status
joplin e2ee enable
joplin sync
joplin e2ee target-status
Команда e2ee enable запросит пароль интерактивно. Не передавайте его аргументом --password на общем сервере: он попадёт в список процессов. После включения проверьте, что все устройства синхронизировались и открывают заметки, и лишь затем удаляйте старые незашифрованные копии.
Терминальный клиент и автоматизация
Joplin CLI удобен для сервера без графики: он умеет синхронизировать профиль, искать заметки и делать экспорт. Установка требует Node.js. Чтобы не засорять системные каталоги, задайте отдельный префикс.
NPM_CONFIG_PREFIX=~/.joplin-bin npm install --loglevel=error -g joplin
sudo ln -s ~/.joplin-bin/bin/joplin /usr/local/bin/joplin
joplin version
joplin ls -l
joplin sync
Для регулярной синхронизации подойдёт cron или systemd timer. Не запускайте два процесса одновременно: Joplin использует блокировку профиля. Если синхронизация идёт долго, уменьшите sync.maxConcurrentConnections — некоторые WebDAV-серверы плохо переносят параллельные запросы.
Резервные копии и восстановление
Синхронизация — не резервная копия. Ошибочное удаление заметки разлетится на все устройства. Раз в неделю делайте полный экспорт JEX и храните его отдельно от облака. Помните, что JEX содержит открытый текст, поэтому архив нужно дополнительно зашифровать.
mkdir -p ~/backup/joplin
joplin export ~/backup/joplin/joplin-$(date +%F).jex --format jex
joplin import ~/backup/joplin/joplin-2026-11-01.jex --format jex
Проверка восстановления обязательна. Разверните архив в отдельный профиль через --profile, откройте несколько заметок и убедитесь, что вложения на месте. Храните минимум две копии: локальную и на другом носителе, который не синхронизируется с основным профилем.
Диагностика и чек-лист
Большинство проблем связано с неверным URL, истёкшим паролем приложения или рассинхронизацией часов. Логи лежат в каталоге профиля: ~/.config/joplin для CLI и ~/.config/joplin-desktop для графического приложения. Ищите строки с error и sync, но не публикуйте их целиком: там могут быть адреса и идентификаторы.
- Проверьте точное время и часовой пояс на всех устройствах.
- Убедитесь, что WebDAV-каталог доступен на запись и не переполнен.
- Сверьте версии клиентов: слишком старый клиент может не понимать новые объекты.
- При конфликтах откройте заметку с пометкой «Conflicted» и перенесите нужные фрагменты вручную.
- Не отключайте E2EE, пока не убедились, что все данные расшифрованы локально.
- Раз в месяц проверяйте восстановление из JEX на чистом профиле.
Итог
Joplin даёт контроль над заметками: Markdown остаётся читаемым, синхронизация работает с вашим хранилищем, а E2EE защищает содержимое на стороне провайдера. Ключевые правила — включать шифрование после первой полной синхронизации, хранить мастер-пароль офлайн, делать независимые JEX-копии и проверять восстановление. Такой набор превращает личную базу знаний в предсказуемую и переносимую систему.