#!/bin/bash # =========================================== # Captain Mobile - Deployment Script # Ejecutar en ARCHITECT (69.62.126.110) # =========================================== set -e echo "πŸš€ Captain Mobile Deployment" echo "============================" # Colores RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # 1. Matar procesos colgados echo -e "\n${YELLOW}[1/7] Limpiando procesos colgados...${NC}" pkill -f "psql.*captain" 2>/dev/null || true pkill -f "psql.*bypass" 2>/dev/null || true echo -e "${GREEN}βœ“ Limpieza completada${NC}" # 2. Configurar PostgreSQL echo -e "\n${YELLOW}[2/7] Configurando PostgreSQL...${NC}" sudo -u postgres psql </dev/null) if echo "$HEALTH" | grep -q '"status":"ok"'; then echo -e "${GREEN}βœ“ API funcionando correctamente${NC}" echo "$HEALTH" | python3 -m json.tool 2>/dev/null || echo "$HEALTH" else echo -e "${RED}βœ— API no responde${NC}" echo "Logs:" sudo journalctl -u captain-api -n 30 --no-pager fi # 6. Configurar Caddy echo -e "\n${YELLOW}[6/7] Configurando Caddy...${NC}" CADDY_CONFIG=" captain.tzzrarchitect.me { reverse_proxy localhost:3030 @websocket { header Connection *Upgrade* header Upgrade websocket } reverse_proxy @websocket localhost:3030 } " # Verificar si ya existe la config if grep -q "captain.tzzrarchitect.me" /etc/caddy/Caddyfile 2>/dev/null; then echo -e "${YELLOW}⚠ Config de Caddy ya existe${NC}" else echo "$CADDY_CONFIG" | sudo tee -a /etc/caddy/Caddyfile > /dev/null sudo systemctl reload caddy echo -e "${GREEN}βœ“ Caddy configurado${NC}" fi # 7. Resumen DNS echo -e "\n${YELLOW}[7/7] ConfiguraciΓ³n DNS requerida${NC}" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "Agregar en Cloudflare:" echo " Tipo: A" echo " Nombre: captain" echo " Contenido: 69.62.126.110" echo " Proxy: Activado (naranja)" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" # Resumen final echo -e "\n${GREEN}═══════════════════════════════════════${NC}" echo -e "${GREEN} DEPLOYMENT COMPLETADO ${NC}" echo -e "${GREEN}═══════════════════════════════════════${NC}" echo "" echo "πŸ“‘ API Local: http://localhost:3030" echo "🌐 API PΓΊblica: https://captain.tzzrarchitect.me" echo "" echo "PrΓ³ximos pasos:" echo "1. Configurar DNS en Cloudflare (si no estΓ‘)" echo "2. Crear repo en Gitea: git.tzzr.net/tzzr/captain-mobile" echo "3. Build APK con Flutter" echo "" echo "Test rΓ‘pido:" echo " curl -X POST http://localhost:3030/auth/login \\" echo " -H 'Content-Type: application/json' \\" echo " -d '{\"username\":\"captain\",\"password\":\"tzzr2025\"}'"