- 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>
2.5 KiB
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
- Usuario marca archivo en
atc_statusconstatus='enable' - Windmill detecta cambio (trigger/schedule)
- Script consulta archivos con
status='enable' - Para cada archivo:
- Obtiene ruta de
roothash - Descarga de R2 a
/nextc_deck/sync/{ruta}/
- Obtiene ruta de
- Nextcloud detecta archivos nuevos
- 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