Files
snatchgame/deploy/README.md
2025-08-28 21:58:40 -06:00

3.1 KiB

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

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

# 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 para instrucciones detalladas.

Opción 4: Con Nginx Proxy Manager

Ver NGINX-CONFIG.md para configuración de proxy reverso.

🔧 Configuración de Docker

Build de la imagen

# 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

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)

./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