Files
math2-platform/scripts/setup-secrets.sh
Renato bc43c9e772
Some checks failed
Test Suite / test-backend (push) Has been cancelled
Test Suite / test-frontend (push) Has been cancelled
Test Suite / e2e-tests (push) Has been cancelled
Test Suite / coverage-check (push) Has been cancelled
🎓 Initial commit: Math2 Platform - Plataforma de Álgebra Lineal PRO
 Características:
- 45 ejercicios universitarios (Basic → Advanced)
- Renderizado LaTeX profesional
- IA generativa (Z.ai/DashScope)
- Docker 9 servicios
- Tests 123/123 pasando
- Seguridad enterprise (JWT, XSS, Rate limiting)

🐳 Infraestructura:
- Next.js 14 + Node.js 20
- PostgreSQL 15 + Redis 7
- Docker Compose completo
- Nginx + SSL ready

📚 Documentación:
- 5 informes técnicos completos
- README profesional
- Scripts de deployment automatizados

Estado: Producción lista 
2026-03-31 11:27:11 -03:00

107 lines
3.5 KiB
Bash
Executable File

#!/bin/bash
# ==================================================
# SECRETS SETUP SCRIPT
# Script para configurar secrets localmente de forma segura
# ==================================================
set -e
echo "=================================================="
echo " Configuración de Secrets - Math Platform"
echo "=================================================="
echo ""
# Colores para output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# Crear directorio de secrets
SECRETS_DIR="./secrets"
mkdir -p "$SECRETS_DIR"
echo -e "${YELLOW}Este script creará archivos de secrets en $SECRETS_DIR/${NC}"
echo -e "${YELLOW}Estos archivos están en .gitignore y NO deben commitearse${NC}"
echo ""
# Función para solicitar secret
request_secret() {
local name=$1
local description=$2
local file="$SECRETS_DIR/$name.txt"
echo "--------------------------------------------------"
echo -e "${GREEN}$description${NC}"
if [ -f "$file" ]; then
echo -e "${YELLOW}⚠️ Ya existe: $file${NC}"
read -p "¿Desea sobrescribir? (s/N): " overwrite
if [[ ! "$overwrite" =~ ^[Ss]$ ]]; then
echo " → Saltando..."
return
fi
fi
read -s -p "Ingrese el valor (presione Enter para omitir): " value
echo ""
if [ -n "$value" ]; then
echo "$value" > "$file"
chmod 600 "$file"
echo -e "${GREEN} ✓ Creado: $file${NC}"
else
echo -e "${YELLOW} → Omitido${NC}"
fi
}
# Solicitar cada secret
request_secret "db_password" "1. Contraseña de la Base de Datos PostgreSQL"
request_secret "redis_password" "2. Contraseña de Redis"
request_secret "jwt_secret" "3. JWT Secret (mínimo 32 caracteres recomendado)"
request_secret "session_secret" "4. Session Secret"
request_secret "ai_api_key" "5. AI API Key (DashScope/Aliyun)"
request_secret "telegram_token" "6. Telegram Bot Token"
request_secret "telegram_chat_id" "7. Telegram Admin Chat ID"
request_secret "monitor_db_password" "8. Contraseña del usuario de monitoreo"
echo ""
echo "=================================================="
echo -e "${GREEN}Configuración completada${NC}"
echo "=================================================="
echo ""
# Verificar permisos
echo "Verificando permisos de seguridad..."
chmod 600 "$SECRETS_DIR"/*.txt 2>/dev/null || true
echo -e "${GREEN}✓ Permisos establecidos: 600 (solo lectura/escritura owner)${NC}"
echo ""
# Listar secrets creados
echo "Secrets configurados:"
ls -la "$SECRETS_DIR/"
echo ""
echo "=================================================="
echo " INSTRUCCIONES DE USO"
echo "=================================================="
echo ""
echo "1. Para desarrollo local con secrets:"
echo " docker-compose -f docker-compose.secrets.yml up -d"
echo ""
echo "2. Para producción con Docker Swarm:"
echo " docker secret create db_password secrets/db_password.txt"
echo " docker stack deploy -c docker-compose.secrets.yml math-platform"
echo ""
echo "3. Para rotar credenciales:"
echo " - Generar nuevos valores"
echo " - Actualizar archivos en secrets/"
echo " - Reiniciar servicios: docker-compose -f docker-compose.secrets.yml restart"
echo ""
echo -e "${RED}⚠️ IMPORTANTE:${NC}"
echo -e "${RED} - NUNCA commitear archivos de secrets${NC}"
echo -e "${RED} - Hacer backup de secrets en un lugar seguro${NC}"
echo -e "${RED} - Rotar credenciales expuestas inmediatamente${NC}"
echo ""
echo "=================================================="