diff --git a/content/blog/refused-syncthing/index.md b/content/blog/refused-syncthing/index.md new file mode 100644 index 0000000..1db22d0 --- /dev/null +++ b/content/blog/refused-syncthing/index.md @@ -0,0 +1,100 @@ ++++ +title = "Отказался от Syncthing" +date = 2025-11-28 +description = "За последние годы я был преданным пользователем Syncthing. Он честно отрабатывал синхронизацию дотфайлов, музыки, баз паролей и хранилища Obsidian между ПК, домашним сервером и телефоном." + +[taxonomies] +tags = ["syncthing", "rsync", "music", "keepass", "seafile", "webdav", "git", "obsidian", "sync", "android", "archlinux"] + +[extra] +quick_navigation_buttons = true +toc = false +mermaid = false +social_media_card = "social_cards/refused-syncthing.png" ++++ + +За последние годы я был преданным пользователем `Syncthing`. Он честно отрабатывал синхронизацию дотфайлов, музыки, баз паролей и хранилища `Obsidian` между ПК, домашним сервером и телефоном. + +Но со временем накопился «технический долг»: постоянные конфликты в `KeePassXC`, лишний трафик, батарея на телефоне, а главное — ощущение, что я использую универсальный молоток там, где достаточно отвёртки. В итоге я полностью отказался от `Syncthing` и перешёл на три узкоспециализированных, но гораздо более надёжных и лёгких решения. + +## 1. Музыка для Navidrome → rsync (односторонняя синхронизация) + +Раньше я синхронизировал ~60 ГБ музыки в обе стороны через `Syncthing`. + +Теперь всё просто: на ПК лежит «золотая» копия библиотеки, а на сервере я обновляю её только когда хочу. + +```bash +rsync -avzh --progress --stats --delete --itemize-changes --exclude='ненужное' /home/zloy_linux/Музыка/ user@server.ru:/home/user/music/ +``` + +Почему `rsync`, а не `Syncthing`: + +- Никаких конфликтов и дублей +- --delete убирает удалённые файлы +- Полный контроль: я решаю, когда и что синхронизировать +- Можно запускать по расписанию через cron/anacron или вручную после добавления альбомов + +**Значение опций:** +**-z** сжатие (полезно, если канал медленный). +**-h** человекочитаемые размеры. +**--stats** - статистика по передаче. +**--delete** - убирает удалённые файлы +**--exclude** исключения. + +## 2. Пароли KeePassXC → Seafile + WebDAV (одна общая база) + +`Syncthing` постоянно создавал .sync-conflict файлы при одновременном редактировании базы с телефона и ПК. Решение оказалось проще простого: + +1. Поднял `Seafile` +2. Включил `WebDAV` в библиотеке +3. В `KeePassXC` на всех устройствах указал один и тот же URL: + +```ini +https://cloud.userdomain.ru:/seafdav/library/sync/paroli.kdbx +``` + +Теперь: + +- Одна база, никаких конфликтов +- Автоматическая блокировка при открытии +- История изменений в Seafile на 180 дней (если вдруг что-то удалишь) + +## 3. Заметки Obsidian → Git + +Раньше я синхронизировал всё хранилице через `Syncthing` → конфликты, битые ссылки, тормоза на мобильном. Сейчас: + +- Хранилище лежит в приватном репозитории на своём Gitea (можно GitHub, GitLab, Codeberg) +- В `Obsidian` установлен плагин `Git` +- Настройки плагина: + +```ini +Commit message: "auto commit: {{date}}" +Auto commit every: 3 минуты +Auto pull/push on startup: включено +Pull on mobile: включено +``` + +На телефоне - приложение `Obsidian` + `git`. Плюсы: + +- Полная история изменений (можно откатить удалённую заметку за секунду) +- Никаких конфликтов - `git` сам делает merge +- Работает даже без интернета (коммиты локально, пуш при подключении) + +## Итог: что я получил после отказа от Syncthing + + + +| Что синхронизирую | Было (Syncthing) | Стало (2025) | Выигрыш | +|-------------------------|------------------------------------------|---------------------------------------|----------------------------------------------------| +| Музыка (~60 ГБ) | Двусторонняя синхронизация, конфликты | rsync (односторонне) | -90 % трафика, нет дублей, полный контроль | +| Пароли (KeePassXC) | Постоянные .kdbx.sync-conflict файлы | Seafile + WebDAV (одна общая база) | Ноль конфликтов, блокировка, история изменений | +| Заметки (Obsidian) | Конфликты, битые ссылки, тормоза | Obsidian Git + личный Gitea | История коммитов, ветки, оффлайн-работа, автопуш | +| Батарея телефона | Syncthing в фоне всё время | Только rsync по необходимости | +2–3 часа автономности | +| Трафик и нагрузка | Постоянный скан и передача | Только когда я сам запускаю | Минимальный фоновый трафик | + + +**Syncthing** - отличный инструмент, но он решает задачу «синхронизировать всё со всем». + +А мне оказалось достаточно трёх точечных решений, которые делают ровно то, что нужно - и ничего лишнего. + +2025 год — год простых и надёжных решений. `rsync` + `Seafile` `WebDAV` + `Obsidian` `Git`. diff --git a/content/blog/refused-syncthing/social_cards/refused-syncthing.png b/content/blog/refused-syncthing/social_cards/refused-syncthing.png new file mode 100644 index 0000000..34c2ec5 Binary files /dev/null and b/content/blog/refused-syncthing/social_cards/refused-syncthing.png differ