# DECK ![Estado](https://img.shields.io/badge/Estado-PARCIAL-orange) **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