--- tags: [syncthing, truenas, debug, incident] created: 2026-08-31 status: resolved-syncthing (see 2026-09-02 for cascade) --- # Incident: Syncthing не синкается с TrueNAS (после restore) > **UPDATE 2026-09-02:** Syncthing-фикс подтверждён рабочим (см. ниже «Резолюция 2026-09-02»). НО выяснилось, что та же поломка прав ред 921/0000 поразила и `storage/git/` (bare repo obsidian → git-sync на маке стоит, ahead 55) и все медиа-папки (`storage/{Movies,Cartoons,Downloads,Music,series,shared}`) → arr/jellyfin-стек на TrueNAS неработоспособен. См. `family/documents/vault-sync/2026-09-02-restore-privilege-scope.md`. **Дата диагностики:** 2026-08-31 **Симптом:** "Syncthing не конектится к TrueNAS; TrueNAS не в нашей сети, доступен через внешний адрес". В UI папка не синкается / процентов нет. ## Краткий вывод **Соединение НЕ сломано.** И контейнер на TrueNAS, и телефон успешно поднимают TCP/TCP+TLS через внешний адрес `90.189.160.148:22000` (`syncthing.mallexxx.duckdns.org`). **Стоит файловая синхронизация** из-за сломанных прав на `/mnt/RED_2TB/storage/obsidian` после восстановления из бэкапа. ## Диагностика (оба конца) | Уровень | Status | Деталь | |---------|--------|--------| | TCP 22000 внешний (`syncthing.mallexxx.duckdns.org`) | ✅ | `Connection succeeded` | | SSH TrueNAS (`mallexxx.duckdns.org`) | ✅ | IP 192.168.2.197 (DNAT жив) | | Контейнер `syncthing` | ✅ | `Up 6 days (healthy)`, порты 22000 tcp/udp + 21027 | | Телефон↔TrueNAS соединение | ✅ | `connected: true` (REST API, в обе стороны) | | **Файловая синхронизация** | ❌ **error** | папка `error: stat .stfolder: permission denied` | Плюс в логе телефона (последние записи 12:41–13:55): ``` WRN Failed to sync (path=family/how-to/truenas-access.md error="syncing: finishing: pull: no such file") WRN Failed to sync (path=family/how-to/truenas-sata-ports-and-zfs-pools.md ...) INF Folder failed to sync, will be retried (wait=1m → 32m → 1h4m) ``` ## Корень После restore `/mnt/RED_2TB/storage/*` стал принадлежать **uid 921 = transmission** с правами `----------`(0000)/`d---------`, вместо `truenas_admin` (950). ``` d--------- 7 921 921 ... /mnt/RED_2TB/storage/obsidian getent passwd 921 → transmission:x:921:921 ``` Контейнер syncthing работает под **uid 950** и должен иметь FULL_CONTROL на папку. Из-за нулевых прав не читает даже `.stfolder` → папка в error → телефон не может вытянуть зависшие файлы (`truenas-access.md`, `truenas-sata-ports-and-zfs-pools.md`) → вся папка стоит. ⚠️ **Масштаб:** судя по `ls -la /mnt/RED_2TB/storage`, та же проблема может касаться Cartoons, Downloads, Movies, Music, git, shared, series и др. — всё 921/0000. Проверить другие сервисы. ## План фикса (НЕ выполнен — требует подтверждения + бэкап ACL) 1. Снять бэкап текущих ACL: `getfacl -R /mnt/RED_2TB/storage/obsidian > /mnt/RED_2TB/backup/_acl_obsidian_$(date +%F).facl` 2. Вернуть владельца и права: ``` sudo chown -R 950:950 /mnt/RED_2TB/storage/obsidian sudo chmod -R u+rwX,g+rwX /mnt/RED_2TB/storage/obsidian ``` 3. Рестарт контейнера: `docker compose -f /mnt/RED_2TB/docker/syncthing/docker-compose.yml restart` 4. Дождаться `Completed scan`, проверить статус папки через REST. ## Резолюция 2026-09-02 (Syncthing — подтверждено рабочим) **Факт (проверка read-only с хоста TrueNAS):** синхронизация obsidian починена и работает. Критически важная деталь диагностики 31-08: **в compose-файле контейнера mount указывает на ДРУГУЮ папку, не ту, что в оригинальной доке:** ```yaml volumes: - /mnt/RED_2TB/storage/obsidian-syncthing:/var/syncthing/obsidian-vault # актуальный mount ``` (в `family/how-to/syncthing-truenas-android.md` и исходном compose стоит `/storage/obsidian` без `-syncthing` — УСТАРЕЛО). **Какие папки есть и рабочая ли состояния:** ``` /mnt/RED_2TB/storage/obsidian drwxrwx--- truenas_admin (950) Jul 23 /mnt/RED_2TB/storage/obsidian-syncthing drwxrwx--- truenas_admin (950) Aug 31 ← рабочий mount /mnt/RED_2TB/storage/obsidian/.stfolder → НЕТ (не нужен, это не sync target) /mnt/RED_2TB/storage/obsidian-syncthing/.stfolder → ЕСТЬ (маркер syncthing, uid 950) ``` Права обеих папок починены на `950:950 truenas_admin` (были `d--------- 921:921`). `.stfolder` есть в `obsidian-syncthing` — это активная sync-копия vault. Папка после фикса в `Completed scan`, телефон подтянул зависшие файлы. **Итог:** рабочий mount в compose — `obsidian-syncthing`, никакой rename папки не требуется. Док `syncthing-truenas-android.md` требует обновления своего `volumes:` блока до `obsidian-syncthing`. ## Затрагиваемые файлы (лог телефона) - `family/how-to/truenas-access.md` - `family/how-to/truenas-sata-ports-and-zfs-pools.md` ## Техническая карта Syncthing - Устройства sync: `XJRJQB2-...` = контейнер TrueNAS (myID), `C6DYBCZ-...` = телефон SM-S931B (v2.1.3) - Folder ID: `k5vyy-gzdgj`, label `Obsidian Vault`, path `/var/syncthing/obsidian-vault` - GUI на TrueNAS: 'syncthing-admin', apikey в config.xml ## Связанные заметки - [[syncthing-truenas-android]] — основная документация по этой схеме