Синхронизация заметок Obsidian

1 minute read

img

Введение

Пришло время систематизировать систему знаний, накопленную за более чем 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, в диалоговом окне создаем пользователя и пароль.

  1. Создаем папку (директорию)

img

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

img

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

img

  1. Готово!

Безопасность

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

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.