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

99 lines
3.1 KiB
Markdown

# 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