Настройка синхронизации Obsidian между своими устройствами с использованием единого хранилища

Введение
Пришло время систематизировать систему знаний, накопленную за более чем 10 лет ведения заметок в разных местах, начиная от обычных приложений для заметок, заканчивая полноценными инструкциями по выполнению тех или иных задач.
Выбор пал в пользу набирающиего популярность инструмента Obsidian.
Установка
В качестве инструмента синхронизации будем использовать сервис syncthing
, установим его на наш отдельный linux сервер: Инструкция (всего 5 команд)
1-й запуск (необходим для генерации конфига):
syncthing
Небольшие правки в конфиге:
vim ~/.config/syncthing/config.xml
Ищем gui enabled
, примерно 92 строка файла, там будет адрес и порт. Вносим правки (базовый пример):
Адрес: 0.0.0.0
, порт 8122
, tls="false"
<gui enabled="true" tls="false" debugging="false"> <address>0.0.0.0:8122</address> <user>artydev</user> </gui>
Запускаем сервис (где www - пользователь, от которого происходит запуск):
sudo systemctl enable syncthing@www.service sudo systemctl start syncthing@www.service sudo systemctl status syncthing@www.service
Итого, мы получаем сервис на адресе вашего выделенного сервера, далее закроем его HTTPS протоколом и отдельным доменными именем (в качестве примера возьмем notes.example.ru
).
cd /etc/nginx/sites-available; \ touch notes.example.ru; \ ln -s /etc/nginx/sites-available/notes.example.ru /etc/nginx/sites-enabled
Содержимое файла /etc/nginx/sites-available/notes.
example.ru
server { server_name notes.example.ru; location / { include proxy_params; proxy_pass http://127.0.0.1:8122; } }
Проверка nginx -t
, если succesfull - генерируем ssl-сертификат (Инструкция по установке certbot для ubuntu)
sudo certbot --nginx
Перезапускаем nginx:
sudo systemctl restart nginx
Переходим по https://notes.example.ru, в диалоговом окне создаем пользователя и пароль.
- Создаем папку (директорию)

- Указываем путь к новой папке (директории)

- Получаем координаты этой папки для добавления на другие устройства (Действия -> Показать ID)

- Готово!
Безопасность
Храня данные в одном месте, хоть и на собственном сервере - всегда существует риск их потерять.
Не буду перечислять возможные ситуации с удалением всех файлов и синхронизацией пустой папки на остальных ваших устройствах, а просто напишем простенький скрипт для архивирования (бэкапирования) содержимого директории.
vim backup.py
import shutil import datetime day = datetime.datetime.now().strftime("%Y-%m-%d") archive_dir = f"/home/www/archive/notes_{day}" notes_dir = "/home/www/obsidian/notes" shutil.make_archive(archive_dir, "zip", notes_dir)
crontab -e
50 23 * * * python3 /home/www/backup.py
Большое спасибо всем за внимание!
Подписывайтесь на мой телеграм-канал artydev & Co.