281 lines
10 KiB
Markdown
281 lines
10 KiB
Markdown
# 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
|