Синхронизация заметок 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.