🏠 Mayordomo del VPS

IP: 95.111.239.196 / 172.17.0.1 / 172.18.0.1 / 2a02:c207:2343:684::1

PM2 — Procesos

NombreStatusCronMemoria
historiador-capa2stopped0 */8 * * *0.0 MB
historiador-capa3stopped15 */8 * * *0.0 MB
bodeguero-describirstopped0 */3 * * *0.0 MB
mayordomoonline-31.9 MB
upfilesonline-31.6 MB

Docker — Containers

NombreStatusPuertos
evolution-goUp 27 hours0.0.0.0:4000->4000/tcp, [::]:4000->4000/tcp
evolution-go-postgresUp 27 hours5432/tcp

Puertos escuchando

LISTEN 0      128        127.0.0.1:3801      0.0.0.0:*    users:(("python3",pid=81597,fd=4))                                                                                                                                                         
LISTEN 0      128          0.0.0.0:3800      0.0.0.0:*    users:(("python3",pid=81228,fd=4))                                                                                                                                                         
LISTEN 0      4096         0.0.0.0:4000      0.0.0.0:*    users:(("docker-proxy",pid=45280,fd=8))                                                                                                                                                    
LISTEN 0      4096      127.0.0.54:53        0.0.0.0:*    users:(("systemd-resolve",pid=594,fd=17))                                                                                                                                                  
LISTEN 0      4096   127.0.0.53%lo:53        0.0.0.0:*    users:(("systemd-resolve",pid=594,fd=15))                                                                                                                                                  
LISTEN 0      511          0.0.0.0:80        0.0.0.0:*    users:(("nginx",pid=80865,fd=5),("nginx",pid=80864,fd=5),("nginx",pid=80863,fd=5),("nginx",pid=80862,fd=5),("nginx",pid=80861,fd=5),("nginx",pid=80860,fd=5),("nginx",pid=792,fd=5))       
LISTEN 0      4096         0.0.0.0:22        0.0.0.0:*    users:(("sshd",pid=887,fd=3),("systemd",pid=1,fd=109))                                                                                                                                     
LISTEN 0      511          0.0.0.0:443       0.0.0.0:*    users:(("nginx",pid=80865,fd=11),("nginx",pid=80864,fd=11),("nginx",pid=80863,fd=11),("nginx",pid=80862,fd=11),("nginx",pid=80861,fd=11),("nginx",pid=80860,fd=11),("nginx",pid=792,fd=11))
LISTEN 0      511        127.0.0.1:6379      0.0.0.0:*    users:(("redis-server",pid=9049,fd=6))                                                                                                                                                     
LISTEN 0      200          0.0.0.0:5432      0.0.0.0:*    users:(("postgres",pid=34907,fd=6))                                                                                                                                                        
LISTEN 0      4096            [::]:4000         [::]:*    users:(("docker-proxy",pid=45288,fd=8))                                                                                                                                                    
LISTEN 0      511            [::1]:6379         [::]:*    users:(("redis-server",pid=9049,fd=7))                                                                                                                                                     
LISTEN 0      511             [::]:80           [::]:*    users:(("nginx",pid=80865,fd=6),("nginx",pid=80864,fd=6),("nginx",pid=80863,fd=6),("nginx",pid=80862,fd=6),("nginx",pid=80861,fd=6),("nginx",pid=80860,fd=6),("nginx",pid=792,fd=6))       
LISTEN 0      4096            [::]:22           [::]:*    users:(("sshd",pid=887,fd=4),("systemd",pid=1,fd=110))                                                                                                                                     
LISTEN 0      200             [::]:5432         [::]:*    users:(("postgres",pid=34907,fd=7))

Nginx — Sitios configurados

default
mayordomo.smartketing.online
upfiles.smartketing.online

📋 Pasaporte

# PASAPORTE — Historiador / Bodeguero / Mayordomo
### Ecosistema SMART — VPS 95.111.239.196 (Contabo)
**Actualizado:** 2026-07-11 | **Para:** cualquier Claude que entre a trabajar en este VPS

---

## 0. LEER PRIMERO — REGLAS DE TRABAJO

Ver /var/historia/REGLAS.md (12 reglas, cumplimiento estricto).
Se muestran automáticamente en el Mayordomo.

---

## 1. ACCESO RAPIDO

| Que | Donde |
|---|---|
| Mayordomo (panel web) | https://mayordomo.smartketing.online |
| Portal de subida de archivos | https://upfiles.smartketing.online (usuario/contraseña) |
| SSH al VPS | ssh root@95.111.239.196 |
| Reglas de trabajo | /var/historia/REGLAS.md |
| Bitacoras por proyecto | /var/historia//BITACORA.md |

---

## 2. QUE ESTA CONSTRUIDO Y FUNCIONANDO

### 2.1 Historiador - sistema de bitacoras automaticas (3 capas), sin cambios desde el pasaporte anterior.

### 2.2 Bodeguero - indexador de Google Drives, sin cambios desde el pasaporte anterior (60,456 elementos, 2 de ~40 remotes).

### 2.3 Mayordomo (panel web de estado del VPS)
- Accesible por HTTPS en https://mayordomo.smartketing.online
- SSL emitido por Let's Encrypt (Certbot), vence 2026-10-09, renovacion automatica
- Sin autenticacion todavia - decision consciente: uso interno de trabajo, no se comparte publicamente

### 2.4 Portal de subida de archivos (upfiles) - NUEVO, resuelve el pendiente #3
- App Flask corriendo en PM2 (proceso upfiles, puerto interno 3801)
- Formulario simple: elegis proyecto + archivo, sube directo al VPS
- Archivos guardados en /root/bodeguero/subidas// con timestamp
- Limite de 300 MB por archivo
- Accesible en https://upfiles.smartketing.online
- Protegido con usuario/contraseña (/etc/nginx/.htpasswd_upfiles)
- SSL emitido por Let's Encrypt, vence 2026-10-09, renovacion automatica

---

## 3. ESTADO REAL DEL VPS (snapshot al momento de este pasaporte)

**IP:** 95.111.239.196 (Contabo Cloud VPS 20 NVMe)

**Docker containers corriendo:**
- evolution-go - puerto 4000
- evolution-go-postgres - puerto 5432 (interno)

**Otros servicios detectados:**
- redis-server en 6379 (solo localhost) - origen sin confirmar, sigue pendiente de investigar.
- postgres en 5432
- nginx en puertos 80 y 443, con sitios: default, mayordomo.smartketing.online, upfiles.smartketing.online

**PM2 activo:**
- historiador-capa2 (cron cada 8h, stopped entre corridas es normal)
- historiador-capa3 (cron cada 8h, stopped entre corridas es normal)
- bodeguero-describir (cron cada 3h, stopped entre corridas es normal)
- mayordomo (online permanente)
- upfiles (online permanente) - NUEVO

**Cloudflare:**
- Token de API guardado en /root/cloudflare/.env, con permiso Zone-DNS-Edit sobre smartketing.online
- Registros DNS creados: mayordomo.smartketing.online, upfiles.smartketing.online (ambos tipo A, sin proxy Cloudflare)

---

## 4. PENDIENTE POR CONSTRUIR (en orden sugerido)

1. Investigar Redis - confirmar para que proyecto es, si sigue en uso.
2. Descripcion de contenido para PDF/Word/Excel/PowerPoint bajo demanda.
3. ~~Portal de subida de archivos~~ - RESUELTO (ver seccion 2.4)
4. Conectar las ~38 cuentas de Drive restantes.
5. Subdominios adicionales via Cloudflare API - el flujo ya esta probado y funcionando (ver script /root/subdominios_setup.py), solo falta repetirlo para futuros subdominios que se necesiten.
6. Reporte directo desde cada script nuevo hacia su BITACORA.md.
7. Autenticacion en el Mayordomo - decision pendiente de revisar: por ahora se dejo sin contraseña a proposito por ser de uso interno; reevaluar si en algun momento se comparte mas ampliamente.

---

## 5. NOTAS DE SEGURIDAD PENDIENTES

- El token de Cloudflare fue pegado en el chat durante la sesion de pruebas de hoy - rotarlo en console.cloudflare.com cuando se cierre esta fase de pruebas.
- La API key de Groq del Bodeguero tambien quedo expuesta en el chat en una sesion anterior - rotar si no se hizo aun.
- Aviso previo sobre la cuenta de servicio evolution-dish - verificar si sigue en uso y revocar si no.

---

## 6. RUTAS CLAVE - REFERENCIA RAPIDA

/var/historia/REGLAS.md - Reglas de trabajo (global)
/var/historia/PASAPORTE.md - Este documento
/var/historia//BITACORA.md - Bitacora por proyecto
/root/historiador_capa1_setup.sh - Instalador Capa 1
/root/historiador/capa2_organizador.sh - Capa 2
/root/historiador/capa3_analista.py - Capa 3
/root/bodeguero/indexador.py - Indexador de Drives
/root/bodeguero/inventario.db - Base de datos del inventario
/root/bodeguero/describir_texto.py - Descripcion automatica texto/codigo
/root/bodeguero/mayordomo.py - Panel web (puerto 3800)
/root/bodeguero/upfiles_app.py - Portal de subida (puerto 3801)
/root/bodeguero/subidas// - Archivos subidos por upfiles
/root/cloudflare/.env - CLOUDFLARE_API_TOKEN
/root/subdominios_setup.py - Script para crear subdominios nuevos
/etc/nginx/.htpasswd_upfiles - Usuario/contraseña del portal de subida
/root/.config/rclone/rclone.conf - Configuracion de remotes de Drive

📁 Proyectos