# Deployment de SnatchGame Esta carpeta contiene todos los archivos y documentación necesarios para desplegar SnatchGame en diferentes entornos. ## 📁 Estructura de archivos ``` deploy/ ├── Dockerfile # Imagen Docker de la aplicación completa ├── start.sh # Script de inicio para el contenedor ├── dockerignore # Archivos a ignorar en build (renombrar a .dockerignore) ├── NGINX-CONFIG.md # Configuración de Nginx Proxy Manager ├── DEPLOY-GCLOUD.md # Guía de despliegue en Google Cloud ├── deploy-to-production.sh # Script automatizado de deployment completo └── gcloud/ # Scripts específicos para Google Cloud ├── create-vm.sh # Script para crear la VM ├── startup-script.sh # Script de inicio de la VM └── update-deployment.sh # Script para actualizar deployment ``` ## 🚀 Despliegue rápido ### Opción 1: Docker local ```bash cd deploy cp dockerignore .dockerignore docker build -t snatchgame . docker run -p 3000:3000 -p 2567:2567 snatchgame ``` ### Opción 2: Google Cloud VM (Automatizado) ✅ RECOMENDADO ```bash # Deployment completo automatizado a producción ./deploy/deploy-to-production.sh ``` **Estado**: ✅ Probado y funcionando - **Usado exitosamente: 1 vez** > 📝 **Importante**: Actualizar este contador cada vez que el script funcione correctamente ### Opción 3: Google Cloud VM (Manual) Ver [DEPLOY-GCLOUD.md](./DEPLOY-GCLOUD.md) para instrucciones detalladas. ### Opción 4: Con Nginx Proxy Manager Ver [NGINX-CONFIG.md](./NGINX-CONFIG.md) para configuración de proxy reverso. ## 🔧 Configuración de Docker ### Build de la imagen ```bash # Desde la raíz del proyecto docker build -f deploy/Dockerfile -t josedario87/snatchgame:latest . # O desde la carpeta deploy cd deploy cp dockerignore .dockerignore docker build -t josedario87/snatchgame:latest .. ``` ### Push a DockerHub ```bash docker login docker push josedario87/snatchgame:latest ``` ## 📊 Puertos utilizados - **3000**: Frontend (Vue.js) - **2567**: Backend (Colyseus WebSocket y API) ## 🌐 URLs del juego - Frontend: `http://localhost:3000` - API: `http://localhost:2567/api` - WebSocket: `ws://localhost:2567/ws` - Monitor: `http://localhost:2567/colyseus` ## 🔄 Actualización del deployment ### Método automatizado (Recomendado) ```bash ./deploy/deploy-to-production.sh ``` Este script hace todo automáticamente: 1. Construye imagen sin cache 2. Sube a DockerHub 3. Actualiza la VM en Google Cloud 4. Reinicia el contenedor ### Método manual 1. Hacer cambios en el código 2. Reconstruir imagen: `docker build -t josedario87/snatchgame:latest .` 3. Push a DockerHub: `docker push josedario87/snatchgame:latest` 4. En el servidor: `docker pull josedario87/snatchgame:latest && docker restart snatchgame` ## 📝 Notas importantes - El archivo `dockerignore` debe renombrarse a `.dockerignore` cuando se use - Los scripts de `gcloud/` requieren configuración específica del proyecto - La imagen Docker incluye tanto frontend como backend en un solo contenedor - Se recomienda usar variables de entorno para configuración sensible