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:
64
04_INFRAESTRUCTURA/NEXTCLOUD.md
Normal file
64
04_INFRAESTRUCTURA/NEXTCLOUD.md
Normal 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.
|
||||
75
05_INTEGRACIONES/SYNC_ATC_R2.md
Normal file
75
05_INTEGRACIONES/SYNC_ATC_R2.md
Normal 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
|
||||
Reference in New Issue
Block a user