Some checks are pending
CI Pipeline / changes (push) Waiting to run
CI Pipeline / core (push) Blocked by required conditions
CI Pipeline / trading-backend (push) Blocked by required conditions
CI Pipeline / trading-data-service (push) Blocked by required conditions
CI Pipeline / trading-frontend (push) Blocked by required conditions
CI Pipeline / erp-core (push) Blocked by required conditions
CI Pipeline / erp-mecanicas (push) Blocked by required conditions
CI Pipeline / gamilit-backend (push) Blocked by required conditions
CI Pipeline / gamilit-frontend (push) Blocked by required conditions
Backend: - Fix email verification and password recovery services - Fix exercise submission and student progress services Frontend: - Update missions, password, and profile API services - Fix ExerciseContentRenderer component Docs & Scripts: - Add SSL/Certbot deployment guide - Add quick deployment guide - Database scripts for testing and validations - Migration and homologation reports - Functions inventory documentation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
4.9 KiB
4.9 KiB
GUIA RAPIDA: Deployment en Produccion
Version: 1.0.0 Fecha: 2025-12-18 Servidor: 74.208.126.102
CHECKLIST RAPIDO (10 PASOS)
# 1. BACKUP (SIEMPRE PRIMERO)
BACKUP_DIR="/home/gamilit/backups/$(date +%Y%m%d_%H%M%S)"
mkdir -p "$BACKUP_DIR/config"
cp apps/backend/.env.production "$BACKUP_DIR/config/"
cp apps/frontend/.env.production "$BACKUP_DIR/config/"
# 2. BACKUP BASE DE DATOS
pg_dump "$DATABASE_URL" | gzip > "$BACKUP_DIR/gamilit.sql.gz"
# 3. PULL CAMBIOS
git fetch origin && git reset --hard origin/main
# 4. RESTAURAR CONFIG
cp "$BACKUP_DIR/config/.env.production" apps/backend/
cp "$BACKUP_DIR/config/.env.production" apps/frontend/
# 5. INSTALAR DEPENDENCIAS
npm install && cd apps/backend && npm install && cd ../frontend && npm install && cd ../..
# 6. BUILD
cd apps/backend && npm run build && cd ../frontend && npm run build && cd ../..
# 7. RECREAR BASE DE DATOS (si hay cambios DDL)
cd apps/database && ./drop-and-recreate-database.sh "$DATABASE_URL" && cd ..
# 8. DEPLOY PM2
pm2 delete all 2>/dev/null; pm2 start ecosystem.config.js --env production; pm2 save
# 9. VALIDAR
./scripts/validate-deployment.sh --ssl
# 10. STARTUP (solo primera vez)
pm2 startup && pm2 save
ESCENARIOS COMUNES
A. Solo actualizar codigo (sin cambios BD)
git pull origin main
cd apps/backend && npm install && npm run build && cd ..
cd apps/frontend && npm install && npm run build && cd ..
pm2 restart all
B. Cambios en frontend unicamente
git pull origin main
cd apps/frontend && npm install && npm run build && cd ..
pm2 restart gamilit-frontend
C. Cambios en backend unicamente
git pull origin main
cd apps/backend && npm install && npm run build && cd ..
pm2 restart gamilit-backend
D. Cambios en variables de entorno (.env)
# Editar archivo
nano apps/backend/.env.production
# O
nano apps/frontend/.env.production
# Rebuild frontend si cambian VITE_*
cd apps/frontend && npm run build && cd ..
# Restart
pm2 restart all
E. Recrear base de datos completa
cd apps/database
./drop-and-recreate-database.sh "$DATABASE_URL"
cd ..
COMANDOS DE EMERGENCIA
Rollback rapido
# Restaurar desde backup
pg_restore "$BACKUP_DIR/gamilit.sql.gz" | psql "$DATABASE_URL"
cp "$BACKUP_DIR/config/.env.production" apps/backend/
cp "$BACKUP_DIR/config/.env.production" apps/frontend/
pm2 restart all
Ver logs de errores
pm2 logs --err --lines 100
Restart de emergencia
pm2 kill && pm2 start ecosystem.config.js --env production
Status completo
pm2 list && pm2 logs --lines 10 --nostream
VARIABLES DE ENTORNO CRITICAS
Backend .env.production
NODE_ENV=production
PORT=3006
DB_HOST=localhost
DB_PORT=5432
DB_NAME=gamilit_platform
DB_USER=gamilit_user
DB_PASSWORD=<PASSWORD>
JWT_SECRET=<GENERAR: openssl rand -base64 32>
CORS_ORIGIN=https://gamilit.com
FRONTEND_URL=https://gamilit.com
ENABLE_SWAGGER=false
Frontend .env.production
VITE_ENV=production
VITE_API_HOST=gamilit.com
VITE_API_PROTOCOL=https
VITE_WS_HOST=gamilit.com
VITE_WS_PROTOCOL=wss
VITE_MOCK_API=false
VITE_ENABLE_DEBUG=false
SSL CON CERTBOT (NUEVO SERVIDOR)
Guia completa: Ver GUIA-SSL-CERTBOT-DEPLOYMENT.md para documentacion detallada, troubleshooting y renovacion.
# Automatizado con Let's Encrypt
sudo ./scripts/setup-ssl-certbot.sh gamilit.com www.gamilit.com
# Auto-firmado (sin dominio)
sudo ./scripts/setup-ssl-certbot.sh --self-signed
# Ayuda
./scripts/setup-ssl-certbot.sh --help
# Manual
sudo apt install -y nginx certbot python3-certbot-nginx
sudo certbot --nginx -d gamilit.com -d www.gamilit.com
VALIDACION
# Basica (sin SSL)
./scripts/validate-deployment.sh
# Completa con SSL
./scripts/validate-deployment.sh --ssl --verbose
# Opciones disponibles
./scripts/validate-deployment.sh --help
# --ssl Incluir validaciones de SSL/HTTPS
# --verbose Mostrar informacion adicional
# Manual
curl http://localhost:3006/api/health
curl http://localhost:3005
curl https://gamilit.com/api/health
pm2 list
Nota: El script
validate-deployment.shverifica archivos .env, builds, PM2, endpoints, SSL (opcional) y base de datos.
TROUBLESHOOTING
| Problema | Solucion |
|---|---|
| PM2 no inicia | pm2 kill && pm2 start ecosystem.config.js --env production |
| CORS error | Verificar CORS_ORIGIN en backend y rebuildar frontend |
| SSL no funciona | sudo nginx -t && sudo systemctl restart nginx |
| BD no conecta | Verificar DB_PASSWORD y que PostgreSQL este corriendo |
| Build falla | rm -rf node_modules && npm install |
CONTACTO
- Logs:
/home/isem/workspace/projects/gamilit/logs/ - Config PM2:
ecosystem.config.js - Guia completa:
docs/95-guias-desarrollo/GUIA-DESPLIEGUE-PRODUCCION-COMPLETA.md