Varela Insights
📚 Archivo. Este contenido se publicó originalmente en el blog de Varela Insights y se conserva en su dirección original. El contenido nuevo vive en varelainsights.com/blog.

Arquitectura de Microservicios Multi-Bot: 6 Asistentes Telegram en un Solo VPS

Publicado el 5 feb 2026 · Irving Varela
Arquitectura de Microservicios Multi-Bot: 6 Asistentes Telegram en un Solo VPS

Arquitectura de Microservicios Multi-Bot: 6 Asistentes Telegram en un Solo VPS

Introducción

En el ecosistema de automatización empresarial, gestionar múltiples asistentes conversacionales de forma eficiente es un desafío técnico real. Este artículo documenta una arquitectura de producción que orquesta 6 bots de Telegram independientes, cada uno con lógica de negocio específica, ejecutándose en un único servidor VPS mediante contenedores Docker.

La solución combina FastAPI para endpoints REST, Flask para procesamiento de comandos con Gemini AI, y n8n para flujos de trabajo visuales. Todo detrás de Traefik como reverse proxy con SSL automático.

Arquitectura del Sistema

Componentes Principales

La infraestructura se divide en dos capas principales:

Capa de APIs (bot-system)

Capa de Automatización (n8n-stack)

Estructura de Directorios

vps2-bot-system/
├── docker-compose.yml
├── Dockerfile (Python 3.12)
├── code/
│   ├── claude_proxy.py (369KB - 6 bots)
│   ├── deploy-api/
│   │   └── main.py (293KB)
│   ├── emma_prestamos_api.py
│   ├── carlitos_prestamos_api.py
│   └── extract_insights.py
└── n8n-config/
├── docker-compose.yml
└── Dockerfile.n8n

Configuración de Bots

Cada uno de los 6 bots activos tiene su propio directorio de datos y configuración:

| ID Cliente | Tipo de Servicio | Directorio Datos |

|-----------|------------------|------------------|

| er0002 | Gestión de préstamos | `/opt/bot-system/data/er0002/` |

| cr0001 | Gestión de préstamos | `/opt/bot-system/data/cr0001/` |

| ac0001 | Control de chatarrera | `/opt/bot-system/data/ac0001/` |

| av0004 | Asistente general | `/opt/bot-system/data/av0004/` |

| gr0002 | Gestión de negocio | `/opt/bot-system/data/gr0002/` |

| bg0001 | Asistente ejecutivo | `/opt/bot-system/data/bg0001/` |

Esta separación permite:

Flujo de Trabajo Operacional

Desarrollo Local y Sincronización

El flujo de desarrollo mantiene un respaldo local sincronizado con producción:

1. Subir cambios al VPS

scp code/claude_proxy.py vps2:/opt/bot-system/code/ scp code/deploy-api/main.py vps2:/opt/bot-system/code/deploy-api/

2. Reiniciar contenedores

ssh vps2 "cd /opt/bot-system && docker compose restart"

3. Monitorear logs en tiempo real

ssh vps2 "docker logs -f bot-api --tail 50" ssh vps2 "docker logs -f bot-proxy --tail 50"

Este patrón permite:

Integración con Gemini AI

El `claude_proxy.py` (369KB) actúa como intermediario entre Telegram y Gemini. Características clave:

Networking y Seguridad

Docker Networking

Regla crítica: Los contenedores NO pueden usar `localhost` entre sí. Se debe usar nombres de servicio:

❌ Incorrecto

CLAUDE_PROXY = "http://localhost:3010"

✅ Correcto

CLAUDE_PROXY = "http://bot-proxy:3010"

Whitelist de IPs

El `claude_proxy.py` solo acepta peticiones de:

SSL y Dominio

Traefik maneja automáticamente:

Lecciones Aprendidas

1. Path Fixing en Migración

Cuando se migró desde un servidor anterior, se requirieron 49 correcciones de rutas en `main.py`:

Antes

/home/emma/prestamos.json

Después

/data/er0002/prestamos.json

2. Docker Compose Networking

Se identificaron 17 referencias a `localhost` que debían cambiar a nombres de servicio:

claude_proxy.py

requests.post('http://bot-api:3000/send', ...)

3. Traefik Registration Delay

Después de reiniciar contenedores, esperar ~15 segundos para que Traefik re-registre las rutas.

Conclusión

Esta arquitectura demuestra que es posible gestionar múltiples bots conversacionales en producción sin complejidad excesiva. Los puntos clave son:

  1. Separación de responsabilidades: FastAPI para APIs, Flask para procesamiento IA, n8n para workflows.
  2. Aislamiento por cliente: Cada bot tiene su sandbox de datos independiente.
  3. Sincronización continua: Respaldo local que permite desarrollo rápido y rollback seguro.

La solución soporta 6 bots activos con un solo VPS de recursos modestos, procesando comandos con Gemini AI y manteniendo disponibilidad 24/7 mediante Docker Compose y Traefik.

Audita la visibilidad de tu negocio en IA →