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>
This commit is contained in:
ARCHITECT
2026-01-18 00:25:11 +00:00
parent d469589b81
commit f059266630
2 changed files with 139 additions and 0 deletions

View File

@@ -0,0 +1,75 @@
# 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