El ZIP incluirá también index.js y package.json básicos.
Sigue estos pasos en orden para desplegar cualquier app generada por IA.
Cuando pidas código a ChatGPT o Gemini, usa este prompt para evitar errores de puertos o archivos faltantes:
app.use(express.static(__dirname)) para servir archivos HTML y estáticos de la raíz.package.json y el index.js completo."Entra a tu servidor mediante SSH y crea la carpeta para tu nueva idea.
# 1. Crear carpeta
mkdir -p ~/mis-apps/mi-app
# 2. Entrar
cd ~/mis-apps/mi-app
Ruta Estándar: Mantén todas tus apps dentro de ~/mis-apps/ para tener orden.
Aquí es donde subirás los archivos generados.
Esta herramienta te genera los archivos de Docker necesarios. Sigue estos pasos:
.zip.unzip mi-app-kit-despliegue.zip
touch data.db
docker compose up -d --build
Arrancar / Actualizar
docker compose up -d --build
Usa esto tras subir cambios de código.
Reiniciar Rápido
docker compose restart
Apagar Todo
docker compose down
Ver Logs en Vivo
docker compose logs -f
Ctrl + C para salir.
Backup de SQLite
cp data.db data.db.backup
Ejecutar antes de cambios peligrosos.
Limpieza Total (Reset)
docker compose down --rmi all
Borra contenedores e imágenes para empezar de cero.
Síntoma: La web carga con certificado seguro, pero muestra texto plano "404 page not found".
Causa: Tu servidor Node.js está corriendo, pero no sabe qué archivo mostrar cuando entras a la raíz.
Síntoma: El navegador muestra advertencia de seguridad "Sitio no seguro".
Causa: Conflicto de nombres. Has copiado un docker-compose.yml de otra app y no has cambiado el nombre del router en las etiquetas.
Síntoma: La web da error 502 Bad Gateway y en los logs ves Exec format error o errores de librerías.
Causa: Has copiado la carpeta node_modules de tu Windows/Mac al servidor Linux. Los archivos no son compatibles.
rm -rf node_modules en el servidor.docker compose up -d --build --force-recreate
Síntoma: La aplicación vuelve a estado inicial (contadores a 0, usuarios borrados) cada vez que reinicias el contenedor.
Causa: No has configurado un "Volumen" para guardar la base de datos fuera del contenedor.
Guía generada para la infraestructura de jesussanchez.online