Сегодня в нашем кружке «оч.умелые клавиатурки» возврат блудных заметок домой. Долго пользовался платным Evernote, но оплатить его все труднее и дороже. Вернее даже так, сейчас я знаю всего один способ оплатить подписку через Билайн / МТС и Apple. Притом без оплаты подписки Evernote ужасен и порезан самым неприятным образом. Конечно есть ещё Notion, но кто знает как и когда он окуклиться как это случилось со временем с Evernote.
В качестве новой основы заметок я выбрал obsidian.md. Море документации, толпа плагинов, готовые сборки подо все используемые мной платформы, в общем, все как мы любим. Я верю что вы умеете ставить докер и не стал это добавлять отдельным пунктом и немного понимаете ansible сценарии, потому что пару ролей будет именно на нем
Синхронизация
В результате долгих раздумий в качестве синхронизации был выбран git. Реализуется такая синхронизация с помощью плагина. Он имеет некоторые особенности:
-
Не умеет работать с ключами и ssh, удалось завести только с https и паролем
-
Так как это плагин, а плагины в obsidian хранятся в директории с заметками, то при первом использовании возникает проблема курица и яйца, впрочем легко решаемая, расскажу об этом далее.
-
Файл
.obsidian/workspace.jsonчасто вызывает конфликты при pull/push, поэтому его надо сразу добавить в.gitignore как описано тут. -
Как правильно сказал @gmtd в комментариях плагин имеет большие проблемы с производительностью, у меня это стрельнуло примерно на 400 файлах, с MacOS изменения залились но вот на телефоне с 12G RAM Oblivion сделать pull этим изменениями не смог, и тупо падал в процессе. Поэтому пришлось идти в каталог через termux и делать git pull установленным гитом. Поэтому рекомендуется делать импорт из Evernote и первый push делать на ноуте или десктопе. Там проще себе помочь нативным запуском git если что‑то пойдёт не так. А на новые девайсы лучше тащить весь каталог при начале работы, и потом уже push/pull обычной работы обычно небольшими изменениями.
GIT + HTTPS
Так как мы в нашем кружке бежим из облаков и становимся хозяевами своих данных, то git https мы тоже будем держать свой. Описанный ниже сетап отлично живёт на Raspberry PI 4, которая торчит в DMZ дома и открыта по 443 порту через DNAT. Немного схем сетапа есть в статье. GIT живёт там же где и nextcloud. В качестве https могу сильно порекомендовать caddyserver.com. C минимальной конфигурацией он будет сам делать let’s encrypt сертификаты и реверсно проксировать наш git, о котором ниже. В нашем кружке мы немного девопсеры и поэтому описание деплоя будет на Ansible. Для простоты не будут приведены рестартующие хендлеры и прочая очевидная шняга. Caddy можно деплоить примерно такой ansible ролью:
tasks/main.yaml и files/Caddyfile
- name: Create /etc/caddy file: path: "{{ item }}" state: directory mode: 0755 loop: - /etc/caddy - /etc/caddy/sites/ - name: Create caddy docker volumes docker_volume: name: loop: - caddy_config - caddy_data - name: Start caddy docker_container: name: caddy image: caddy:latest network_mode: host restart_policy: always state: started volumes: - /etc/caddy:/etc/caddy - caddy_config:/config - caddy_data:/data - name: Copy Caddyfile copy: src: Caddyfile dest: /etc/caddy/Caddyfile mode: 0644 notify: - Restart caddy
{ email my@email.ru } import /etc/caddy/sites/*.caddy
На что надо обратить внимание
-
Volume caddy_config и caddy_data обязательно нужны, иначе при каждом рестарте caddy будет забывать что ssl сертификат запрошен и получен, он будет делать это снова и вас быстренько забанят на letsencrypt.org
-
email в file/Caddyfile тоже обязателен и может быть любой, это тоже для letsencrypt.org
После прогона роли у нас все готово для git. В качестве git рекомендую gerrit. Ахаха, испугались? Шучу. gogs.io. Эдакий гитхаб на минималках. Не скажу чем он лучше или хуже gitea.com, выглядит легковеснее и отлично работает на rasberry pi 4. Роль для него на Ansible выглядит примерно так:
tasks/main.yaml и files/Caddyfile
############## Caddy - name: Caddy include_role: name: caddy - name: Copy Caddyfile copy: src: caddy/Caddyfile dest: /etc/caddy/sites/git.caddy mode: '0644' notify: - Restart caddy - name: Create /var/gogs/ file: path: /var/gogs state: directory mode: '0755' - name: Start Gogs docker_container: name: gogs image: gogs/gogs:latest state: started restart_policy: always volumes: - /var/gogs:/data ports: - "18743:22" - "3003:3000" env: RUN_CROND: "true" BACKUP_INTERVAL: "1d" BACKUP_RETENTION: "6M"
git.example.com { reverse_proxy 127.0.0.1:3003 }
Собственно только после прогона этой роли https на caddy и заработает, потому что caddy поймет что сертификат надо будет делать для сайта git.example.com
Начало работы
Из за ограничений Рекомендую начинать работать на лаптопе или десктопе
-
создаем новый каталог
-
вручную создаем в нем .git через
git init -
создаем .gitignore, как описано тут.
-
Добавляем его и коммитим в git репу
-
Открываем в Obisidian каталог как vault, ставим git плагин, настраиваем бекап через git
-
Экспортируем заметки из Evernote, импортируем их в Obisidian
Добавление новых устройств
Ввиду проблемы курицы и яйца, а так же проблемы у гит плагина при большом количестве файлов при начале использования Obsidian на новом девайса рекомендую утащить каталог целиком с уже настроенного девайса и открыть его на новом девайсе как vault.
Бекапы
Ввиду того что это git в версионности бекапов особого смысла нет. На самом деле при большом количестве девайсов и в бекапах особо нет смысла. У меня, например, Obsidian живёт на iPad, MacOS, Android и Linux. То есть на 6 девайсах есть своя копия разной степени синканутости. Так что потеря сервера не выглядит чем-то критичным в свете потери данных. Но вполне можно запилить на сервере и бекап, ничего сложного.
Шаринг
Для шаринга отдельных заметок можно использовать, например, плагин. Нужно будет создать аккаунт в notion, получить api key и database id. Все описано в документации плагина, правда лично мне по началу не очень понятно, пришлось поморщить мозг. Но оно точно работает, клянусь соседским порoсенком. Возможно есть ещё плагины, но мне зашёл именно этот.
ссылка на оригинал статьи https://habr.com/ru/articles/814677/
Добавить комментарий