feat: Add ngrok internet exposure system for testing
- Complete ngrok setup with automated scripts - One-click internet exposure with setup-complete.sh - Dynamic URL management and Docker reconfiguration - Multi-tunnel configuration for free ngrok accounts - Comprehensive documentation and verification tools - Organized in dedicated ngrok/ folder for easy management
This commit is contained in:
169
ngrok/README.md
Normal file
169
ngrok/README.md
Normal file
@@ -0,0 +1,169 @@
|
||||
# 🌐 SnatchGame - Ngrok Internet Exposure
|
||||
|
||||
Esta carpeta contiene todo lo necesario para exponer SnatchGame a internet usando ngrok.
|
||||
|
||||
## 🚀 Uso Rápido
|
||||
|
||||
### **Método Fácil (Recomendado):**
|
||||
```bash
|
||||
cd ngrok
|
||||
./setup-complete.sh
|
||||
```
|
||||
|
||||
¡Eso es todo! El script hará todo automáticamente y te dará las URLs públicas.
|
||||
|
||||
## 📁 Archivos Incluidos
|
||||
|
||||
### **Scripts Principales:**
|
||||
|
||||
- **`setup-complete.sh`** - 🎯 **Script principal** - Hace todo automáticamente
|
||||
- **`manage-tunnels.sh`** - 🛠️ Gestión de túneles (start/stop/status/urls)
|
||||
- **`update-ngrok-urls.sh`** - 🔄 Actualiza URLs de Docker con ngrok
|
||||
- **`docker-compose.ngrok.yml`** - 🐳 Configuración Docker para ngrok
|
||||
|
||||
### **Scripts Adicionales:**
|
||||
- **`setup-ngrok.sh`** - Setup inicial con configuración manual
|
||||
- **`expose-ngrok.sh`** - Script simple para exponer servicios
|
||||
|
||||
## 🔧 Métodos de Uso
|
||||
|
||||
### **1. Automático (Más Fácil):**
|
||||
```bash
|
||||
./setup-complete.sh
|
||||
```
|
||||
- ✅ Hace todo en orden correcto
|
||||
- ✅ URLs dinámicas automáticas
|
||||
- ✅ Verificación completa
|
||||
- ✅ Mantiene túneles activos
|
||||
|
||||
### **2. Manual (Más Control):**
|
||||
```bash
|
||||
# Ver estado
|
||||
./manage-tunnels.sh status
|
||||
|
||||
# Iniciar túneles
|
||||
./manage-tunnels.sh start
|
||||
|
||||
# Ver URLs actuales
|
||||
./manage-tunnels.sh urls
|
||||
|
||||
# Parar túneles
|
||||
./manage-tunnels.sh stop
|
||||
|
||||
# Reiniciar todo
|
||||
./manage-tunnels.sh restart
|
||||
```
|
||||
|
||||
### **3. Solo actualizar URLs:**
|
||||
```bash
|
||||
./update-ngrok-urls.sh
|
||||
```
|
||||
|
||||
## 📋 Prerrequisitos
|
||||
|
||||
### **1. Cuenta ngrok (Gratis):**
|
||||
1. Regístrate en: https://dashboard.ngrok.com/signup
|
||||
2. Obtén tu authtoken: https://dashboard.ngrok.com/get-started/your-authtoken
|
||||
3. Configúralo una vez:
|
||||
```bash
|
||||
/tmp/ngrok config add-authtoken TU_TOKEN_AQUI
|
||||
```
|
||||
|
||||
### **2. Docker funcionando:**
|
||||
- Los servicios de SnatchGame deben estar builds
|
||||
- Docker compose debe estar disponible
|
||||
|
||||
## 🌐 URLs que obtendrás
|
||||
|
||||
Después de ejecutar el setup obtendrás 3 URLs públicas:
|
||||
|
||||
- **🎮 CLIENTE** - Para que los jugadores se conecten
|
||||
- **📊 ADMIN** - Para administrar el juego
|
||||
- **🎯 SERVIDOR** - API del juego (configurado automáticamente)
|
||||
|
||||
## 🛠️ Solución de Problemas
|
||||
|
||||
### **Error: "authentication failed"**
|
||||
```bash
|
||||
# Configura tu authtoken de ngrok
|
||||
/tmp/ngrok config add-authtoken TU_TOKEN
|
||||
```
|
||||
|
||||
### **Error: "port already in use"**
|
||||
```bash
|
||||
# Limpia procesos anteriores
|
||||
pkill -f ngrok
|
||||
docker compose down
|
||||
```
|
||||
|
||||
### **URLs no funcionan**
|
||||
```bash
|
||||
# Reinicia todo el setup
|
||||
./manage-tunnels.sh restart
|
||||
```
|
||||
|
||||
### **Docker no responde**
|
||||
```bash
|
||||
# Verifica que los servicios estén construidos
|
||||
cd .. && docker compose ps
|
||||
```
|
||||
|
||||
## 📊 Flujo de Funcionamiento
|
||||
|
||||
```
|
||||
1. 🛑 Limpia procesos anteriores
|
||||
↓
|
||||
2. 🐳 Inicia servicios Docker (localhost)
|
||||
↓
|
||||
3. 🌐 Crea túneles ngrok → Obtiene URLs públicas
|
||||
↓
|
||||
4. 🔄 Reconfigura Docker con URLs reales
|
||||
↓
|
||||
5. ✅ Verifica que todo funcione
|
||||
↓
|
||||
6. 🎉 ¡Sistema funcionando en internet!
|
||||
```
|
||||
|
||||
## 🔍 Verificación
|
||||
|
||||
### **Verificar que funciona:**
|
||||
```bash
|
||||
# 1. Ver estado
|
||||
./manage-tunnels.sh status
|
||||
|
||||
# 2. Ver URLs
|
||||
./manage-tunnels.sh urls
|
||||
|
||||
# 3. Probar cliente
|
||||
curl https://TU_URL_CLIENTE/health
|
||||
```
|
||||
|
||||
### **URLs correctas:**
|
||||
- Cliente debe devolver: `{"status":"healthy","service":"snatchgame-client"}`
|
||||
- Admin debe devolver: `{"status":"healthy","service":"snatchgame-admin"}`
|
||||
- Servidor debe devolver: `{"status":"healthy"}`
|
||||
|
||||
## 🎯 Comando de Un Solo Paso
|
||||
|
||||
Para usuarios experimentados:
|
||||
```bash
|
||||
cd ngrok && ./setup-complete.sh
|
||||
```
|
||||
|
||||
## ⚠️ Notas Importantes
|
||||
|
||||
- **Mantén la terminal abierta** - Los túneles se cierran si cierras la terminal
|
||||
- **URLs dinámicas** - Cambian cada vez que reinicias ngrok
|
||||
- **Primera vez** - ngrok puede pedir "Visit Site" en el navegador
|
||||
- **Cuenta gratuita** - Túneles estables mientras esté activo
|
||||
|
||||
## 🎮 Para Jugar
|
||||
|
||||
1. Ejecuta: `./setup-complete.sh`
|
||||
2. Copia la URL del CLIENTE
|
||||
3. Comparte con amigos
|
||||
4. ¡Jueguen desde cualquier lugar del mundo!
|
||||
|
||||
---
|
||||
|
||||
> 💡 **Tip**: Guarda las URLs que te dé el script, son válidas mientras mantengas la terminal abierta.
|
||||
Reference in New Issue
Block a user