Saltar a contenido

03 — Prerrequisitos del servidor

Hardware mínimo

Recurso Mínimo Recomendado
CPU 2 vCPU 4 vCPU
RAM 2 GB 4 GB
Disco 20 GB SSD 40 GB SSD
Ancho de banda 1 TB/mes 5 TB/mes

Con estos recursos se cubre cómodamente cientos de bots y decenas de miles de FAQs.

Sistema operativo

Probado y soportado oficialmente:

  • Ubuntu 22.04 LTS (recomendado)
  • Ubuntu 24.04 LTS
  • Debian 12

Otros Linux funcionarán pero los comandos de instalación de paquetes deberán adaptarse.

Hosting compartido (cPanel) no soportado. Necesitas un VPS, dedicado o panel que permita ejecutar systemd y configurar nginx libremente (Plesk Onyx+ funciona perfectamente).

Software a instalar

1. Paquetes del sistema

sudo apt update
sudo apt install -y \
    python3.12 python3.12-venv python3-pip \
    postgresql-15 postgresql-client-15 \
    nginx \
    git curl unzip \
    build-essential libpq-dev

Si tu Ubuntu no trae Python 3.12 por defecto, usa python3.11 (el código es compatible con 3.11+).

2. Node.js (para builds frontend)

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo bash -
sudo apt install -y nodejs
node --version   # debe ser >= 18
npm --version

3. Verificar versiones

python3 --version       # >= 3.11
psql --version          # >= 15
nginx -v                # >= 1.24
node --version          # >= 18

Cuenta Stripe

Necesitas:

  1. Crear cuenta en stripe.com.
  2. Crear los 3 productos (Free / Starter / Pro) con sus prices recurrentes mensuales.
  3. Copiar de https://dashboard.stripe.com/apikeys:
  4. STRIPE_SECRET_KEY (empieza por sk_live_ o sk_test_)
  5. Configurar webhook (después del deploy) y copiar el STRIPE_WEBHOOK_SECRET.

Detalles paso a paso en 10-billing-stripe.md.

Cuenta SMTP

Para enviar emails (verificación, password reset, invitaciones). Cualquier proveedor SMTP funciona:

  • Gmail (con App Password): smtp.gmail.com:587, TLS
  • SendGrid: smtp.sendgrid.net:587
  • Mailgun, Postmark, AWS SES, etc.

Solo necesitas: host, puerto, usuario, contraseña, FROM email verificado.

Dominios

Necesitas uno o dos dominios/subdominios apuntando al servidor con registros A:

Subdominio Función Obligatorio
app.tudominio.com Dashboard cliente + API + superadmin
widget.tudominio.com Widget embebible (loader + frame + endpoints /v3/*) Recomendado

Puedes usar un solo dominio y servir todo desde ahí (simplifica CORS pero acopla el branding).

En este manual usamos superbot.pocololo.com como ejemplo del dominio del widget y app.pocololo.com como dominio del dashboard. Sustitúyelos por los tuyos.

Certificados SSL

Obligatorio HTTPS. Dos opciones:

  • Let's Encrypt + certbot (gratis, automático):
    sudo apt install -y certbot python3-certbot-nginx
    sudo certbot --nginx -d app.tudominio.com -d widget.tudominio.com
    
  • Plesk (si tienes el panel): emite Let's Encrypt automáticamente desde la UI.

Usuario del sistema

Crea un usuario sin privilegios para ejecutar la app:

sudo useradd -m -s /bin/bash blimxapp
sudo passwd blimxapp

Toda la app (código, venv, ejecución) corre como este usuario, nunca como root.