Cuando un asistente de IA (como ChatGPT, Codex, Claude o Gemini) te genera código, normalmente te dice: "Ejecuta npm run dev o python app.py y abre http://localhost:3000". Eso funciona perfecto mientras estás programando, pero los servidores de desarrollo no están pensados para producción. En esta guía aprenderás cómo convertir ese proyecto en un servicio estable y protegido.
1. Revisa tus Claves de API y Variables de Entorno (.env)
Si tu aplicación hace llamadas a modelos de IA (como OpenAI, Anthropic o Google Gemini), nunca dejes tus claves escritas directamente en el código.
Crea un archivo .env en la raíz de tu proyecto:
# Archivo .env en el servidor (nunca subir a Git)
PORT=3000
NODE_ENV=production
AI_API_KEY=tu_clave_secreta_aqui
DATABASE_URL="postgres://usuario:password@localhost:5432/miapp"
Asegúrate de que tu archivo .gitignore incluya la línea .env para no filtrar tus credenciales por accidente.
2. Despliega en tu Servidor VPS
Conéctate por SSH a tu servidor de Planeta Nube:
ssh root@TU_IP_PUBLICA
Instala el runtime correspondiente. Para proyectos en Node.js:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs git
Para proyectos en Python:
sudo apt install -y python3-pip python3-venv git
3. Clona tu Proyecto e Instala Dependencias en Producción
Descarga tu código en /var/www:
cd /var/www
sudo git clone https://github.com/tu-usuario/tu-app-ia.git app-ia
cd app-ia
sudo npm install --production
Crea el archivo .env local en el servidor con tus claves reales:
sudo nano .env
4. Mantén tu Aplicación Viva 24/7 con PM2
Si ejecutas tu app directamente y cierras la consola, el proceso se detendrá. Utilizaremos PM2, un gestor de procesos profesional que reinicia tu aplicación si ocurre un error inesperado o si el servidor se reinicia:
sudo npm install -g pm2
pm2 start server.js --name "mi-app-ia"
pm2 startup
pm2 save
Para aplicaciones en Python con FastAPI o Flask, puedes usar systemd o Gunicorn administrado por PM2:
pm2 start "uvicorn main:app --host 127.0.0.1 --port 8000" --name "python-api"
5. Configurar Nginx para Servir tu Dominio
Crea la configuración en Nginx:
sudo nano /etc/nginx/sites-available/app-ia.conf
Añade la directiva de proxy inverso:
server {
listen 80;
server_name miapp.com www.miapp.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Activa la configuración e instala el certificado SSL gratuito:
sudo ln -s /etc/nginx/sites-available/app-ia.conf /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d miapp.com -d www.miapp.com
Errores Comunes en Proyectos Creados con IA
Si tu app utiliza librerías de Machine Learning (como PyTorch o Transformers en CPU), un servidor de 1 GB de RAM podría quedarse sin memoria (Out of Memory). Para esos casos, se recomienda como mínimo un plan VPS Plus (4 GB RAM) o VPS Pro (8 GB RAM).
Lecturas Relacionadas
- Guía básica: Cómo publicar una página web desde localhost
- Guía técnica: Desplegar ASP.NET Core en Linux con Kestrel
¿Listo para mostrar tu creación con IA al público?
Publica tu aplicación en un VPS de Planeta Nube con recursos dedicados, sin cuotas sorpresa y con el mejor rendimiento en la región.