From 3a051b92349bd3a9caa316c563f576a7832f36af Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Fri, 29 May 2026 12:44:42 +0600 Subject: [PATCH] =?UTF-8?q?[2026-05-29]=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=20how-to:=20syncthing=20truenas=20android?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- family/how-to/syncthing-truenas-android.md | 120 +++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 family/how-to/syncthing-truenas-android.md diff --git a/family/how-to/syncthing-truenas-android.md b/family/how-to/syncthing-truenas-android.md new file mode 100644 index 00000000..8f1e26e3 --- /dev/null +++ b/family/how-to/syncthing-truenas-android.md @@ -0,0 +1,120 @@ +--- +tags: + - syncthing + - truenas + - android + - obsidian + - sync + - how-to +created: '2026-05-29' +updated: '2026-05-29' +status: active +--- +# Syncthing — TrueNAS ↔ Android + +**Статус:** ✅ контейнер на TrueNAS работает, Caddy настроен + +## Архитектура + +``` +Android (Syncthing app) + │ P2P sync (QUIC/TCP :22000) + ▼ +TrueNAS (syncthing контейнер) + /var/syncthing/obsidian-vault → /mnt/RED_2TB/storage/obsidian + │ + ├── Obsidian vault (полная копия на TrueNAS) + └── Eagle (Mac) — продолжает через git, Syncthing не участвует +``` + +## Доступ + +- **Web UI:** https://syncthing.mallexxx.duckdns.org +- **Авторизация:** встроенная GUI Authentication Syncthing (не Caddy basic_auth) +- **Локально на TrueNAS:** `http://localhost:8384` + +## Контейнер + +**Compose:** `/mnt/RED_2TB/docker/syncthing/docker-compose.yml` + +```yaml +services: + syncthing: + image: syncthing/syncthing:latest + container_name: syncthing + hostname: syncthing-taiga + restart: unless-stopped + user: "950:950" + environment: + - PUID=950 + - PGID=950 + - TZ=Asia/Novosibirsk + volumes: + - /mnt/RED_2TB/docker/syncthing/config:/var/syncthing/config + - /mnt/RED_2TB/storage/obsidian:/var/syncthing/obsidian-vault + ports: + - "22000:22000/tcp" + - "22000:22000/udp" + - "21027:21027/udp" + networks: + - caddy_default + +networks: + caddy_default: + external: true +``` + +**UID 950** = `truenas_admin` — имеет `FULL_CONTROL` ACL на `/mnt/RED_2TB/storage/obsidian`. + +## Caddy + +В `/mnt/RED_2TB/docker/caddy/Caddyfile`: + +``` +syncthing.mallexxx.duckdns.org { + reverse_proxy syncthing:8384 +} +``` + +Без basic_auth — защита через встроенную GUI Authentication Syncthing. + +## Настройка после развёрта + +1. Открыть https://syncthing.mallexxx.duckdns.org +2. Settings → GUI → установить **GUI Authentication User** и **GUI Authentication Password** +3. Добавить папку: **Add Folder** + - Folder Label: `obsidian-vault` + - Folder ID: `obsidian-vault` + - Folder Path: `/var/syncthing/obsidian-vault` + - File Versioning: по желанию (Trash can / Simple) +4. На телефоне Android: установить Syncthing (из F-Droid или Play Market) + - Добавить устройство (сканировать QR код сервера или ввести Device ID) + - Добавить ту же папку `obsidian-vault`, указать локальный путь (например `~/Documents/Obsidian`) + - Настроить File Versioning (рекомендуется `Trash can`, 30 дней) + - Включить синк + +## Поведение + +- **Фон:** Syncthing работает через `Foreground Service` — на Samsung One UI стабильно +- **Конфликты:** Автоматически — создаёт `.filename.sync-conflict--.md` (скрытые файлы с точкой) +- **Настройка конфликтов:** В настройках папки можно убрать точку — `Store conflict files with version extension (not Hidden)` +- **Автоудаление конфликтов:** `File Versioning` → `Trash can` → очищать через N дней + +## Обслуживание + +```bash +# Логи +docker logs syncthing --tail 20 + +# Рестарт +docker compose -f /mnt/RED_2TB/docker/syncthing/docker-compose.yml restart + +# Остановка +docker compose -f /mnt/RED_2TB/docker/syncthing/docker-compose.yml down +``` + +## Связанные заметки + +- [[obsidian-android-sync]] — git-based синк (альтернатива через Gitea) +- [[obsidian-sync]] — общая архитектура sync Eagle ↔ Taiga ↔ Kraken +- [[truenas-infrastructure]] — TrueNAS инфраструктура