Files
system-docs/05_INTEGRACIONES/SYNC_ATC_R2.md
ARCHITECT f059266630 Add Nextcloud and ATC sync documentation
- NEXTCLOUD.md: Configuration for all 3 instances (ARCHITECT, DECK, HST)
- SYNC_ATC_R2.md: Architecture for R2 → Windmill → Nextcloud sync system

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 00:25:11 +00:00

2.5 KiB

Sincronización ATC ↔ R2 ↔ Nextcloud

Objetivo

Sincronizar archivos seleccionados desde buckets R2 hacia Nextcloud DECK, permitiendo descarga selectiva en dispositivos locales (Mac).

Arquitectura

┌─────────────┐     ┌──────────────┐     ┌─────────────┐     ┌─────────┐
│   R2/S3     │     │   Windmill   │     │  Nextcloud  │     │   Mac   │
│ deck/       │────▶│ flow.tzzr    │────▶│  /nextc_    │────▶│  Local  │
│ personaldeck│     │  deck.me     │     │  deck/sync  │     │  Sync   │
└─────────────┘     └──────────────┘     └─────────────┘     └─────────┘
                           │
                           ▼
                    ┌──────────────┐
                    │  PostgreSQL  │
                    │  atc_status  │
                    └──────────────┘

Tablas PostgreSQL

tzzr_storage.buckets

Configuración de buckets R2.

bucket_mrf name endpoint
d83032... deck R2 Cloudflare
c1b0e6... personaldeck R2 Cloudflare

tzzr_storage.atc

Catálogo de archivos con metadata.

Campo Descripción
mrf Hash único del archivo
private_mrf Hash privado
bucket_mrf FK a buckets
roothash Ruta/estructura del archivo (pendiente)
ref Tipo: img, doc, cad, etc.

tzzr_storage.atc_status

Lista blanca de archivos a sincronizar.

Campo Descripción
mrf FK a atc
status enable / disable / deleted
bucket_mrf FK a buckets

Flujo de Sincronización

  1. Usuario marca archivo en atc_status con status='enable'
  2. Windmill detecta cambio (trigger/schedule)
  3. Script consulta archivos con status='enable'
  4. Para cada archivo:
    • Obtiene ruta de roothash
    • Descarga de R2 a /nextc_deck/sync/{ruta}/
  5. Nextcloud detecta archivos nuevos
  6. Mac sincroniza via app Nextcloud

Windmill

  • URL: flow.tzzrdeck.me
  • Puerto interno: 8100
  • Propósito: Orquestación de workflows

Pendiente

  • Definir formato de roothash
  • Crear workflow en Windmill
  • Configurar trigger (webhook vs schedule)
  • Implementar script de sync