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