Archive: System v4 - Estado al 2024-12-24
This commit is contained in:
280
v4-archive/deck/README.md
Normal file
280
v4-archive/deck/README.md
Normal file
@@ -0,0 +1,280 @@
|
||||
# DECK
|
||||
|
||||

|
||||
|
||||
|
||||
**Servidor Personal del Ecosistema TZZR**
|
||||
|
||||
## Descripción
|
||||
|
||||
DECK es el **servidor personal** que gestiona la vida digital de un usuario. Incluye:
|
||||
|
||||
- **Vision Builder**: Crear visiones → milestones (MST) → acciones y hábitos → evidencias (BCK)
|
||||
- **Mind Link**: Interfaz unificada de acceso a servicios
|
||||
- **ALFRED**: Orquestador lite que decide cómo procesar cada petición
|
||||
- **Windmill**: Automatización de workflows (alternativa a n8n)
|
||||
- **HST Tags**: Etiquetado semántico personal
|
||||
|
||||
## Arquitectura
|
||||
|
||||
```
|
||||
┌──────────────────────────────────────────────────────────────────┐
|
||||
│ DECK │
|
||||
│ (Servidor Personal) │
|
||||
├──────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
||||
│ │ VISION │ │ MIND │ │ WINDMILL │ │
|
||||
│ │ BUILDER │ │ LINK │ │ (Workflows)│ │
|
||||
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
|
||||
│ │ │ │ │
|
||||
│ └────────────────┼────────────────┘ │
|
||||
│ │ │
|
||||
│ ┌──────┴──────┐ │
|
||||
│ │ ALFRED │ ← Orquestador Lite │
|
||||
│ │ (decide) │ │
|
||||
│ └──────┬──────┘ │
|
||||
│ │ │
|
||||
│ ┌───────────────────────┼───────────────────────┐ │
|
||||
│ │ PostgreSQL + Directus │ │
|
||||
│ │ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │ │
|
||||
│ │ │Visiones│ │ MST │ │Acciones│ │Hábitos │ │ │
|
||||
│ │ └────────┘ └────────┘ └────────┘ └────────┘ │ │
|
||||
│ └───────────────────────────────────────────────┘ │
|
||||
│ │ │
|
||||
└───────────────────────────┼──────────────────────────────────────┘
|
||||
│
|
||||
┌───────────────┼───────────────┐
|
||||
▼ ▼ ▼
|
||||
┌──────────┐ ┌──────────┐ ┌──────────┐
|
||||
│ GRACE │ │ PENNY │ │ FACTORY │
|
||||
│(process) │ │ (text) │ │(iterate) │
|
||||
└──────────┘ └──────────┘ └──────────┘
|
||||
```
|
||||
|
||||
## Servidor
|
||||
|
||||
- **IP**: 72.62.1.113
|
||||
- **Dominio**: tzzrdeck.me
|
||||
- **VPS**: Hostinger (Ubuntu 22.04, 8GB RAM, 100GB SSD)
|
||||
- **SSH**: `ssh root@72.62.1.113` (password en credentials repo)
|
||||
|
||||
## Servicios Docker (Actualizado 2025-12-22)
|
||||
|
||||
| Servicio | Puerto | Estado | Función |
|
||||
|----------|--------|--------|---------|
|
||||
| PostgreSQL | 5432 | UP (healthy) | Base de datos principal |
|
||||
| Directus | 8055 | UP | CMS/Admin (reemplaza al antiguo NocoDB) |
|
||||
| Mailcow | 8180 + mail ports | UP | Servidor de correo |
|
||||
| FileBrowser | 8082 | UP (healthy) | Gestión de archivos |
|
||||
| Shlink | 8083 | UP | Acortador de URLs |
|
||||
| Vaultwarden | 8085 | UP (healthy) | Gestor de contraseñas |
|
||||
| ntfy | 8080 | UP | Notificaciones push |
|
||||
| Odoo | 8069 | UP | ERP |
|
||||
| Redis | 6379 | UP | Cache (Mailcow) |
|
||||
|
||||
### Directus (Admin)
|
||||
|
||||
```
|
||||
URL: http://72.62.1.113:8055
|
||||
Email: admin@tzzr.me
|
||||
Password: DirectusDeck2024!
|
||||
```
|
||||
|
||||
### Mailcow
|
||||
|
||||
```
|
||||
URL: http://mail.tzzr.net
|
||||
Puertos: 25 (SMTP), 465 (SMTPS), 587 (Submission), 143 (IMAP), 993 (IMAPS)
|
||||
Admin: admin / moohoo (cambiar al primer login)
|
||||
Ubicación: /opt/mailcow
|
||||
```
|
||||
|
||||
## Bases de Datos PostgreSQL
|
||||
|
||||
| Base de datos | Uso |
|
||||
|---------------|-----|
|
||||
| tzzr | BD principal (deck_*, tablas legacy) |
|
||||
| directus | Directus CMS |
|
||||
| shlink | URL shortener |
|
||||
|
||||
## Migraciones Completadas
|
||||
|
||||
### NocoDB → Directus (2025-12-22)
|
||||
|
||||
- NocoDB eliminado completamente
|
||||
- Directus instalado y operativo
|
||||
- Datos preservados en PostgreSQL
|
||||
|
||||
## DNS (tzzrdeck.me)
|
||||
|
||||
```zone
|
||||
; tzzrdeck.me → 72.62.1.113
|
||||
@ A 72.62.1.113
|
||||
mail A 72.62.1.113
|
||||
directus A 72.62.1.113
|
||||
db A 72.62.1.113
|
||||
shlink A 72.62.1.113
|
||||
link A 72.62.1.113
|
||||
odoo A 72.62.1.113
|
||||
erp A 72.62.1.113
|
||||
vault A 72.62.1.113
|
||||
files A 72.62.1.113
|
||||
ntfy A 72.62.1.113
|
||||
|
||||
; Mail
|
||||
@ MX 10 mail.tzzrdeck.me.
|
||||
@ TXT "v=spf1 mx a ip4:72.62.1.113 -all"
|
||||
_dmarc TXT "v=DMARC1; p=reject; rua=mailto:postmaster@tzzrdeck.me"
|
||||
dkim._domainkey TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoF3v+ytuXDr7AVJ5aPkQC7EV95Nr8zjRRYxwgrYPGsNrDOcjG5/8iwJRvdporYxoMKOoeKWTVkOlnLBUMjhP5wdGtJY63jQDjs5bybtXyZpLC+3xbwTGRk4fGOodzkhRabkaz0HxZrp/5tGqjZEv77pfX7Jpm0qAmFC2wBoYRlXngp7Eno9k7jSrGDb1f/gCgWV5wWGr7J+ny0/gScSkitp2hwTB+tV5504T4hMajxkff1iQhFTAPHiUQHzNpiq3zF+yaOE1KfbtdLTIDYBvgTQsINa4qLNbQXVQfk30+CHO/rzAb1wOdByrRO+O7IXJ+OA2Reqz/jlPIOIj7o7B7QIDAQAB"
|
||||
autodiscover CNAME mail.tzzrdeck.me.
|
||||
autoconfig CNAME mail.tzzrdeck.me.
|
||||
```
|
||||
|
||||
**NOTA:** Registros en "DNS only" (nube gris) para SSL automático.
|
||||
|
||||
## Vision Builder
|
||||
|
||||
Sistema de construcción de visiones que se convierten en acciones:
|
||||
|
||||
```
|
||||
VISIÓN → MST (Milestones) → ACCIONES + HÁBITOS → BCK (Evidencias)
|
||||
```
|
||||
|
||||
### Tipos de Visión
|
||||
|
||||
| Tipo | Descripción | Ejemplo |
|
||||
|------|-------------|---------|
|
||||
| fitness | Transformación física | Perder 10kg en 12 semanas |
|
||||
| career | Desarrollo profesional | Conseguir ascenso |
|
||||
| project | Proyecto específico | Lanzar MVP |
|
||||
| habit | Crear hábito | Meditar diario |
|
||||
| learning | Aprendizaje | Dominar Python |
|
||||
| finance | Finanzas | Ahorrar €10k |
|
||||
|
||||
### Acciones vs Hábitos
|
||||
|
||||
| Concepto | Descripción | Ejemplo |
|
||||
|----------|-------------|---------|
|
||||
| **Acción** | Tarea única | Comprar báscula |
|
||||
| **Hábito** | Comportamiento recurrente | Entrenar 5x/semana |
|
||||
|
||||
## ALFRED (Orquestador)
|
||||
|
||||
ALFRED decide automáticamente qué servicio usar:
|
||||
|
||||
```javascript
|
||||
// Mapeo de intenciones
|
||||
"resumir" → GRACE.SUMMARIZER
|
||||
"transcribir" → GRACE.ASR_ENGINE
|
||||
"generar plan" → PENNY
|
||||
"crear imagen" → FACTORY
|
||||
```
|
||||
|
||||
## Tablas Principales
|
||||
|
||||
```sql
|
||||
deck_visiones -- Visiones del usuario
|
||||
deck_milestones -- MST: objetivos con fecha
|
||||
deck_acciones -- Tareas únicas
|
||||
deck_habitos -- Comportamientos recurrentes
|
||||
deck_habito_registros -- Tracking diario de hábitos
|
||||
deck_bck -- Bloques de evidencia
|
||||
deck_emails -- Correos sincronizados
|
||||
deck_ia_solicitudes -- Peticiones a GRACE/PENNY/FACTORY
|
||||
```
|
||||
|
||||
## Windmill Workflows
|
||||
|
||||
Automatizaciones predefinidas:
|
||||
|
||||
| Workflow | Trigger | Acción |
|
||||
|----------|---------|--------|
|
||||
| Training Completed | Webhook | Guarda entreno → Pide análisis a PENNY |
|
||||
| Weekly Progress | Cron (Lunes 9:00) | Genera reporte semanal |
|
||||
| Email Received | IMAP | Clasifica → Extrae tareas → Notifica |
|
||||
| Habit Reminder | Cron | Envía recordatorio de hábitos pendientes |
|
||||
|
||||
## Instalación
|
||||
|
||||
### 1. Clonar y configurar
|
||||
|
||||
```bash
|
||||
git clone https://github.com/tzzrgit/deck.git
|
||||
cd deck
|
||||
cp .env.example .env
|
||||
# Editar .env con credenciales
|
||||
```
|
||||
|
||||
### 2. Levantar servicios
|
||||
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
### 3. Aplicar schema
|
||||
|
||||
```bash
|
||||
# Schema base
|
||||
psql -U tzzr -d tzzr -f database/init-tzzr-v2.sql
|
||||
|
||||
# Vision Builder
|
||||
psql -U tzzr -d tzzr -f database/vision-builder.sql
|
||||
```
|
||||
|
||||
### 4. Configurar Windmill
|
||||
|
||||
```bash
|
||||
# Windmill UI en http://localhost:8000
|
||||
# Importar workflows desde /windmill/
|
||||
```
|
||||
|
||||
## Template Clonable
|
||||
|
||||
DECK puede clonarse para un nuevo usuario:
|
||||
|
||||
```bash
|
||||
# Usar template
|
||||
psql -U tzzr -d nuevo_usuario -f templates/deck-template.sql
|
||||
|
||||
# Reemplazar variables
|
||||
sed -i 's/{{USER_NAME}}/Carlos/g' ...
|
||||
sed -i 's/{{START_WEIGHT}}/85/g' ...
|
||||
```
|
||||
|
||||
## Conexión a Servicios IA
|
||||
|
||||
ALFRED construye S-CONTRACT v2.1 para cada petición:
|
||||
|
||||
```json
|
||||
{
|
||||
"contract_version": "2.1",
|
||||
"source": { "system": "DECK", "orchestrator": "ALFRED" },
|
||||
"target": { "service": "GRACE", "module": "SUMMARIZER" },
|
||||
"input": { "type": "text", "data": "..." },
|
||||
"limits": { "budget_usd": 0.1 }
|
||||
}
|
||||
```
|
||||
|
||||
## Repositorios Relacionados
|
||||
|
||||
| Repo | Descripción |
|
||||
|------|-------------|
|
||||
| [contratos-comunes](https://github.com/tzzrgit/contratos-comunes) | S-CONTRACT, ALFRED, CLARA, schemas |
|
||||
| [grace](https://github.com/tzzrgit/grace) | 18 módulos de procesamiento IA |
|
||||
| [penny](https://github.com/tzzrgit/penny) | Generación de texto |
|
||||
| [the-factory](https://github.com/tzzrgit/the-factory) | Generación iterativa |
|
||||
| [vision-builder](https://github.com/tzzrgit/vision-builder) | UI de Vision Builder |
|
||||
| [mind-link](https://github.com/tzzrgit/mind-link) | UI de conexión |
|
||||
| [locker](https://github.com/tzzrgit/locker) | Almacenamiento |
|
||||
|
||||
## Roadmap
|
||||
|
||||
- [x] Schema PostgreSQL v2
|
||||
- [x] Vision Builder schema
|
||||
- [x] ALFRED orquestador
|
||||
- [x] Windmill config
|
||||
- [ ] Integración Mail-in-a-Box → deck_emails
|
||||
- [ ] API REST para Mind Link
|
||||
- [ ] Push notifications
|
||||
- [ ] Sync con LOCKER
|
||||
Reference in New Issue
Block a user