Obsidian+Github вместо Notion: синхронизация, бекап и версионность (3-в-1)

Инфраструктура личных заметок (Obsidian + GitHub)
Инфраструктура личных заметок (Obsidian + GitHub)

В моем тг канале, вы найдете больше удобных сервисов и ИИ инструментов, так что велком всех жду!О том, как сделать прозрачную синхронизацию заметок Obsidian между устройствами (Desktop, Android, iOS) через GitHub:

  • Без сторонних приложений (вроде iCloud, SyncThing, Termux и пр)
  • Бесплатно
  • Бонусом — резервная копия: как самих заметок, так и истории изменений.

В результате получается полноценная замена Notion: структурированные заметки с автоматической синхронизацией между устройствами.

-Приватный репозиторий GitHub-Синхронизация по https + "Personal access token"-Для десктопа: плагин Git-Для мобильных: плагин Fit-Автосинхронизация: при старте (Git), раз в минуту, без уведомлений.-Исключить папку .obsidian через .gitignore

Далее: подробно ("для чайников")

Предыстория: Notion всё

Сейчас Notion в РФ работает только для бесплатных аккаунтов и только через прокси/VPN. Платные аккаунты забанили. Если зайти из бесплатного аккаунта и забыть включить прокси — выкинет из Notion, неудобно.

Но главное неудобство — Notion владеет моими заметками и может удалить их в любой момент. С Obsidian иначе: все заметки — это локальная папка с текстовыми файлами (их можно открыть множеством приложений).

Вопрос лишь в прозрачной синхронизации … и он решён в этой статье.

Предыстория: личный опыт

Несколько лет назад я загорелся идеей создать личную картотеку "zettelkasten". У меня эта методология не прижилась, но в результате я познакомился с приложением Obsidian, начал вести там свои заметки, и год назад полностью ушёл туда с Notion.

Мой главный аргумент — я владею своими заметками, а не корпорация. Заметки хранятся в папке с текстовыми файлами. Они не пропадут, если кто-то так решит.

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

Ниже - пошаговый алгоритм, с которым всё точно работает.

Шаг 0: Установить Obsidian на все свои устройства

На случай если его у вас ещё нет, вот ссылка:

Шаг 1: Создать приватный репозиторий Github

  • Залогиниться на github
  • По ссылке https://github.com/new указать:имя репозиториявыбрать: приватныйвыбрать: файл README (т.к. репозиторий не д.б. пустым)
  • создать репозиторий (зеленая кнопка внизу)
  • в корне репозитория создать файл .gitignore с текстом .obsidian
Настройки нового репозитория на GitHub 
Настройки нового репозитория на GitHub 
Создание .gitignore (1/2)  
Создание .gitignore (1/2)  
Создание .gitignore (2/2)  
Создание .gitignore (2/2)  

Комментарий: файл .gitignore нужен, чтобы не синхронизировать папку .obsidian, в которой находятся локальные настройки (конфликтуют на разных устройствах при синхронизации). Если этого не сделать — вся схема перестанет работать.

Шаг 2: Создать токен доступа

  • По ссылке https://github.com/settings/tokens/new указать:имя токенавыбрать: No Expiration (значит токен не устареет)выбрать repo
  • создать токен (зеленая кнопка)
  • сохранить созданный токенGitHub покажет токен вида ghp_1wKdGc4IhVCHxXEaKClMNp1rEMwsHu1f5zNZ только один раз, его нужно скопировать и сохранить. Если потеряется - придётся создавать новый.
Настройки "простого" токена доступа  
Настройки "простого" токена доступа  

Созданный токен даёт доступ ко всем личным "репозиториям" на гитхабе. Если у вас уже есть репозитории на гитхабе и вам *некомфортно* с таким токеном, то есть два решения:

  • Создать "продвинутый" токен:токену выдать права на конкретный репозиторий "Repository permissions - Contents: Read and Write"указать срок жизни токена 1 год (это максимум, через год придётся обновлять, неудобно)
  • Более простой вариант: создать отдельный github-аккаунт для обсидиана и использовать "классический" токен.

Шаг 3: Синхронизация с десктопом (Windows, Linux, Mac)

Приведу пример для Windows.

3а: клонировать репозиторий

  • Убедиться, что git установлен в системев консоли набрать git --version и увидеть версию.если вылезла ошибка — установить гит: https://git-scm.com/downloads
  • Создать папку, в которой будут храниться «Vaults/Хранилище» Obsidian (Vault — это аналог Workspace в Notion). Например: C:/OBSIDIAN (win) или ~/OBSIDIAN(linux).
  • Собрать https-ссылку, по которой будет синхронизироваться githubФормат ссылки: https://<PERSONAL_ACCESS_TOKEN>@github.com/<USERNAME>/<REPO>.git,Например: https://ghp_1wKdGc4IhVCHxXEaKClMNp1rEMwsHu1f5zNZ@github.com/myaccount/my-obsidian-vault.git
  • Запустить консоль (cmd.exe в windows)в консоли перейти в папку OBSIDIAN (cd /OBSIDIAN) и оттуда выполнить команду с собранной ссылкой git clone https://<PERSONAL_ACCESS_TOKEN>@github.com/<USERNAME>/<REPO>.git

В результате появится папка OBSIDIAN/my-obsidian-vault, а в ней файлы из GitHub (README.md и .gitignore, а также папка .git с настройками гитхаба)

3b: создать Хранилище/Vault в Obsidian на основе скаченной папки

Создание нового Хранилища/Vault в Obsidian 
Создание нового Хранилища/Vault в Obsidian 
  • Из программы Obsidian: открыть синхронизированную папку my-obsidian-vault как хранилище
  • Теперь можно заполнить "хранилище" заметками и файлами, или просто отредактировать README.md

Если у вас уже есть заметки в Obsidian, то алгоритм будет тот-же:

  • сначала создать и синхронизировать пустой репозиторий с github
  • затем скопировать туда все файлы из старого хранилища

3с: Настроить синхронизацию через obsidian-плагин 'Git'

Плагин Git в Obsidian (1/4) - поиск и установка   
Плагин Git в Obsidian (1/4) - поиск и установка   

В настройках Обсидиана, в разделе "Community plugins" найти и установить плагин 'git'
Далее, в настройках самого плагина git, установить:
Vault Backup Interval (minutes): 1
Auto Backup after stopping file edits: ВКЛ
Pull updates on startup: ВКЛ
Disable notifications: ВКЛ (можно не включать, но тогда каждую минуту будут появляться уведомления)

Плагин Git в Obsidian (2/4) - настройка  
Плагин Git в Obsidian (2/4) - настройка  
Плагин Git в Obsidian (3/4) - настройка  
Плагин Git в Obsidian (3/4) - настройка  
Плагин Git в Obsidian (4/4) - настройка  
Плагин Git в Obsidian (4/4) - настройка  

Теперь все заметки из этого хранилища, каждую минуту после завершения редактирования, будут загружаться в Github. Также, при запуске Obsidian, последняя версия заметок сразу подгрузится с GitHub.

Если не хочется ждать минуту, то принудительно загрузить изменения на GitHub можно через Obsidian-команду "Git: Create backup": CTRL+P, git b. Также (в настройках Obsidian) можно создать горячую клавишу для этой команды (например, ALT+S)

Шаг 4: Синхронизация с мобильным (Android, iOS)

Здесь всё проще, чем на десктопе:

Поиск и установка плагина Fit в мобильном   
Поиск и установка плагина Fit в мобильном   
  • Открыть приложение Obsidian
  • Создать новый пустой Vault/Хранилище (не создавать в нём файлы)
  • Внутри Obsidian найти и установить community-плагин "Fit"
  • В настройках плагина:вставить Токен (из шага 1). Именно токен, не url.авторизоваться по кнопке "Authenticate user"Github repository name: выбрать из списка, например: my-obsidian-vaultBranch name: выбрать main. (тут без вариантов)Auto sunc: выбрать MutedAuto check interval: установить 1 минутуFile change: нажать, чтобы кнопка не горела (и не спамила каждую минуту).

Всё, настройка мобильного приложения завершена: Obsidian будет синхронизироваться с GitHub каждую минуту.

Недостатки плагина Fit версии v1.1.1

Кнопка с котиком для принудительной синхронизации через плагин Fit  
Кнопка с котиком для принудительной синхронизации через плагин Fit  

К сожалению, плагин Fit (пока ещё) не умеет делать автосинхронизацию "при старте".Поэтому, сразу после запуска, чтобы не ждать минуту, можно подтянуть изменения через кнопку с котиком "Fit Sync".

Также, в текущей версии плагина есть один "баг": если на десктопе удалить ненужную папку-с-файлами (и синхронизировать репозиторий), то на мобильном файлы удалятся, но пустая папка останется ... и её придётся удалить вручную. Неудобно, но такой сценарий случается довольно редко. Плюс есть шанс что автор плагина исправит этот баг.

При этом у плагина есть бесспорное достоинство: работает на мобильном.

Шаг 5: техника безопасности

Не редактируйте один и тот же файл одновременно на двух устройствах.

Впрочем, этот совет относится и к Notion: я однажды терял часть текстов в Notion, когда заметка была открыта в нескольких местах

На самом деле, следовать этому совету легко.

А если что-то пойдёт не так, то Obsidian сообщит о конфликте версий, и с ним придётся разбираться (в то время как Notion молча как-то всё решит сам)

  • На десктопе конфликт версий разрешается средствами GIT-а.Если кратко: то достаточно отредактировать "конфликтный" файл и удалить из него ненужные строки (в т.ч. служебные), чтобы всё пришло в норму.а если одновременно редактировались разные строки заметки, то умный git разрулит всё сам (корректно, незаметно, автоматически)
  • На мобильном конфликт решается иначе: локальный файл не меняется, но его "внешняя" копия появляется в папке _FIT. Нужно смотреть глазами и решать головой, что оставить и что поменять в оригинальном файле.

Ещё раз: конфликт версий заметки — это форс-мажор, скорее всего вы никогда с ним не встретитесь (если не будете редактировать одну и ту же заметку одновременно на двух устройствах). А если встретитесь — его легко разрулить.

Вопросы и ответы:

Почему на мобильных используется плагин Fit, а не полноценный Git?

Мобильные приложения не могут вызывать другие мобильные приложения, поэтому плагин Obsidian не может вызвать стороннее приложение Git на мобильном.

Плагины Obsidian написаны на JS. В мобильном плагине obsidian-git есть JS-реализация полноценного гит-а… но она ещё сырая (тормозит на большом количестве файлов и спамит алертами).

Поэтому для мобильных устройств приходится использовать не полноценный Git, а плагин Fit, который использует упрощённый GitHub API.

Почему на десктопе используется плагин Git, а не простой Fit?

Тут две причины:

  • хранение всей истории изменений на локальной машине (в папке .git)
  • удобство автоматического разруливания конфликта версий, если на разных устройствах одновременно редактировались разные строки одного файла.

Можно ли использовать только мобильную версию (без десктопа)

Да, вполне. Шаг 3 можно пропустить - всё будет работать.

Правда десктопная версия даёт дополнительную резервную копию с историей изменений (хранится на десктопе), но если отказаться от десктопа — система продолжить работу.

Также можно отказаться от мобильной версии и работать только на десктопе (но зачем?:)

Почему бы не синхронизировать всё через сторонние приложения (например, SyncThing)?

  • они требуют внимания (надо следить, что ничего не отвалилось)
  • они разряжают батарею (на мобильных)
  • они гоняют больше трафика (на мобильных)
  • синхронизация через них происходит чуть дольше
  • самое главное: они не хранят историю всех изменений (как это делает git в локальной папке .git и на github)

Здесь же всё в одном приложении: запустил Obsidian — синхронизация идёт; закрыл — не идёт.

Где смотреть историю изменений файлов?

История изменений файла на GitHub  
История изменений файла на GitHub  

Если вы не сильны в git (как и я), то историю изменений любого файла можно посмотреть на сайте github (для каждого файла справа-вверху есть кнопка "🕓History").

Что делать, если GitHub однажды перестанет открываться из РФ?

Действительно, плагин Fit жестко привязан к API GitHub-а.

Но тут как в той притче - "или ишак подохнет, или падишах…".

  • Скорее всего к этому моменту допилят мобильный плагин Obsidian-Git. И тогда можно будет использовать любой git-сервер (даже свой собственный).
  • Или допилят плагин Fit (или создадут новый) для работы с каким-нибудь опенсорс-сервисом.
  • или действовать по-старинке:Android: синхронизироваться через внешнее приложение "Termux", внутрь которого можно установить полноценный git (инструкция гуглится)iOS: синхронизироваться через iCloud
  • наконец, у Obsidian есть свой сервис синхронизации за $4 в месяц. Правда к нему хорошо-бы прикрутить дополнительный бекап.

В январе я уже предсказывал замедление youtube. Так что побуду предсказателем ещё раз. Так вот: гитхаб в ближайшие годы останется доступным (ну а вдруг:)

Что ещё можно сделать с этой схемой?

  • В Obsidian можно использовать несколько Хранилищ/Vaults (аналог Workspace в Notion), и под каждое создать свой репозиторий на гитхаб. Правда синхронизацию придётся настраивать отдельно для каждого: в Obsidian плагины устанавливаются внутрь Vault, а не в приложение в общем.
  • Если есть свой сервер — можно настроить ещё один бекап: резервное копирование репозитория GitHub по расписанию через git.

Минутка здравого смысла

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

При чём здесь Obsidian?

Дело в том, что реализовываться (по своим ценностям) у человека получается только из состояния владения своей жизнью (когда ощущаешь право и способность влиять). А воспитывается способность владеть и влиять всегда с мелочей, в том числе через владение результатами своего творчества. В том числе через владение личными документами.

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

При этом хочу разделить понятия "владение" и "управление": очень удобно, когда получается делегировать управление ресурсом, но продолжать оставаться хозяином. Правда вот в данной инструкции эти две роли пришлось совместить: самому управлять и самому владеть.

В общем, признание и реализация ценности "владения" — это тренд. Пока ещё небольшой, но — по моим наблюдениям — он показывает уверенный рост.

Так что если вы решите вернуть себе право распоряжаться своими заметками с помощью Obsidian — вы знаете что делать.

В моем тг канале, вы найдете больше удобных сервисов и ИИ инструментов, так что велком всех жду!

11
2 комментария

Статья отлично раскрывает идею использования Obsidian и GitHub как альтернативы Notion, особенно для тех, кто хочет полного контроля над своими заметками. Плюс за пошаговую инструкцию и проработку возможных вопросов, это поможет даже новичкам справиться с настройкой. Однако настройка Git и GitHub может быть сложной для тех, кто с этим не сталкивался. Вопросы: есть ли простые способы для резервного копирования вне GitHub, на случай его блокировки? Как обеспечить безопасность токена на мобильных устройствах?

Ответить

Здорово, спасибо большое

Ответить