Настройка синхронизации Obsidian с использованием дополнения liveSync
Возврат:: к списку статей
TLDR: Я использую Obsidian с плагином LiveSync от vrtmrz уже более месяца, и, не считая стека Arr, этот плагин, без сомнения, является лучшим автономным сервисом, который я запускаю на своем сервере. Я использую его несколько раз в день и на данный момент не могу без него жить. Поэтому я решил внести свой вклад в сообщество, которое многому меня научило, поделившись своим опытом, а также написав подробное руководство. Я обнаружил, что в большинстве руководств замалчиваются важные шаги, но, опять же, я редко знаю, что делаю, поэтому отнеситесь к моему руководству со щепоткой соли.
Время для рассказа
Недавно я предпринял попытку найти замену Apple Notes, которую я задокументировал здесь, и я искал что-нибудь, что устанавливало бы следующие флажки:
-
Возможность самостоятельного размещения на моем сервере Unraid.
-
Должно быть приложение для iOS, а не что-то, к чему можно получить доступ в браузере.
-
Синхронизируйте мои заметки между всеми моими устройствами мгновенно и без проблем.
В этом замечательном подразделении Reddit постоянно рекомендовали Obsidian. Итак, я скачал приложение для Windows 11 на свой рабочий стол и приложение для iOS на свой iPhone и был чрезвычайно доволен тем, насколько оно отточено. Это не открытый исходный код, но я был готов не обращать на это внимания.
Затем я столкнулся с проблемой синхронизации моих заметок между устройствами, на которых Obsidian предлагает услугу под названием Obsidian Sync за 4 доллара в месяц, но я хотел самостоятельно разместить этот аспект, я не хотел полагаться на кого-то другого (личные предпочтения). Если вы не хотите самостоятельно размещать синхронизацию, я настоятельно рекомендую вам поддержать компанию, воспользовавшись их сервисом синхронизации.
Мне порекомендовали плагин для Obsidian под названием LiveSync от vrtmrz, который позволяет вам самостоятельно управлять процессом синхронизации. Ниже приведено подробное руководство о том, как это настроить.
Как это работает
Этот "сервис" состоит из 3 движущихся частей. Приложение Obsidian, плагин LiveSync и база данных CouchDB в контейнере docker. Вот разбивка каждой из них.:
-
Приложение Obsidian: Вы устанавливаете приложение на каждое устройство. Я использую его на iPhone, iPad, ноутбуке с Windows 10, настольном компьютере с Windows 11 и веб-клиенте (контейнере docker от Linuxserver). На каждом устройстве есть локальная копия ваших заметок, поэтому вы все равно можете использовать ее в автономном режиме.
-
CouchDB: Здесь будет храниться копия ваших заметок (шифрование является опцией и также рекомендуется).
-
Плагин 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 - Начальная настройка
-
Перейдите на страницу администратора CouchDB, перейдя сюда: http://192.168.1.0:5984/_utils обязательно используйте IP-адрес своего сервера.
-
Войдите в систему, используя учетные данные, которые вы указали в файле Docker compose.
-
Нажмите на
<->
значок в левом верхнем углу, он расширит меню от простых значков до значков с текстом, что упростит следование этому руководству. -
Нажмите на
Setup
в меню слева. -
Нажмите на
Configure as Single Node
и введите те же учетные данные из файла Docker compose вSpecify your Admin credentials
поля. -
Оставьте все остальное без изменений и нажмите
Configure Node
.
CouchDB - Проверка установки
-
Давайте проверим установку CouchDB, нажав
Verify
в левом меню. -
Нажмите
Verify Installation
, и если все в порядке, должен появиться всплывающий баннер с надписьюSuccess! Your CouchDB installation is working. Time to Relax.
вместе с 6 флажками рядом с каждым элементом в таблице.
CouchDB - Создание базы данных
-
Нажмите на
Databases
в меню слева. -
Нажмите на
Create Database
в правом верхнем углу. -
В разделе
Database Name
введитеobsidiandb
или как вам больше нравится. Совет: если вы собираетесь использовать эту настройку для нескольких пользователей, каждому пользователю потребуется своя база данных, поэтому я рекомендую называть базу данных так, чтобы в ней указывалось имя пользователя, например:obsidiandb_john
илиobsidiandb_jane
просто для упрощения работы в будущем. -
В разделе
Partitioning
выберитеNon-partitioned - recommended for most workloads
. После создания базы данных вы должны быть перенаправлены на страницу конфигурации новой базы данных. Здесь вам ничего не нужно делать.
CouchDB - Настройка
-
Нажмите на
Configuration
в главном меню слева. Следующие 9 конфигурационных записей - это то, что скрипт должен был выполнять автоматически, но я хотел сделать это вручную. Нажмите на+ Add Option
в правом верхнем углу для каждой записи: -
Раздел:
chttpd
Название:require_valid_user
Значение:true
-
Раздел:
chttpd_auth
Название:require_valid_user
Значение:true
-
Раздел:
httpd
Название:WWW-Authenticate
Значение:Basic realm="couchdb"
-
Раздел:
httpd
Название:enable_cors
Значение:true
-
Раздел:
chttpd
Название:enable_cors
Значение:true
-
Раздел:
chttpd
Название:max_http_request_size
Значение:4294967296
-
Раздел:
couchdb
Название:max_document_size
Значение:50000000
-
Раздел:
cors
Название:credentials
Значение:true
-
Раздел:
cors
Название:origins
Значение:app://obsidian.md,capacitor://localhost,
http://localhost
Obsidian - клиент для Windows 11
-
Загрузите и установите клиент Obsidian для Windows 11 отсюда.
-
После установки откройте Obsidian.
-
Рядом с
Create new vault
нажмитеCreate
кнопку далее. -
В
Vault name
поле назовите свое хранилище как хотите, я просто назвал своеVault
. Вы можете представить хранилище как "главную папку", которая содержит все ваши папки и заметки. У некоторых пользователей разные хранилища для разных аспектов их жизни, такие какWork
илиPersonal
но я храню все в одном хранилище для удобства использования. -
Следующая настройка -
Location
, нажмитеBrowse
. Здесь ваше хранилище будет сохранено локально. Я создалObsidian
папку вDocuments
папке, но вы можете поместить ее куда угодно. -
Нажмите
Create
, и Obsidian откроется в вашем недавно созданном хранилище с 3-мя оконными панелями. Следующий шаг - настройка плагина LiveSync.
Obsidian - плагин LiveSync
-
Нажмите на
options
кнопку (значок звездочки) в левой нижней части экрана. -
Нажмите
Community plugins
наTurn on community plugins
кнопку после прочтения информации о рисках. -
Рядом с
Community plugins
нажмите наBrowse
кнопку. -
Поиск
Self-hosted LiveSync
. -
Должен появиться только 1 плагин, и это тот, что на
voratamoroz
, нажмите на него. -
Нажмите кнопку
Install
и дайте ему установиться. -
Нажмите кнопку
Enable
. -
Нажмите
Open setting dialog
кнопку. -
Нажмите
Options
кнопку. -
В разделе
Settings for Self-hosted LiveSync.
вы должны увидеть ряд из 8 кнопок, нажмите на 4-ю кнопку со значком 🛰️ спутника. -
Здесь мы введем сведения о CouchDB на собственном хостинге. Рядом с
Remote Type
убедитесь, чтоCouchDB
выбрано из выпадающего меню. -
В
URI
поле введите http://192.168.1.0:5984 обязательно измените IP-адрес и порт вашего сервера. -
В
Username
поле введитеosidian_user
или что бы вы ни использовали в docker compose. -
То же самое для
Password
field. -
В
Database name
поле введитеobsidiandb
или как вы ранее назвали свою базу данных в CouchDB. -
Нажмите кнопку
Test
, чтобы проверить подключение к базе данных CouchDB. Предполагая, что все работает должным образом, во всплывающем текстовом окне должно быть написаноConnected to obsidiandb successfully
. -
Нажмите кнопку
Check
, чтобы подтвердить правильность настройки базы данных, рядом с каждой позицией должна быть фиолетовая галочка. Если нет, то рядом с элементом должна бытьFix
кнопка, которую вы можете нажать, чтобы создать или исправить для вас, но я предпочитаю сделать это вручную сам. -
Предполагая, что на данный момент все в порядке, нажмите
Apply
кнопку рядом сApply Settings
. -
Необязательно, но рекомендуется: прокрутите вниз до
End-to-end encryption
и включите его, а затем задайте кодовую фразу. Пожалуйста, запомните эту кодовую фразу, поскольку на всех других ваших устройствах должны быть соответствующие кодовые фразы, чтобы они могли расшифровывать ваши заметки. Нажмите красную кнопкуJust apply
. -
В верхнем меню, под
Settings for Self-hosted LiveSync.
вы должны увидеть ряд из 8 кнопок, нажмите на 5-ю кнопку со значком 🔄 обновить. -
Рядом с
Sync mode
выберитеLiveSync
из выпадающего меню. -
Вы можете закрыть
settings
окна, которые вы должны увидеть в правом верхнем углу заметок,Sync: zZz
что означает, что все работает должным образом и синхронизация находится в режиме ожидания, пока вы не начнете что-то печатать. -
Повторите приведенные выше инструкции для всех других устройств.
Обратный прокси
Я настоятельно рекомендую использовать это, по крайней мере, за обратным прокси, я использую Nginx Proxy Manager в сочетании с туннелями Cloudflare. Вам обязательно понадобится, если вы планируете использовать мобильные устройства, поскольку им требуется HTTPS.
Заключение
Надеюсь, это поможет вам освоиться. По мере того, как вы будете лучше знакомиться с приложением, вы поймете, насколько хорош Obsidian. Рад ответить на любые вопросы.