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¶
Cuenta Stripe¶
Necesitas:
- Crear cuenta en stripe.com.
- Crear los 3 productos (Free / Starter / Pro) con sus prices recurrentes mensuales.
- Copiar de
https://dashboard.stripe.com/apikeys: STRIPE_SECRET_KEY(empieza porsk_live_osk_test_)- 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 | Sí |
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.comcomo ejemplo del dominio del widget yapp.pocololo.comcomo dominio del dashboard. Sustitúyelos por los tuyos.
Certificados SSL¶
Obligatorio HTTPS. Dos opciones:
- Let's Encrypt + certbot (gratis, automático):
- 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:
Toda la app (código, venv, ejecución) corre como este usuario, nunca como root.