Настройка синхронизации Obsidian с использованием дополнения liveSync

Возврат:: к списку статей


TLDR: Я использую Obsidian с плагином LiveSync от vrtmrz уже более месяца, и, не считая стека Arr, этот плагин, без сомнения, является лучшим автономным сервисом, который я запускаю на своем сервере. Я использую его несколько раз в день и на данный момент не могу без него жить. Поэтому я решил внести свой вклад в сообщество, которое многому меня научило, поделившись своим опытом, а также написав подробное руководство. Я обнаружил, что в большинстве руководств замалчиваются важные шаги, но, опять же, я редко знаю, что делаю, поэтому отнеситесь к моему руководству со щепоткой соли.

Время для рассказа

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

  1. Возможность самостоятельного размещения на моем сервере Unraid.

  2. Должно быть приложение для iOS, а не что-то, к чему можно получить доступ в браузере.

  3. Синхронизируйте мои заметки между всеми моими устройствами мгновенно и без проблем.

В этом замечательном подразделении Reddit постоянно рекомендовали Obsidian. Итак, я скачал приложение для Windows 11 на свой рабочий стол и приложение для iOS на свой iPhone и был чрезвычайно доволен тем, насколько оно отточено. Это не открытый исходный код, но я был готов не обращать на это внимания.

Затем я столкнулся с проблемой синхронизации моих заметок между устройствами, на которых Obsidian предлагает услугу под названием Obsidian Sync за 4 доллара в месяц, но я хотел самостоятельно разместить этот аспект, я не хотел полагаться на кого-то другого (личные предпочтения). Если вы не хотите самостоятельно размещать синхронизацию, я настоятельно рекомендую вам поддержать компанию, воспользовавшись их сервисом синхронизации.

Мне порекомендовали плагин для Obsidian под названием LiveSync от vrtmrz, который позволяет вам самостоятельно управлять процессом синхронизации. Ниже приведено подробное руководство о том, как это настроить.

Как это работает

Этот "сервис" состоит из 3 движущихся частей. Приложение Obsidian, плагин LiveSync и база данных CouchDB в контейнере docker. Вот разбивка каждой из них.:

  1. Приложение Obsidian: Вы устанавливаете приложение на каждое устройство. Я использую его на iPhone, iPad, ноутбуке с Windows 10, настольном компьютере с Windows 11 и веб-клиенте (контейнере docker от Linuxserver). На каждом устройстве есть локальная копия ваших заметок, поэтому вы все равно можете использовать ее в автономном режиме.

  2. CouchDB: Здесь будет храниться копия ваших заметок (шифрование является опцией и также рекомендуется).

  3. Плагин LiveSync: Плагин - это то, что выполняет всю тяжелую работу по синхронизации всех ваших устройств. Это достигается путем подключения к вашему автономному контейнеру CouchDB docker и сохранения там зашифрованной копии. Все остальные ваши устройства подключатся к базе данных, чтобы получать обновленные заметки, обеспечивая мгновенную синхронизацию.

Docker Compose на Unraid

Ниже приведен файл docker compose, предназначенный только для запуска CouchDB. Я установил его на сервер Unraid, чтобы вы могли редактировать метки и переменные среды для вашей конкретной ОС.

  couchdb-obsidian-livesync:
    container_name: obsidian-livesync #shortened name
    image: couchdb:3.3.3
    environment:
      - PUID=99
      - PGID=100
      - UMASK=0022
      - TZ=America/New_York
      - COUCHDB_USER=obsidian_user # optionally change me
      - COUCHDB_PASSWORD=password # definitly change me
    volumes:
      - /mnt/user/appdata/couchdb-obsidian-livesync/data:/opt/couchdb/data
      - /mnt/user/appdata/couchdb-obsidian-livesync/etc/local.d:/opt/couchdb/etc/local.d
    ports:
      - "5984:5984"
    restart: unless-stopped
    labels:
      - net.unraid.docker.webui=http://[IP]:[PORT:5984]/_utils # for some reason this does not work properly
      - net.unraid.docker.icon=https://couchdb.apache.org/image/[email protected]
      - net.unraid.docker.shell=bash

CouchDB - Начальная настройка

  1. Перейдите на страницу администратора CouchDB, перейдя сюда: http://192.168.1.0:5984/_utils обязательно используйте IP-адрес своего сервера.

  2. Войдите в систему, используя учетные данные, которые вы указали в файле Docker compose.

  3. Нажмите на <-> значок в левом верхнем углу, он расширит меню от простых значков до значков с текстом, что упростит следование этому руководству.

  4. Нажмите на Setup в меню слева.

  5. Нажмите на Configure as Single Node и введите те же учетные данные из файла Docker compose в Specify your Admin credentials поля.

  6. Оставьте все остальное без изменений и нажмите Configure Node.

CouchDB - Проверка установки

  1. Давайте проверим установку CouchDB, нажав Verify в левом меню.

  2. Нажмите Verify Installation, и если все в порядке, должен появиться всплывающий баннер с надписью Success! Your CouchDB installation is working. Time to Relax. вместе с 6 флажками рядом с каждым элементом в таблице.

CouchDB - Создание базы данных

  1. Нажмите на Databases в меню слева.

  2. Нажмите на Create Database в правом верхнем углу.

  3. В разделе Database Name введите obsidiandb или как вам больше нравится. Совет: если вы собираетесь использовать эту настройку для нескольких пользователей, каждому пользователю потребуется своя база данных, поэтому я рекомендую называть базу данных так, чтобы в ней указывалось имя пользователя, например: obsidiandb_john или obsidiandb_jane просто для упрощения работы в будущем.

  4. В разделе Partitioning выберите Non-partitioned - recommended for most workloads. После создания базы данных вы должны быть перенаправлены на страницу конфигурации новой базы данных. Здесь вам ничего не нужно делать.

CouchDB - Настройка

  1. Нажмите на Configuration в главном меню слева. Следующие 9 конфигурационных записей - это то, что скрипт должен был выполнять автоматически, но я хотел сделать это вручную. Нажмите на + Add Option в правом верхнем углу для каждой записи:

  2. Раздел: chttpd Название: require_valid_user Значение: true

  3. Раздел: chttpd_auth Название: require_valid_user Значение: true

  4. Раздел: httpd Название: WWW-Authenticate Значение: Basic realm="couchdb"

  5. Раздел: httpd Название: enable_cors Значение: true

  6. Раздел: chttpd Название: enable_cors Значение: true

  7. Раздел: chttpd Название: max_http_request_size Значение: 4294967296

  8. Раздел: couchdb Название: max_document_size Значение: 50000000

  9. Раздел: cors Название: credentials Значение: true

  10. Раздел: cors Название: origins Значение: app://obsidian.md,capacitor://localhost,http://localhost

Obsidian - клиент для Windows 11

  1. Загрузите и установите клиент Obsidian для Windows 11 отсюда.

  2. После установки откройте Obsidian.

  3. Рядом с Create new vault нажмите Create кнопку далее.

  4. В Vault name поле назовите свое хранилище как хотите, я просто назвал свое Vault. Вы можете представить хранилище как "главную папку", которая содержит все ваши папки и заметки. У некоторых пользователей разные хранилища для разных аспектов их жизни, такие как Work или Personal но я храню все в одном хранилище для удобства использования.

  5. Следующая настройка - Location, нажмите Browse. Здесь ваше хранилище будет сохранено локально. Я создал Obsidian папку в Documents папке, но вы можете поместить ее куда угодно.

  6. Нажмите Create, и Obsidian откроется в вашем недавно созданном хранилище с 3-мя оконными панелями. Следующий шаг - настройка плагина LiveSync.

Obsidian - плагин LiveSync

  1. Нажмите на options кнопку (значок звездочки) в левой нижней части экрана.

  2. Нажмите Community plugins на Turn on community plugins кнопку после прочтения информации о рисках.

  3. Рядом с Community plugins нажмите на Browse кнопку.

  4. Поиск Self-hosted LiveSync.

  5. Должен появиться только 1 плагин, и это тот, что на voratamoroz, нажмите на него.

  6. Нажмите кнопку Install и дайте ему установиться.

  7. Нажмите кнопку Enable.

  8. Нажмите Open setting dialog кнопку.

  9. Нажмите Options кнопку.

  10. В разделе Settings for Self-hosted LiveSync. вы должны увидеть ряд из 8 кнопок, нажмите на 4-ю кнопку со значком 🛰️ спутника.

  11. Здесь мы введем сведения о CouchDB на собственном хостинге. Рядом с Remote Type убедитесь, что CouchDB выбрано из выпадающего меню.

  12. В URI поле введите http://192.168.1.0:5984 обязательно измените IP-адрес и порт вашего сервера.

  13. В Username поле введите osidian_user или что бы вы ни использовали в docker compose.

  14. То же самое для Password field.

  15. В Database name поле введите obsidiandb или как вы ранее назвали свою базу данных в CouchDB.

  16. Нажмите кнопку Test, чтобы проверить подключение к базе данных CouchDB. Предполагая, что все работает должным образом, во всплывающем текстовом окне должно быть написано Connected to obsidiandb successfully.

  17. Нажмите кнопку Check, чтобы подтвердить правильность настройки базы данных, рядом с каждой позицией должна быть фиолетовая галочка. Если нет, то рядом с элементом должна быть Fix кнопка, которую вы можете нажать, чтобы создать или исправить для вас, но я предпочитаю сделать это вручную сам.

  18. Предполагая, что на данный момент все в порядке, нажмите Apply кнопку рядом с Apply Settings.

  19. Необязательно, но рекомендуется: прокрутите вниз до End-to-end encryption и включите его, а затем задайте кодовую фразу. Пожалуйста, запомните эту кодовую фразу, поскольку на всех других ваших устройствах должны быть соответствующие кодовые фразы, чтобы они могли расшифровывать ваши заметки. Нажмите красную кнопку Just apply.

  20. В верхнем меню, под Settings for Self-hosted LiveSync. вы должны увидеть ряд из 8 кнопок, нажмите на 5-ю кнопку со значком 🔄 обновить.

  21. Рядом с Sync mode выберите LiveSync из выпадающего меню.

  22. Вы можете закрыть settings окна, которые вы должны увидеть в правом верхнем углу заметок, Sync: zZz что означает, что все работает должным образом и синхронизация находится в режиме ожидания, пока вы не начнете что-то печатать.

  23. Повторите приведенные выше инструкции для всех других устройств.

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

Я настоятельно рекомендую использовать это, по крайней мере, за обратным прокси, я использую Nginx Proxy Manager в сочетании с туннелями Cloudflare. Вам обязательно понадобится, если вы планируете использовать мобильные устройства, поскольку им требуется HTTPS.

Заключение

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