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

120 lines
4.6 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.
# Syncthing — TrueNAS ↔ Android
**Статус:** ✅ контейнер на TrueNAS работает, Caddy настроен, порт 22000 проброшен на OpenWrt, синхронизация работает
## Архитектура
```
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`
- **Порт синхронизации (WAN):** TCP+UDP 22000 — проброшен на OpenWrt через DNAT на 192.168.2.197:22000
> ⚠️ Для прямой синхронизации через мобильный интернет необходим проброс порта 22000 на роутере. Без него телефон может соединиться только через relay-сервера.
## Контейнер
**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. Установить Syncthing (F-Droid или Play Market)
2. Добавить устройство сервера (сканировать QR код или ввести Device ID)
3. Нажать на устройство → цепочка/ссылка (Addresses) → вписать:
```
tcp://syncthing.mallexxx.duckdns.org:22000, quic://syncthing.mallexxx.duckdns.org:22000
```
4. Добавить папку `obsidian-vault`, указать локальный путь (например `~/Documents/Obsidian`)
5. Настроить File Versioning (рекомендуется `Trash can`, 30 дней)
6. Включить синк
## Настройка после развёрта
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)
## Поведение
- **Фон:** 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 инфраструктура
- [[truenas-access]] — доступ к TrueNAS и OpenWrt