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

4.6 KiB
Raw Blame History

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

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 VersioningTrash can → очищать через N дней

Обслуживание

# Логи
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

Связанные заметки