Настройка синхронизации Obsidian через WebDAV

🔄 Синхронизация Obsidian: Linux + Android через WebDAV

Полное руководство по настройке синхронизации заметок Obsidian между компьютером (Linux) и мобильным устройством (Android) с использованием собственного веб-сервера.

📋 Варианты синхронизации

Перед началом настройки я рассмотрел несколько вариантов синхронизации:

Способ Плюсы Минусы Сложность
Obsidian Sync (официальный) Работает из коробки, шифрование, версии Платный ($4/мес)
iCloud Drive Бесплатно, просто для Apple Только Apple, ⭐⭐
WebDAV + Remotely Save Бесплатно, свой сервер, кроссплатформа Требует настройки сервера ⭐⭐⭐
Syncthing Бесплатно, приватно, P2P Оба устройства должны быть онлайн ⭐⭐⭐⭐
Git + Obsidian Git Полный контроль, версии Требует знаний Git, нет realtime ⭐⭐⭐⭐⭐
✅ Выбор: Остановился на WebDAV + Remotely Save, так как уже был настроен веб-сервер на Debian 12, а синхронизация должна работать между Linux и Android без дополнительных затрат.

🛠 Часть 1: Настройка Nginx + WebDAV

Шаг 1: Установка Nginx с модулем WebDAV

sudo apt update
sudo apt install nginx nginx-extras

Проверьте наличие модуля WebDAV:

nginx -V 2>&1 | grep -i dav
🔍 Дебаг #1: Если модуль не найден — установите nginx-extras. В моём случае модуль --with-http_dav_module уже был встроен.

Шаг 2: Создание папки для хранилища

sudo mkdir -p /var/www/obsidian/vadivan
sudo chown -R www-data:www-data /var/www/obsidian/vadivan
sudo chmod -R 755 /var/www/obsidian/vadivan

Шаг 3: Создание пользователя для авторизации

sudo apt install apache2-utils
sudo htpasswd -c /etc/nginx/.dav-password vadivan

Введите пароль дважды при запросе.

Шаг 4: Настройка конфигурации Nginx

sudo nano /etc/nginx/sites-available/obsidian-webdav

Вставьте следующий конфиг:

server {
listen 80;
server_name _;

charset utf-8;
charset_types text/plain text/css application/json application/javascript text/xml application/xml;

location /webdav/ {
alias /var/www/obsidian/vadivan/;

dav_methods PUT DELETE MKCOL COPY MOVE;
dav_ext_methods PROPFIND OPTIONS;

auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.dav-password;

autoindex on;
autoindex_format html;
autoindex_localtime on;

add_header DAV "1";
add_header MS-Author-Via "DAV";

client_max_body_size 0;
client_body_timeout 60s;
send_timeout 60s;
}
}
🔍 Дебаг #2: Директива charset utf-8; решает проблему с отображением русских имён файлов в браузере. Без неё будут "кракозябры".
🔍 Дебаг #3: autoindex on; разрешает просмотр списка файлов в браузере. Без этой директивы будет ошибка 403.

Активируйте конфиг и перезагрузите Nginx:

sudo ln -s /etc/nginx/sites-available/obsidian-webdav /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default
sudo nginx -t
sudo systemctl restart nginx
⚠️ Важно: Удалите конфиг default из sites-enabled, иначе он будет перехватывать запросы и вызывать ошибку 404.

Шаг 5: Проверка работы WebDAV

curl -u vadivan http://ВАШ_IP/webdav/ -X PROPFIND -v

Ожидаемый результат: HTTP/1.1 207 Multi-Status

🔍 Дебаг #4: Если получаете 403 — проверьте права на папку и файл с паролями:
ls -la /var/www/obsidian/vadivan/
ls -la /etc/nginx/.dav-password
Файл паролей должен быть читаем для пользователя www-data.

🔌 Часть 2: Настройка плагина Remotely Save

Шаг 1: Установка плагина на ПК (Linux)

  • Откройте Obsidian → Settings → Community plugins
  • Отключите Restricted mode
  • Найдите и установите плагин Remotely Save
  • Включите плагин

Шаг 2: Настройка подключения

Параметр Значение
Service type WebDAV
WebDAV URL http://ВАШ_IP/webdav/
Username vadivan
Password ваш пароль
Change The Remote Base Directory vadivan (имя папки хранилища!)
🔍 Дебаг #5 (КРИТИЧНО): Плагин на ПК автоматически создаёт подпапку с именем vault на сервере. В логах это видно как PROPFIND /webdav/vadivan/. На Android нужно указать то же самое значение в Change The Remote Base Directory, иначе синхронизация будет работать с пустой папкой. Либо хранилища должны называться одинаково на всех устройствах.

Шаг 3: Настройка на Android

  • Установите Obsidian из Google Play
  • Создайте новый пустой Vault локально
  • Установите плагин Remotely Save (через Community plugins)
  • Введите те же настройки, что и на ПК
  • Нажмите Check → появится сообщение "Great! The webdav server can be accessed."
⚠️ Важно для Android: Дайте приложению Obsidian разрешение на доступ ко всем файлам в настройках системы. На Android 11+ доступ к некоторым папкам ограничен.

Шаг 4: Настройка автосинхронизации

В настройках плагина на обоих устройствах:

  • Включите Sync on startup (синхронизация при запуске)
  • Опционально: Auto sync interval (например, каждые 5 минут)

Шаг 5: Бекап локальной базы

💾 Важно: Перед началом синхронизации сделайте резервную копию вашей локальной базы Obsidian. Для этого просто скопируйте весь каталог с хранилищем в безопасное место:
cp -r ~/path/to/your/vault ~/backup/vault-backup-$(date +%Y%m%d)
Это позволит восстановить данные в случае непредвиденных проблем при синхронизации.

🧪 Проверка синхронизации

  1. На ПК создайте тестовую заметку Test.md
  2. На ПК нажмите кнопку синхронизации в Remotely Save
  3. На Android нажмите синхронизацию
  4. Проверьте, что заметка появилась на телефоне
✅ Успех: Если заметка синхронизировалась в обе стороны — настройка завершена!

📊 Мониторинг и отладка

Полезные команды для диагностики:

# Логи Nginx в реальном времени
sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log

# Проверка прав на папку
ls -la /var/www/obsidian/vadivan/

# Проверка подключения
curl -u vad http://ВАШ_IP/webdav/ -X PROPFIND -v

# Перезагрузка Nginx
sudo nginx -t && sudo systemctl restart nginx

⚠️ Важные правила

Правило Причина
Не редактируйте одну заметку одновременно на двух устройствах Будет конфликт версий
Не используйте две системы синхронизации для одного vault Приведёт к потере данных
Всегда делайте синхронизацию перед закрытием Obsidian Чтобы не потерять изменения
Периодически проверяйте логи сервера Для раннего обнаружения проблем

🔒 Рекомендации по безопасности

Сейчас данные передаются по HTTP. Для продакшена рекомендуется:

  1. Настройте HTTPS через Let's Encrypt:
    sudo apt install certbot python3-certbot-nginx
    sudo certbot --nginx -d ваш-домен.ru
  2. Ограничьте доступ по IP в конфиге Nginx
  3. Настройте регулярные бэкапы папки vault на сервере

✅ Финальный чек-лист

  • Nginx установлен и запущен
  • WebDAV настроен и проверен через curl
  • Файлы с русскими именами отображаются корректно
  • Сделан бекап локальной базы Obsidian
  • Плагин Remotely Save установлен на ПК и Android
  • Change The Remote Base Directory одинаковый на всех устройствах
  • Первая синхронизация прошла успешно
  • Автосинхронизация настроена
  • Тестовая заметка синхронизировалась в обе стороны

Время настройки: ~1 час | Сложность: средняя | Стоимость: бесплатно

Добавить комментарий

(0 Votes)

Поиск по сайту