Obsidian+Github вместо Notion: синхронизация, бекап и версионность (3-в-1)
В моем тг канале, вы найдете больше удобных сервисов и ИИ инструментов, так что велком всех жду!О том, как сделать прозрачную синхронизацию заметок 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
Комментарий: файл .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 на основе скаченной папки
- Из программы Obsidian: открыть синхронизированную папку my-obsidian-vault как хранилище
- Теперь можно заполнить "хранилище" заметками и файлами, или просто отредактировать README.md
Если у вас уже есть заметки в Obsidian, то алгоритм будет тот-же:
- сначала создать и синхронизировать пустой репозиторий с github
- затем скопировать туда все файлы из старого хранилища
3с: Настроить синхронизацию через obsidian-плагин 'Git'
В настройках Обсидиана, в разделе "Community plugins" найти и установить плагин 'git'
Далее, в настройках самого плагина git, установить:
Vault Backup Interval (minutes): 1
Auto Backup after stopping file edits: ВКЛ
Pull updates on startup: ВКЛ
Disable notifications: ВКЛ (можно не включать, но тогда каждую минуту будут появляться уведомления)
Теперь все заметки из этого хранилища, каждую минуту после завершения редактирования, будут загружаться в Github. Также, при запуске Obsidian, последняя версия заметок сразу подгрузится с GitHub.
Если не хочется ждать минуту, то принудительно загрузить изменения на GitHub можно через Obsidian-команду "Git: Create backup": CTRL+P, git b. Также (в настройках Obsidian) можно создать горячую клавишу для этой команды (например, ALT+S)
Шаг 4: Синхронизация с мобильным (Android, iOS)
Здесь всё проще, чем на десктопе:
- Открыть приложение 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 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 — синхронизация идёт; закрыл — не идёт.
Где смотреть историю изменений файлов?
Если вы не сильны в 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 — вы знаете что делать.
В моем тг канале, вы найдете больше удобных сервисов и ИИ инструментов, так что велком всех жду!