Visión General

Infraestructura UplabsAI

Documentación de los servicios Docker que componen la plataforma. Describe la función de cada servicio, sus dominios públicos y cómo operarlos.

8
Contenedores activos
4
Dominios con SSL
1
Base de datos
5
Stacks Docker
INTERNET HTTPS público Nginx Reverse Proxy + SSL certbot auto-renew 12h Outbound Call sip1.uplabsai.com N8N dev.uplabsai.com CRM crm1.uplabsai.com SaaS Server saasapi1.uplabsai.com COLA DE LLAMADAS acceso directo · sin Nginx llamadas-server Python API llamadas-app Next.js frontend PostgreSQL + pgvector Base de datos compartida
Infraestructura

Nginx + Certbot (SSL)

Reverse proxy central que recibe todo el tráfico público y enruta a cada servicio. Certbot renueva los certificados Let's Encrypt automáticamente cada 12 horas.

🔀
Nginx
Reverse proxy · HTTP/HTTPS
Running
TecnologíaNginx
AccesoHTTP (80) · HTTPS (443)
Dominios
# Verificar config y recargar docker compose exec nginx nginx -t docker compose exec nginx nginx -s reload # Ver logs docker compose logs -f nginx
🔒
Certbot
SSL/TLS · auto-renewal 12h
Running
TecnologíaLet's Encrypt
RenovaciónAutomática cada 12 horas
ValidaciónHTTP challenge (webroot)
# Nuevo certificado docker compose run --rm certbot certonly --webroot \ --webroot-path=/var/www/certbot \ -d nuevo.dominio.com # Renovar manualmente docker compose run --rm certbot renew
Infraestructura

PostgreSQL + pgvector

Base de datos central compartida por todos los servicios. Incluye la extensión pgvector para búsquedas semánticas y embeddings de IA. Debe estar activa antes de levantar cualquier otro servicio.

🐘
PostgreSQL
Base de datos relacional · pgvector
Running
TecnologíaPostgreSQL pgvector
AccesoInterno — no expuesto a internet
DatosVolumen persistente en el host
Extensionespgvector (embeddings y búsqueda semántica)
# Iniciar (siempre primero) cd ~/dockers/postgres && docker compose up -d # Backup completo docker compose exec db pg_dumpall -U $DB_USER > backup_$(date +%F).sql
Infraestructura

N8N — Automatización de Workflows

Plataforma no-code para automatizar flujos entre APIs, bases de datos y servicios externos. Accesible en dev.uplabsai.com con credenciales de equipo.

N8N
Workflow automation · Node.js
Running
TecnologíaNode.js N8N
URL↗ https://dev.uplabsai.com
Webhookshttps://dev.uplabsai.com/webhook/...
DatosWorkflows y credenciales en volumen persistente
# Iniciar cd ~/dockers/n8n && docker compose up -d # Ver logs docker compose logs -f # Reiniciar docker compose restart
Servicios

Outbound Call Infrastructure

API Python que gestiona diferentes Apis especiales de la infraestructura de uplabsai como ser NPS, qualtrics, resumenes de llamadas espaciales y otros flujos de automatizacion.

📞
Outbound Call App
Python · FastAPI
Running
TecnologíaPython FastAPI
URL↗ https://sip1.uplabsai.com
Campañas
CobranzasNPSNPS Asistencia MédicaAutos x Km
IntegracionesTelefonía · Encuestas · Base de datos
# Iniciar cd ~/servicios/Outbound_Call_Infrastructure docker compose up -d # Rebuild tras cambios docker compose up -d --build # Logs docker compose logs -f
Servicios

CRM Platform

Sistema CRM con backend Java, frontend web y servicio auxiliar. Soporta comunicación en tiempo real vía WebSocket y endpoints REST. Accesible en crm1.uplabsai.com.

⚙️
CRM Server
Java · Backend principal
Running
TecnologíaJava
URL↗ https://crm1.uplabsai.com
ProtocolosHTTP REST · WebSocket
Rutas
/ → Frontend
/ws/ → WebSocket
/http/ → REST API
# Iniciar todo el stack CRM cd ~/servicios && docker compose up -d # Logs docker compose logs -f crm-server
🌐
CRM Web
Nginx · Frontend estático
Running
TecnologíaNginx
ContenidoBuild estático compilado
docker compose restart crm-web docker compose logs -f crm-web
🔧
Servicio Auxiliar
Java · Servicio de soporte
Running
TecnologíaJava
ProtocolosHTTP REST · WebSocket
FunciónServicio de soporte al CRM principal
docker compose restart servicio docker compose logs -f servicio
Servicios

SaaS Server API

API principal de la plataforma. Gestiona llamadas, SMS, usuarios, empresas, autenticación, dashboards en tiempo real, NPS y webhooks.

🚀
SaaS Server
Python · FastAPI
Running
TecnologíaPython FastAPI
URL↗ https://saasapi1.uplabsai.com
API Docs↗ /docs (Swagger)
Features
Call ManagementSMSOAuth2 WebSocketsMulti-tenantWebhooksNPS
# Iniciar cd ~/servicios/UPLABS-AI-Saas-Server docker compose up -d # Rebuild tras cambios docker compose up -d --build # Logs docker compose logs -f
Servicios

Cola de Llamadas

Stack dedicado a la gestión de la cola de llamadas. Backend Python que procesa la lógica de cola, y frontend Next.js para la interfaz de monitoreo en tiempo real.

🖥️
llamadas-server
Python · API de cola
Stopped
TecnologíaPython
AccesoInterno — requiere configurar dominio para exponer
FunciónGestión de cola, créditos y sincronización de directorio
LogsVolumen persistente en el host
# Iniciar cd ~/servicios/llamadas/llamadas-server docker compose up -d # Rebuild tras cambios docker compose up -d --build # Logs docker compose logs -f
📋
llamadas-app
Next.js · Interfaz de monitoreo
Stopped
TecnologíaNext.js React Tailwind
AccesoInterno — requiere configurar dominio en Nginx para exponer
FunciónVisualización y monitoreo de la cola de llamadas
# Iniciar cd ~/servicios/llamadas/llamadas-app docker compose up -d # Rebuild docker compose up -d --build # Logs docker compose logs -f
Redes Docker

Aislamiento de Redes

Cada stack corre en su propia red aislada. Una red compartida permite que los servicios de negocio accedan a la base de datos sin exponerla al exterior.

Red compartida (DB) external

Todos los servicios que necesitan acceso a PostgreSQL se conectan a esta red. Debe crearse antes de levantar cualquier otro stack.

Red proxy

Red interna del stack de reverse proxy. Aísla Nginx y Certbot del resto de servicios.

Red CRM

Red interna del stack CRM. Permite comunicación entre el servidor Java y el servicio auxiliar sin exponerlos.

Operaciones

Comandos de Gestión

Referencia rápida para arrancar, detener y monitorear todos los servicios. El orden importa: la base de datos debe estar activa primero.

Encender todo el stack (orden correcto)

# 1. Base de datos (siempre primero) cd ~/dockers/postgres && docker compose up -d # 2. Reverse proxy cd ~/dockers/nginx && docker compose up -d # 3. N8N cd ~/dockers/n8n && docker compose up -d # 4. CRM + Servicio auxiliar cd ~/servicios && docker compose up -d # 5. Outbound Call cd ~/servicios/Outbound_Call_Infrastructure && docker compose up -d # 6. SaaS Server cd ~/servicios/UPLABS-AI-Saas-Server && docker compose up -d

Ver estado de todos los contenedores

docker ps --format "table {{.Names}}\t{{.Status}}"

Ver logs de un servicio

# Desde el directorio del stack docker compose logs -f --tail=100

Agregar SSL a un nuevo dominio

# 1. Crear conf en nginx/conf.d/nuevo.dominio.com.conf # con bloque :80 que incluya /.well-known/acme-challenge/ # 2. Recargar nginx cd ~/dockers/nginx docker compose exec nginx nginx -s reload # 3. Obtener certificado docker compose run --rm certbot certonly --webroot \ --webroot-path=/var/www/certbot -d nuevo.dominio.com # 4. Agregar bloque :443 ssl al conf y recargar docker compose exec nginx nginx -s reload

Uso de recursos en tiempo real

docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"