- 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
141 lines
3.9 KiB
Bash
141 lines
3.9 KiB
Bash
#!/bin/bash
|
|
|
|
echo "🔄 Actualizando URLs de ngrok en Docker..."
|
|
|
|
# Función para obtener URLs de ngrok
|
|
get_ngrok_urls() {
|
|
if curl -s http://localhost:4040/api/tunnels > /tmp/ngrok-api.json 2>/dev/null; then
|
|
CLIENT_URL=$(grep -o '"snatchgame-client"[^}]*"public_url":"[^"]*"' /tmp/ngrok-api.json | grep -o 'https://[^"]*' | head -1)
|
|
ADMIN_URL=$(grep -o '"snatchgame-admin"[^}]*"public_url":"[^"]*"' /tmp/ngrok-api.json | grep -o 'https://[^"]*' | head -1)
|
|
SERVER_URL=$(grep -o '"snatchgame-server"[^}]*"public_url":"[^"]*"' /tmp/ngrok-api.json | grep -o 'https://[^"]*' | head -1)
|
|
else
|
|
echo "❌ No se pudo conectar a la API de ngrok"
|
|
exit 1
|
|
fi
|
|
|
|
if [[ -z "$SERVER_URL" ]]; then
|
|
echo "❌ No se pudo obtener la URL del servidor"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# Obtener URLs actuales
|
|
get_ngrok_urls
|
|
|
|
echo "🌐 URLs detectadas:"
|
|
echo " Server: $SERVER_URL"
|
|
echo " Client: $CLIENT_URL"
|
|
echo " Admin: $ADMIN_URL"
|
|
|
|
# Crear docker-compose temporal con URLs reales
|
|
echo "📝 Creando configuración Docker actualizada..."
|
|
|
|
cat > /tmp/docker-compose-ngrok-updated.yml << EOF
|
|
version: '3.8'
|
|
|
|
services:
|
|
# Servidor Colyseus
|
|
snatchgame-server:
|
|
image: gitea.interno.com/nucleo000/snatchgame-server:latest
|
|
container_name: snatchgame-server
|
|
ports:
|
|
- "3067:2567"
|
|
environment:
|
|
- NODE_ENV=production
|
|
- PORT=2567
|
|
networks:
|
|
- snatchgame-network
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:2567/health"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|
|
|
|
# Cliente Vue UI
|
|
snatchgame-client:
|
|
image: gitea.interno.com/nucleo000/snatchgame-client:latest
|
|
container_name: snatchgame-client
|
|
ports:
|
|
- "3010:3000"
|
|
environment:
|
|
- NODE_ENV=production
|
|
- PORT=3000
|
|
- SERVER_URL=http://snatchgame-server:2567
|
|
- PUBLIC_SERVER_URL=$SERVER_URL
|
|
depends_on:
|
|
- snatchgame-server
|
|
networks:
|
|
- snatchgame-network
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3000/health"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|
|
|
|
# Admin Dashboard
|
|
snatchgame-admin:
|
|
image: gitea.interno.com/nucleo000/snatchgame-admin:latest
|
|
container_name: snatchgame-admin
|
|
ports:
|
|
- "3011:3001"
|
|
environment:
|
|
- NODE_ENV=production
|
|
- PORT=3001
|
|
- SERVER_URL=http://snatchgame-server:2567
|
|
- PUBLIC_SERVER_URL=$SERVER_URL
|
|
depends_on:
|
|
- snatchgame-server
|
|
networks:
|
|
- snatchgame-network
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3001/health"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|
|
|
|
networks:
|
|
snatchgame-network:
|
|
driver: bridge
|
|
EOF
|
|
|
|
echo "🔄 Reiniciando servicios Docker con URLs actualizadas..."
|
|
|
|
# Parar servicios actuales
|
|
docker compose -f docker-compose.ngrok.yml down 2>/dev/null || true
|
|
|
|
# Iniciar con nueva configuración
|
|
docker compose -f /tmp/docker-compose-ngrok-updated.yml up -d
|
|
|
|
# Esperar a que estén listos
|
|
echo "⏳ Esperando a que los servicios estén listos..."
|
|
sleep 15
|
|
|
|
# Verificar que estén funcionando
|
|
echo "🔍 Verificando servicios..."
|
|
for port in 3010 3011 3067; do
|
|
if curl -f http://localhost:$port/health &>/dev/null; then
|
|
echo "✅ Puerto $port: OK"
|
|
else
|
|
echo "❌ Puerto $port: FALLO"
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "🎉 Configuración actualizada!"
|
|
echo "🌐 URLs públicas:"
|
|
echo " 🎮 Cliente: $CLIENT_URL"
|
|
echo " 📊 Admin: $ADMIN_URL"
|
|
echo " 🎯 Server: $SERVER_URL"
|
|
echo ""
|
|
echo "🔍 Verificar configuración del cliente:"
|
|
curl -s https://$(echo $CLIENT_URL | cut -d'/' -f3)/api/config
|
|
|
|
echo ""
|
|
echo ""
|
|
echo "✅ ¡Todo listo! Prueba abrir: $CLIENT_URL" |