🎓 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 ✅
This commit is contained in:
106
scripts/setup-secrets.sh
Executable file
106
scripts/setup-secrets.sh
Executable file
@@ -0,0 +1,106 @@
|
||||
#!/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 "=================================================="
|
||||
Reference in New Issue
Block a user