99 lines
3.1 KiB
Markdown
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 |