Obsidian: синхронизация без боли

3eeeb90b144437de0f8f7f8b67420b4b.JPGПавел Спектр

Java-developer

Доброго дня, ребята! Все же тема оказалась достаточно актуальной и интересной и, как обещал, мы её сегодня исследуем.

Не буду расписывать какой Obsidian замечательный и какие дает возможноти — кто в теме и так понимают, что это не просто программа, а целый 2-й мозг и у каждого он свой.

Я не так давно начал использовать Obsidian и фактически со старта столкнулся с проблемой синхронизации между всеми устройствами. Это и побудило меня решить этот вопрос — один раз и насовсем.

Плагин или стороннее приложение?

Поначалу я использовал бесплатное кроссплатформенное приложение, которое позволило связать мои устройства напрямую, по туннелю. Называется SyncThing. Просто в приложении указываем папку на устройсте, которую будем синхронизировать, настраиваем параметры синхронизации, добавляем наши устройства и готово.

Правда есть несколько оговорок: в Google Play этого приложения не оказалось — пришлось устанавливать сторонний магазин открытого ПО F-Droid, а насчет AppStore вообще не уверен.

Только вот каждый раз, после работы на каждом устройстве придется открывать программу и держать ее активной, чтобы другое устройство синхронизировало данные. Для ПК, работающего от сети проблем вроде бы нет, но… Электричество иногда отключают, интернет может пропасть или всеми любимый Windows может уйти в перезагрузку на обновление… А актуальные данные нужны здесь и сейчас?!

И вопрос к аудитории: Всем нравится запускать сначала одно приложение чтобы нормально пользоваться необходимым?

Вы уже поняли, что меня данный вариант не устроил и пришлось «копать» дальше.

Искусство находить ответы

Умение задавать правильные вопросы приводит к нахождению правильных ответов.

Неужели в таком крутом, как говорят, приложении как Obsidian нет плагинов для легкой синхронизации? Они мало того что есть, так их еще и не мало, а помимо этого они отсортированы по рейтингу и количеству загрузок!

Сам по себе Obsidian не стал бы таким популярным, не будь у него столь высокой возможности расширения и адаптации под самые нетривиальные задачи. Сторонние плагины делают его по истине уникальным для каждого.

Remotely Save

Этот плагин устанавливается как в десктопные, так и в мобильные Obsidian.

Здесь я пошагово расскажу как все настроить:

Этапы установки и запуска я пропущу, поскольку уверен, что читатель смог установить Obsidian и создать хранилище в нужном месте своего устройства или нескольких устройств, в предвкушении, что сейчас все будет работать!? Будет! Если Вы будете внимательны!

  1. Делаем копию текущей базы на случай непредвиденных обстоятельтсв! У меня таких обстоятельтсв не возникло, но все же перестраховка лишней не будет.

  1. Название папки-хранилища Obsidian должно быть одинаковым на всех устройствах (напрмер у меня папка так и называется: Obsidian).

  2. Нам нужен Облчный-сервис (он же по-русски: Облако) с достаточным объемом памяти и без риска блокировки:

    • Яндекс.Диск;

    • Mail.Облако.

    Можно и Google Drive и iCloud или любой другой нормальный облачный-сервис, который предоставляет API удаленного доступа (TeraBox, например, не подходит, да и скорость соединения низкая).

    Мой совет: используйте облако, в котором действительно достаточно свободного места, либо создайте отдельный аккаунт только для Obsidian . У меня под обсидиан отдельный Яндекс.Диск.

  3. Создаем в Облаке папку с идентичным названием, что и на всех устройствах.

!!! На всех устройствах, включая облако, с которыми будет синхронизация папки должны иметь абсолютно одинаковое название папки-хранилища!!!

  1. Теперь идем в Obsidian → И далее по порядку:
    Слева у вас должны быть показан список заметок и папок, если его нет то открываем кликом сюда:

Гречка 1.

Гречка 1.

Жмем на шестеренку внизу этой панели:

Перловка 2.

Перловка 2.

Идем в сторонние плагины и включаем их:

Манка 3.

Манка 3.

Далее идем сюда:

Пшёнка 4.

Пшёнка 4.

В поиске вводим Remotely Save, а можете сделать так, как я обнаружил этот плагин — ввел sync и удивился от количества самых разных решений для синхронизации не только папки хранилища, но и много другого, даже можно пистаь себе заметки в Telegram и они будут прилетать в Obsidian):

Горох 5.

Горох 5.

Устанавливаем:

Киноа 6.

Киноа 6.

Очень рекомендую почитать описание. Плагин действительно сделан отлично и имеет поддержку самых разных протоколов для синхронизации с разными облачнми сервисами.

  1. Настраиваем синхронизацию:

    Я буду показывать настройку через WebDAV на примере Яндекс.Диск и коснусь Cloud.Mail. Для настройки через друге сервисы придется разобраться самостоятельно, но, уверен, что там нет ничего за гранью возможного.

    И так:
    У нас есть аккаунт на Яндекс или Mail.Ru.
    У меня на Яндекс по умолчанию 30Гб пространства — как-то предложили увеличить, а Mail.Ru по умолчанию дает 8Гб, но когда-то бесплатно и навсегда увеличил его аж до целых 100Гб!!! Иногда бывают подобные акции и желательно их не пропускать.

    Нам нужен токен доступа из внешнего приложения — иначе говоря нам нужно зайти и сгенерировать ключь доступа. Этот ключ один и достаточно его сгенерировать один раз, а потом использовать для самых разных целей (например: для подключения сетевого диска).

    Яндекс:
    Идем сюда https://id.yandex.ru/security/app-passwords и генерируем ключ WebDAV:

    Чечевица 7.

    Чечевица 7.

Этот ключик лучше сохранить в надежном месте, откуда его можно будет потом легко скопировать и переиспользовать. В ином случае каждый раз придется генерировать новый. Если сервис не поддерживает несколько рабочих ключей, то сервисы со старым ключом уже не будут работать.

Mail.Ru:
Идем сюда: https://account.mail.ru/user/2-step-auth/passwords/
Все тоже самое что и для Яндекс.
Если что-то не понятно, то читаем «Как создать пароль».

  1. Самое сложное позади и лишь остальось настроить синхронизацию под себя. О всех настройках расскажу по порядку.
    Идем в Obsidian → в настройки (та самая шестеренка) → слева внизу нажимаем Remotely Save и начинаем настривать:

    Булгур 8.

    Булгур 8.

Нут 9.

Нут 9.

  • Choose A Remote Service: выбираем WebDAV;

  • Server Address:
    для Яндекс: https://webdav.yandex.ru/
    для Mail.Ru: https://webdav.cloud.mail.ru/

  • Username:
    для Яндекс: e-mail адрес, без @yandex.ru (напрмер: obsidian@yandex.ru)
    для Mail.Ru: e-mail адрес полностью (напрмер: obsidian@mail.ru)

  • Password: сюда вставляем сгенерированный токен;

  • Auth Type: оставляем basic;

  • Depth Header Sent To Servers: этот параметр отвечает за глубину заголовков каталогов. У меня стоит по умолчанию depth='1' и все в порядке. depth='infinity' рекомендовать не могу, поскольку сам еще не тестировал. В описании этого параметра сказано, что не все облачные сервисы поддерживают глубокую систему каталогов.

  • Custom Header Sent To Servers: оставляем как есть;

  • Change The Remote Base Directory: пишем название папки-хранилища — как на всех устройствах: пишите или копируете Ваше название (у меня например: Obsidian) и жмете Confirm — в облаке будет создана папка с таким названием, если она не была создана ранее;

  • Check Connectivity: жмите Check и в правом верхнем углу появится сообщение Checking... и после Great! The webdav server can be accessed., если все было сделано четко по инструкции.

Еще здесь же есть еще несколько полезных настроек:

  • Schedule For Auto Run: Расписание автоматической синхронизации — тут кому как удобнее. Я у себя отключил, чтобы не вызывать лишних соединений, особенно это касается телефона;

  • Run Once On Start Up Automatically: запуск синхронизации при старте программы. Меня устроила опция sync once after 1 second of start up;

  • Sync On Save (experimental): запускает синхронизацию при любом изменении;

  • Skip Large Files: опция для тех, кто не хочет загружать в облако большие файлы, рамером более установленного значения;

  • Show Last Successful Sync Time: полезная опция, которая показывает время последней синхронизации;

  • Concurrency: синхронизация в многопоточном режиме. По умолчанию выделяется 5 потоков из пула соединений. Я для себя опробовал 1, 5 и 10 потоков — рекомендую оставить по умолчанию и изменять это значение только для определенных условий, например: нужно подгрузить всю базу и облака с нуля — 10 потоков будет отлично, при хорошем интернет-соединении, а если нужно подтянуть данные на старый компьютер, который работает на HDD, то лучше делать это в одном потоке, так же этот вариант подойдет для экономии батареи устройства, правда тут все очень относительно и напрямую будет зависеть от объема получаемых/передаваемых изменений.

    f57d22fcf78e02d23190d67ca93231b9.png
  • Остальных настроек я касаться не буду — с минимумом английского и непоменрным желанием оптимизации Вы и сами прекрасно справитесь. Лишь хочу заметить, что Remotely Save на каждом устройстве настраивать придется отдельно, но оно и к лучшему. Есть конечно опция Sync Config Dir (experimental), которая может сильно помочь одним и сломать конфигурацию другим — её лучше использовать когда на всех устройствах установлены идентичные плагины.

Запустить синхронизацию вручную можно при помощи появившейся кнопки на лейвой панели:

f80c24aec83a7c945d15f95f3415b9d6.png

Вот и все, ребята!

Данный туториал протестирован лично мною и прекрасно работает на 3-х устройствах под Linux, Windows и Android. Думаю, что на устройствах Apple особых отличий не будет. А если возникнут проблемы, то пишите в комментарии.

© Habrahabr.ru