Files
blog.zlinux.ru/content/blog/refused-syncthing/index.md

6.8 KiB
Raw Blame History

+++ 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.

Теперь всё просто: на ПК лежит «золотая» копия библиотеки, а на сервере я обновляю её только когда хочу.

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:
https://cloud.userdomain.ru:/seafdav/library/sync/paroli.kdbx

Теперь:

  • Одна база, никаких конфликтов
  • Автоматическая блокировка при открытии
  • История изменений в Seafile на 180 дней (если вдруг что-то удалишь)

3. Заметки Obsidian → Git

Раньше я синхронизировал всё хранилице через Syncthing → конфликты, битые ссылки, тормоза на мобильном. Сейчас:

  • Хранилище лежит в приватном репозитории на своём Gitea (можно GitHub, GitLab, Codeberg)
  • В Obsidian установлен плагин Git
  • Настройки плагина:
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 по необходимости +23 часа автономности
Трафик и нагрузка Постоянный скан и передача Только когда я сам запускаю Минимальный фоновый трафик

Syncthing - отличный инструмент, но он решает задачу «синхронизировать всё со всем».

А мне оказалось достаточно трёх точечных решений, которые делают ровно то, что нужно - и ничего лишнего.

2025 год — год простых и надёжных решений. rsync + Seafile WebDAV + Obsidian Git.