6.4 KiB
tags, created, status
| tags | created | status | ||||
|---|---|---|---|---|---|---|
|
2026-08-31 | 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)
- Снять бэкап текущих ACL:
getfacl -R /mnt/RED_2TB/storage/obsidian > /mnt/RED_2TB/backup/_acl_obsidian_$(date +%F).facl - Вернуть владельца и права:
sudo chown -R 950:950 /mnt/RED_2TB/storage/obsidian sudo chmod -R u+rwX,g+rwX /mnt/RED_2TB/storage/obsidian - Рестарт контейнера:
docker compose -f /mnt/RED_2TB/docker/syncthing/docker-compose.yml restart - Дождаться
Completed scan, проверить статус папки через REST.
Резолюция 2026-09-02 (Syncthing — подтверждено рабочим)
Факт (проверка read-only с хоста TrueNAS): синхронизация obsidian починена и работает.
Критически важная деталь диагностики 31-08: в compose-файле контейнера mount указывает на ДРУГУЮ папку, не ту, что в оригинальной доке:
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.mdfamily/how-to/truenas-sata-ports-and-zfs-pools.md
Техническая карта Syncthing
- Устройства sync:
XJRJQB2-...= контейнер TrueNAS (myID),C6DYBCZ-...= телефон SM-S931B (v2.1.3) - Folder ID:
k5vyy-gzdgj, labelObsidian Vault, path/var/syncthing/obsidian-vault - GUI на TrueNAS: 'syncthing-admin', apikey в config.xml
Связанные заметки
- syncthing-truenas-android — основная документация по этой схеме