Мы поймали много геморроя с «синк-синком». Здесь — все наши грабли и все костыли, которые мы наворотили вокруг него, и честный разбор альтернатив под нашу реальную задачу.
Собрано с живой машины MacBook-Anton (Mac16) · факты по альтернативам сверены на 2026
Проблема не в Syncthing. Проблема в том, что мы навесили на него три разные работы сразу, а он умеет только одну.
Syncthing — это «репликатор файлов, где все равны и нет главного». А мы гоняем через него: (1) склад — 180 тыс. файлов волта; (2) конфиг — скиллы/память/CLAUDE.md; (3) рацию — межмашинную связь, консенсус, одобрения. Третье он в принципе не умеет — отсюда весь зоопарк костылей.
Лечение — не «сменить Syncthing на X», а разделить три работы по трём разным инструментам и назначить хаб единственным хозяином. Тогда 80% боли и почти все костыли исчезают. Детали — в конце.
*.sync-conflict накопленоРеальная раскладка папок (с живого конфига Mac16):
| Папка | Режим | Что это | Боль |
|---|---|---|---|
anton-knowledge | sendreceive | Весь волт, 180k файлов | На грани возможностей Syncthing по числу файлов |
claude-home / skills / memory / imports | receiveonly | Конфиг Claude, только приём | Локальная правка молча откатывается |
machine-bus | sendreceive | «Рация» между машинами | Файл-папка в роли месседж-шины — отстаёт |
id="" path="" | битая | Пустая запись-призрак в config.xml | Мусор в конфиге, тихий источник ошибок |
Связь только по LAN (192.168.1.44:22000), 1 активное соединение с хабом. Прямо сейчас статус зелёный: idle, 0 ошибок, 0 needFiles — но это «сейчас», а история шрамов ниже.
*.sync-conflict. Бьют по координационным/индексным файлам: _DR-Registry (8×), каталоги сессий, Task-Backlog, _heartbeat-*, MOC-и, дашборды. 4 июля отдельно раскололо always-loaded MEMORY.md, declined-decisions, cofounder-growth-log.
find ~ -name "*.sync-conflict-*" → 959; папка _conflict-fix-bak-20260704/. Два узла правят один файл → тихий clobber. Это не «однажды не повезло», это фон.claude-home/skills/memory/imports = receiveonly в config.xml. Выглядит как «мои правки пропали»._machine-bus застревает. Межмашинная связь встаёт, пока не поднимешь пира. P2P глушится NAT/VPN (у нас по факту работает только по локалке).
_syncthing_watchdog_log.txt) — костыль работает прямо сейчас.~/.claude/skills — спасла ручная копия. Отсюда обязательный git-бэкап конфига на каждой машине + снимок со счётчиками до→после.
По каждой грабле мы дописывали подпорку. Получился целый слой middleware поверх «просто синка файлов». Само его существование — главный симптом: мы вручную дособираем распределённую систему, которой Syncthing не является.
Watchdog-и живучести
syncthing_follower_watchdog.sh (5 мин)peer_watch.py — жив ли пирTelegram-шина вместо файлов
bus_send.py / bus_ping.pytg_bus.py / tg_bus_read.pymachine_bus.py — failover-курьер«Посылки» — форс-применение
deploy_check / apply / registerPENDING-<host>Замки от гонок правок
onair.py — доска ON AIR*.sync-conflict перед правкойДоговорённости машин
consensus.py (переехал в TG)inbox_robot.commandБэкапы и сверка
~/.claude (15 мин)_conflict-fix-bak≈14 скриптов + десяток правил в CLAUDE.md/памяти существуют только чтобы компенсировать поведение синка. Это не «мы плохо настроили» — это цена использования P2P-репликатора не по назначению.
Syncthing спроектирован как «много равных узлов, нет главного, файлы догоняют друг друга когда-нибудь». Мы просим у него три вещи, две из которых он делать не обязан:
Почему больно? → потому что нет единого хозяина (все пишут) и мы используем «когда-нибудь доедет» там, где нужна мгновенная очередь сообщений. Оба — не про Syncthing.
Оценка против наших нужд: near-real-time · Win+Mac · тянет 180k файлов · синкает и конфиг · ясный «единый источник правды» · простота (АК-47) · цена.
| Вариант | Модель | Real-time | Единый хозяин | Конфиг+бус | Цена | Вердикт под нас |
|---|---|---|---|---|---|---|
| Syncthing + тюнинг оставить, но починить |
P2P репликатор | да | нет (все равны) | частично | $0 | базовый шаг Убрать битую папку, .stignore на медиа/кэши, хаб = единственный писатель always-loaded. Дёшево, снимает часть боли. |
| Resilio Sync | P2P (BitTorrent) | да | нет | частично | free / $ | вбок Быстрее по WAN, проще UI, но тот же класс (eventual, нет главного, проприетарное). Координацию не лечит. |
| rclone bisync | по расписанию | нет | через облако | нет | $0 | не для жизни Не real-time, опасен при одновременных правках, нужны --resilient/--recover. Хорош как бэкап в облако, не как живой синк. |
| Obsidian Sync | централизованный (их сервер) | да | да | волт+настройки, не ~/.claude | $4/мес | для волта — топ E2E-шифрование, история версий, до 10 волтов, 10 ГБ. Чисто решает половину «волт». Но не синкает ~/.claude и не рация. |
| Облако-диск Google Drive / Dropbox / iCloud |
централизованный | почти | да (облако) | да, как папка | есть у нас | АК-47-путь Mac16 уже на Google Drive. Просто, один источник правды. Минус: слабые конфликты, тормоза материализации файлов, не мгновенно. |
| Seafile на хабе | централизованный (свой сервер) | да | да, хаб=сервер | файлы да, бус — нет | $0 (self-host) | склад — топ C-движок, в 2–3× быстрее Nextcloud, надёжный. Хаб всегда включён → идеальный сервер. Централизованный хозяин убивает конфликт-неоднозначность. |
| Nextcloud на хабе | централизованный | да | да | файлы да | $0 | тяжелее Функций море (PHP), но медленнее и сложнее в поддержке. Против АК-47. |
| Git (для конфига/текста) | версионный, хаб=origin | нет (pull) | да | конфиг — идеально | $0 | конфиг — топ Уже бэкапим ~/.claude гитом! Версии, понятные конфликты, крошечный объём. Убивает receiveonly-ловушку и «тихое удаление». |
Никакой один инструмент не закрывает все три работы. Поэтому — не «заменить», а «разделить».
Волт (180k файлов)
Хаб = единственный хозяин. Либо Syncthing с хаб-авторитетом + .stignore (медиа/кэши/.git вон → число файлов вниз), либо Obsidian Sync для заметок + тяжёлые медиа на Google Drive с указателями (правило у нас уже есть).
~/.claude (скиллы/память)
Перевести на git: хаб = origin, followers делают pull. Уже бэкапится гитом — осталось сделать его основным каналом. Убирает receiveonly-ловушку, «тихое удаление» и конфликты always-loaded файлов разом.
Связь / консенсус / одобрения
Telegram — единственная рация (уже почти так). Файловую _machine-bus вывести из роли шины полностью. Это выключает целый класс костылей: watchdog-пиров, failover-курьера, прескан конфликтов.
id="") из config.xml..stignore (он уже есть, рядом бэкап от отката d2 25 июня): исключить _originals-медиа, .git, .stversions, кэши эмбеддингов, node_modules → срезать число файлов из зоны риска 180k.*.sync-conflict-копий (после сверки, что живые версии целы).MEMORY.md, канон) правит только хаб. На одной машине за раз.Результат: Syncthing (или его замена) делает одну работу — реплицирует файлы под единым хозяином. Конфиг живёт в git (версии, откат). Связь — в Telegram (мгновенно, видно людям). ~80% боли и почти весь костыль-слой отмирают.
Представь, что Syncthing — это копир-мальчик, который бегает между твоими компами и делает так, чтобы у всех лежали одинаковые бумажки. Он хороший, но мы нагрузили его тремя делами сразу: таскать гору бумаг (180 тысяч!), носить твои настройки, и ещё быть рацией, чтобы компы переговаривались. Рацией он быть не умеет — вот и получается, что мы приклеили к нему кучу подпорок скотчем, чтобы он не падал.
Правильно — не выгонять мальчика, а раздать три дела трём помощникам: гору бумаг держит один главный компьютер-хаб (все берут у него), настройки возить через «git» (он помнит все версии и ничего не теряет), а переговоры вести по Telegram (быстро и видно глазами). Тогда мальчику остаётся одно простое дело — и скотч больше не нужен.
Скопируй в ChatGPT/Gemini Deep Research, если хочешь независимо перепроверить вывод перед решением:
Syncthing scaling: forum · docs/tuning · issue #8602 · Resilio vs Syncthing: technologycounter · fast.io · rclone bisync: rclone.org · forum · Obsidian Sync: obsidian.md/pricing · Seafile/Nextcloud: computingforgeeks · ssdnodes
Собрано Claude (Max, ветка Mac16) с живой машины MacBook-Anton · 07.07.2026 · грабли/костыли — по факту с диска, альтернативы сверены на 2026. Не решение за тебя — карта, чтобы решить самому.