Files
obsidian-vault/family/how-to/syncthing-truenas-android.md
T

138 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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`
## ⚠️ Проброс порта 22000 (открытие доступа из интернета)
Для прямого P2P-соединения Syncthing использует порт 22000 (TCP+UDP). Без него телефон на мобильном интернете не может соединиться с сервером — соединение идёт по WAN, а не через Caddy.
Проброс настраивается на OpenWrt (роутер):
- **Forward WAN → 192.168.2.197:22000** (TCP+UDP)
- Если доступа к OpenWrt нет — через iptables на TrueNAS:
```bash
sudo /sbin/iptables -t nat -A PREROUTING -i enp3s0 -p tcp --dport 22000 -j DNAT --to-destination 192.168.2.197:22000
sudo /sbin/iptables -t nat -A PREROUTING -i enp3s0 -p udp --dport 22000 -j DNAT --to-destination 192.168.2.197:22000
sudo /sbin/iptables -A FORWARD -p tcp --dport 22000 -j ACCEPT
sudo /sbin/iptables -A FORWARD -p udp --dport 22000 -j ACCEPT
```
После проброса на телефоне в настройках устройства Syncthing:
- Поле **Addresses**: `quic://syncthing.mallexxx.duckdns.org:22000` (без tcp://, только QUIC — UDP-порт открыт, TCP может быть закрыт)
## Контейнер
**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-<date>-<device>.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 инфраструктура