#Deploy VPS Standard
##Cuándo usar este skill
- •Cuando el usuario pida "hacer deploy" de una app web.
- •Cuando se necesite configurar Docker y Docker Compose en este VPS.
- •Cuando el usuario mencione "Hostinger", "VPS" y "Nginx Proxy Manager".
- •Para estandarizar los despliegues de Next.js u otras apps Node.js en este entorno.
##Inputs necesarios
-Tecnología del proyecto: (e.g., Next.js, React, Node.js) - analizar package.json
-Base de datos: (e.g., Postgres, Prisma) - analizar schema.prisma
-Puerto destino: Puerto libre para exponer la app (e.g., 3070).
##Workflow
- •
Análisis del Entorno
- •Revisar
package.jsonpara scripts de build y start. - •Revisar
prisma/schema.prisma(si existe) para la capa de datos. - •Detectar
docker-compose.ymlexistente.
- •Revisar
- •
Configuración de Docker
-Dockerfile: Crear
Dockerfilemulti-stage optimizado (usaroutput: standaloneen Next.js).-Importante: Exponer el MISMO puerto interno que se usará externamente (e.g.,
ENV PORT 3070,EXPOSE 3070).-Compose: Crear o actualizar
docker-compose.yml.- •Servicio
web: mapeo de puertosPORT:PORT. - •Variables de entorno:
DATABASE_URL(linkeado a servicio db). - •Redes: asegurar conexión entre app y db.
- •Servicio
- •
Gestión de Puertos
- •Ejecutar
netstat -tulnydocker pspara encontrar puertos ocupados. - •Seleccionar un puerto libre (e.g., rango 3000-4000).
-Regla de Oro: Usar el mismo puerto en:
- •
Dockerfile(ENV PORT) - •
docker-compose.yml(ports: "3070:3070") - •Configuración de Nginx Proxy Manager.
- •Ejecutar
- •
Despliegue
- •Si usas Next.js, asegúrate de
output: 'standalone'ennext.config.ts. - •Ejecutar:
docker compose up -d --build(Preferir V2docker composesi está disponible).
- •Si usas Next.js, asegúrate de
- •
Verificación
- •Verificar estado:
docker ps. - •Prueba de conectividad:
curl -I http://localhost:PORT. - •Revisar logs si falla:
docker logs <container_name>.
- •Verificar estado:
- •
Entrega
- •
Informar al usuario el PUERTO final.
- •
Instrucciones para Nginx Proxy Manager:
- •Forward Hostname:
(IP VPS)ohost.docker.internal. - •Forward Port:
PORT.
- •Forward Hostname:
- •
##Instrucciones
-Next.js: Siempre verificar next.config.ts para habilitar standalone. Si falla el build por dependencias de sistema, usar apk add --no-cache libc6-compat.
-Prisma: Incluir RUN npx prisma generate en el Dockerfile antes del build.
-Consistencia: No mezclar puertos internos/externos (e.g., NO hacer 3070:3000). Mantener 3070:3070 para evitar confusión en Nginx.
##Output (formato exacto)
Al finalizar, generar un Walkthrough (walkthrough.md) con:
- •Archivos creados/modificados.
- •Puerto asignado.
- •Comandos de verificación ejecutados.
- •Guía rápida para configurar Nginx Proxy Manager con los datos concretos.