Идеальный блокнот. Часть 2. Синхронизация Logseq через Syncthing
UPD: ВАЖНО: СУПЕРВАЖНО: перед началом синхронизации сделайте бэкап того, что хотите синхронизировать. В 9 случаях из 10 у меня все прошло хорошо, но когда вчера мы с женой настраивали синхронизацию ее ноута с телефоном, то синхронизатор почему-то тупо удалял файлы. Причину мы не нашли, а синхронизация ноута с компом прошла на ура. Возможно проблема в том, что телефон был ОЧЕНЬ старый, но лучше СДЕЛАЙТЕ БЭКАП!!!
Ну вот и настало время поговорить о сложном: о синхронизации. Сама по себе эта тема очень обширна и сложна. На тему правильной синхронизации данных, разрешения конфликтов и других сопутствующих сложностях написаны целые книги. Но нам сейчас это не нужно. Нужно только понять как же взять наши заметки из логсека и синхронизировать их, например, с телефоном.

А тут уже в принципе нет ничего сложного, если применить Syncthing. Я немного расскажу что это и как оно работает. А инструкция по настройке (на английском языке она есть на официальном сайте программы, поэтому я опишу только базовую настройку) будет ниже.
Итак Syncthing говорит о себе следующее:
Syncthing is a continuous file synchronization program. It synchronizes files between two or more computers in real time, safely protected from prying eyes. Your data is your data alone and you deserve to choose where it is stored, whether it is shared with some third party, and how it’s transmitted over the internet.
Syncthing — это программа непрерывной синхронизации файлов. Он синхронизирует файлы между двумя и более компьютерами в режиме реального времени, надёжно защищая от посторонних глаз. Ваши данные — это только ваши данные, и вы имеете право выбирать, где они будут храниться, будут ли они переданы третьим лицам и как они будут передаваться через Интернет.
Остальное можно прочитать на самом сайте, а вот того, как оно работает там нет. Точнее есть, но поймут не только лишь все, а только IT-шники погруженные глубоко в тему. Поэтому я расскажу немного проще. Вы пытались поиграть в старые сетевые игры через интернет? Или может быть сделать сайт и сделать его доступным со своего компьютера? Если да, то знаете, что найти игру, созданную другим пользователем в интернете довольно сложно. То файрволл не пропускает пакеты, то роутер не имеет "белого IP", то ещё какие-то сложности.
Поэтому существуют целый инструкции по пробросу портов и программы наподобие Hamachi и RadminVPN. Они какой-то магией (для непосвящённых) заставят компьютеры увидеть друг друга. Так вот я немного (и очень упрощённо) приоткрою суть этой "магии".
Где-то в интернете существует сервер Syncthing (или Hamachi или RadminVPN или даже TeamViewer - все они работают схожим образом). Вы скачиваете себе программу Syncthing, которая уж точно знает как подключиться к этому серверу. На два устройства (ноутбук и телефон, например) как минимум (если у вас только одно, то зачем?). И оба устройства подключаются к этому серверу. Такие сервера еще называют login серверами или серверами аутентификации. Вашим устройствам присваиваются ID - уникальные имена ноутбука и телефона в экосистеме Syncthing. Набор букв и цифр, которые вам ничего не скажут, но многое скажут устройствам друг о друге.
Потом вы берете телефон и вводите в него ID ноутбука (и ID телефона в ноутбук). И тогда сервер узнает, что эти два устройства надо "подружить". Он смотрит как устройства можно связать друг с другом и создаёт между ними отдельное прямое подключение (что-то вроде VPN тоннеля или сети Hamachi). После чего сервер только одним глазом поглядывает, что оба устройства в сети или нет. Что они там между собой делают серверу не важно.
Но вот вы подружили устройства, что делать дальше? А дальше вы берете какую-то папку на вашем ноутбуке и показываете программе на неё. И говорите, что хотите, чтобы все файлы из этой папки были синхронизированы с телефоном. После этого на телефоне возникает сообщение: ID-такой-то хочет синхронизировать с вами папку. И вы на телефоне указываете другую папку, которая вскоре станет копией той исходной, с ноутбука. Причём синхронизировать можно как в одну сторону (т.е. телефон будет просто принимать файлы и хранить), так и в обе - когда все изменения на телефоне также отразятся и на ноутбуке.
В общем-то и вся магия. Данные между устройствами летают по тоннелю минуя сервер. Поэтому ваши данные хранятся только у вас. Если же вы кому-то еще разрешите синхронизацию (дадите свой ID, подтвердите его ID, разрешите папке синхронизироваться с ним), а он ваши данные украдет - то тут уж вы сами себе злобный Буратино.
При этом да, вы можете синхронизировать папки на несколько устройств сразу, самих папок можете делать сколько угодно. И даже можете папку с заметками синхронизировать, например, с женой, чтобы она видела что вы хотите купить хлеб, и могла дописать, что надо еще и сыр. А вот папку с любимыми порноактрисами можете с ней не синхронизировать, чтобы она не ревновала понапрасну.

Собственно, дальше инструкция-то не очень и нужна, потому как русскоязычный интерфейс позволит вам легко настроить все и так. Но я все же запилю немного скриншотиков.
Правда сначала мне придется удалить свои папки. Давно хотел навести тут порядок. При удалении "папки" в синхронизаторе файлы в папках останутся на месте, удалится только "связь" между ними.
Итак. Установка, которую я хотел пропустить, но она оказался довольно сложным. Так уж вышло, что есть примерно 3 версии установки. Две с официального сайта, а одна - это форк, сделанный для удобства. Как выяснилось, я пользуюсь именно форком. Но разницы в настройке или интерфейсе между ними нет, поэтому я опишу 2 варианта: с оф сайта и свой.
Вариант 1
1.1 Идём на оф. сайт в раздел downloads и скачиваем вот эту версию. Если вас линукс - то сами разберётесь, что вам и где качать :)

1.2 Потом открываем скачанный файл и разархивируем его куда-нибудь.
1.3 И запускаем syncthing.exe.
- 1.4 Тут уж вам придёться довериться. Нажимаем more info, а потом run anyway

1.5 Ещё защитник Windows заругается. Ему не нравится, что программа стучится в интернет. Но что поделать? Такова её суть.
И тут вы видите вот это:

- И немного пугаетесь. Это ж че, надо в консоли что-то печатать? Прям пальцами? Нет, не надо. Вот вам от нервов:

Потому как у вас открывается браузер и в нем появляется примерно окно программы. И вопрос: хотите ли вы отправлять нам статистику работы программы? Ответ на ваше усмотрение.
А дальше все, установка завершена и можно работать. А можно подождать варианта 2:
Вариант 2
2.1. Гуглим synctrayzor, переходим на гитхаб разработчика.

Гитхаб, это место, где лежат исходные коды программы, которую можно скомпилировать и даже переписать самому. Но!

2.2 Мы не будем этим заниматься (вы можете, если знаете, что делаете, но зачем вы тогда читаете эту инструкцию?:), а просто скачаем последний релиз, нажав вот сюда:

2.3 А потом нужно выбрать файл SyncTrayzorPortable-x64 (1).zip

2.4 И ждём скачивания. И получаем - опять архив. Но мы уже знаем, что с этим делать.
2.5 Распаковываем его куда-нибудь. Ищем нужный SyncTrayzor.exe и запускаем:
2.6 На этот раз никаких страшных консолей не наблюдаем, браузер тоже молчит, зато появляется окно программы с тем же вопросом про отчеты. Ну, вы уже знаете, что нажимать.
А что третий вариант? А тоже самое, что и 1, но с инсталятором. Толку с него ровно 0, поэтому описывать не буду.
Ну что же - тогда переходим к ... установке на телефон.
Там все скучно и грустно. Ищем в playmarket'е syncthing и устанавливаем. Все. Если у вас ыФон- то придется тоже разбираться самостоятельно.
Видим примерно следующее:

Ну, раз не найдены, то пойдём поищем!
Если что там тоже можно переключиться на такой же интерфейс, как на компе, но он для телефона куда как менее удобен, так что лучше оставить как есть.
Фух, с установкой закончили. Самое время подписаться на меня, поставить лайк, налить чайку и задонатить мне на следующие статьи. Стоп, мне же некуда донатить, а на капибаре не работают подписки. Эх, такой план провалился...
Раз план провалился переходим к настройке.
Если нужно переключаемся на русский, или на какой-нибудь ещё на ваш вкус.
Но я останусь на английском. Мне так уже привычнее. В окне программы мы видим вот это:

Кстати, для параноиков можно запаролить настройки синхронизации, о чем вам с амого старта программа и сообщает. Я не заморачивался, но может вам нужно. Если не нужно нажмите ок, чтобы скрыть назойливое окно.
Итак, сразу смотрим на ID. Жмякаем на него.

На телефоне в правом верхнем углу жмём плюс и вводим туда ID. Можно прислать его через мессенджер самому себе, а можно через QR-сканер, если вам так удобнее.
Вводим имя устройства. Любое главное, чтобы вам было понятно. Потом жмём галочку и все, устройство добавлено.
Но почему оно отсоединено? Потому, что на компе появилось вот это:

Жмём добавить устройство (add device) и видим это:

Меняем имя устройства так, чтобы было понятно. И жмём Save.
И теперь у нас есть два связанных устройства. На телефоне тоже видно, что устройство "обновлено".
Все тоже самое можно проделать и в обратном порядке, начав с телефона, но тут, я думаю, вы справитесь и самостоятельно.

Но папку-то мы так и не добавили! Дефаулт фолдер нас мало интересует, её вообще удалить можно. Щелкаем на неё, нажимаем Редактировать (Edit), а потом удалить (remove).
Теперь можно и добавить то, что мы хотим синкать. Жмем добавить папку (add folder). И пишем там примерно то, что на картинке. Label - это имя папки для нас - пишем какое хотим. ID - не трогаем - это для программного кода. А Path - это путь к папке. В данном случае к папке, где лежит граф логсека.

Все, теперь жмем Save.
Несколько секунд скана и мы видим вот это:

Папка-то есть, но мы еще не сказали кому будем ее шарить. Снова тыкаем на папку, жмем Edit и идем на вкладку Shared:

Ставим галочку, что хотим синкаться с нашим телефоном, если надо добавляем пароль и жмем сохранить (Save)
На телефоне появится оповещение о том, что какое-то устройство хочет с нами что-то синхронизировать. Нажав на него мы увидим окно добавления папки. В нем нужно кликнуть на кнопку "папка" и выбрать там путь к тому месту, куда мы хотим поместить файлы с ноута.

Опять же ждем некоторое сканирование, а потом начинается синхронизация. В моем случае она почти мгновенная, потому как файлы и так там уже лежат, нужно только насинкать статью, которую я вот прям сейчас пишу. И получится в итоге вот как-то так:

Все, файлы обновлены, можно пользоваться логсеком на компе и телефоне одновременно. Или добавить еще пару папок. Я, например, синхронизирую книги и проекты игр на Godot, которые пишу. Потому что Godot 4 еще пока с гитом дружит не очень - приходится работать вот с такими костылями.
Если вы добавите еще одно устройство, то там будет примерно то же самое, но можно настроить его синк только с телефоном или с обоими устройствами, как вам будет угодно.
Осталось написать только про конфликты. Вот допустим я выключил синхронизатор (например, интернет сдох) и создал заметку на ноуте. Назвал её "конфликты" и написал: "Как разрешать конфликты?"
И на телефоне создал заметку "конфликты".. Но с другим текстом: "И правда, как?"
И теперь, что случится, если я запущу синхронизацию?
А вот что случится:

При этом заметьте, что изменение в других заметках (статью-то я пишу параллельно со скринами) - прошло без конфликтов. Потому что я на ноуте писал и вставлял картинки, а на телефоне эту статью не трогал.
Итак - нажимает разрешить конфликт (resolve now) и видим вот это:

Вот тут важно не перепутать что мы хотим сделать. Потому что файл, который обозначен как более новый - это тот, который прилетел к нам с телефона. НО!!! Если мы сначала создадим заметку на телефоне, а потом на ноуте, то файл с телефона ТОЖЕ БУДЕТ ОТМЕЧЕН КАК БОЛЕЕ НОВЫЙ! Потому что в нем указано время синхронизации, а не реальное время создания файла.
Поэтому жмем "показать в папке" (show in folder) и смотрим на файлы:

В файле "конфликты" у нас вот текст: "И правда, как?"
А в файле со сложным названием текст: "Как разрешать конфликты?"
И теперь у нас в целом есть 2 варианта:
1. Нажать "choose" на одном из этих файлов. И тогда он будет назван "конфликты", а второй будет удален.
2. Скопировать куда-нибудь файлы или текст из них и разобраться с ними вручную. А потом нажать "choose" на любом и сразу заменить его своим файлом, который мы создали в результате. В первом случаем мы получим один из этих файлов, а во втором я вручную собрал обе строки и получил "Как разрешать конфликты?" "И правда, как?"
Вот, собственно, и все, что я хотел сказать про синхронизацию через SyncTrayzor. Добавить могу только то, что SyncTrayzor и Syncthing полностью совместимы, поэтому на телефон искать SyncTrayzor не нужно. Я и себе-то его поставил просто потому, что не люблю веб-приложения. Браузер и так завален вкладками по самое не хочу. Ну и предостережение: Syncthing на телефоне нещадно жрет батарею. За ночь (в неактивном состоянии, когда никакой синхронизации нет) он высаживает у меня 70% батареи. Без него 3-4%. Поэтому на телефоне я его включаю, жду синхронизации и выключаю. Надеюсь на обновление, чтобы не дергать его туда сюда.
















