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,64 @@
# Nextcloud - Sistema de Almacenamiento
## Instancias
| Servidor | URL | Usuario | Symlink Local |
|----------|-----|---------|---------------|
| ARCHITECT | cloud.tzzrarchitect.me | architect | /nextc_architect → files/ |
| DECK | cloud.tzzrdeck.me | deck | /nextc_deck → bandeja de salida/ |
| HST | cloud.tzrtech.org | hst | /nextc_hst → files/ |
## Arquitectura
Cada instancia corre en Docker:
- `nextcloud:32` - Servidor Nextcloud
- `postgres:16-alpine` - Base de datos
- `redis:7-alpine` - Cache
Los datos se almacenan en volúmenes Docker:
```
/var/lib/docker/volumes/nextcloud_nextcloud-data/_data/data/{usuario}/files/
```
Los symlinks `/nextc_*` apuntan directamente a estas carpetas para acceso rápido desde scripts.
## Configuración Caddy
```caddyfile
# ARCHITECT
cloud.tzzrarchitect.me {
reverse_proxy localhost:8085
}
# DECK
cloud.tzzrdeck.me {
reverse_proxy localhost:8084
}
# HST
cloud.tzrtech.org {
reverse_proxy localhost:8084
}
```
## Comandos Útiles
```bash
# Escanear archivos de usuario
docker exec -u www-data nextcloud php occ files:scan {usuario}
# Listar usuarios
docker exec nextcloud php occ user:list
# Ver configuración
docker exec nextcloud php occ config:list
```
## Convenciones de Nombres
Todos los archivos siguen el formato: `yymmdd_nombre_archivo.ext`
- yy: año (2 dígitos)
- mm: mes
- dd: día
Caracteres especiales (acentos) se convierten a ASCII para compatibilidad.

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