feat: Añadir scripts para generar y sincronizar archivos .env, actualizar configuraciones de Docker y mejorar el despliegue en producción

This commit is contained in:
2026-03-31 10:10:44 -03:00
parent f6b6f84427
commit 2d54d6abfc
7 changed files with 265 additions and 136 deletions
+35 -73
View File
@@ -1,115 +1,71 @@
# ========================================
# OpenCCB Environment Configuration
# ========================================
# Copia este archivo a .env y configura tus variables
# cp .env.example .env
# Producción - AWS EC2
# ========================================
# ----------------------------------------
# Database Configuration
# Database Configuration (Docker)
# Las URLs usan 'db' como hostname (contenedor PostgreSQL)
# Puerto interno de Docker: 5432
# ----------------------------------------
# DB_PASSWORD: Genera uno seguro con: ./generate_jwt_secret.sh
DB_PASSWORD=tu_password_seguro
DB_PASSWORD=CHANGE_ME_GENERATE_SECURE_PASSWORD
CMS_DATABASE_URL=postgresql://user:CHANGE_ME_GENERATE_SECURE_PASSWORD@db:5432/openccb_cms
LMS_DATABASE_URL=postgresql://user:CHANGE_ME_GENERATE_SECURE_PASSWORD@db:5432/openccb_lms
DATABASE_URL=postgresql://user:CHANGE_ME_GENERATE_SECURE_PASSWORD@db:5432/openccb_cms
# JWT_SECRET: Genera uno seguro con: ./generate_jwt_secret.sh
JWT_SECRET=tu_jwt_secret_seguro
# Database URLs
# Producción (Docker): db:5432
# Desarrollo (Local): localhost:5433 o localhost:5434
CMS_DATABASE_URL=postgresql://user:DB_PASSWORD@localhost:5433/openccb_cms
LMS_DATABASE_URL=postgresql://user:DB_PASSWORD@localhost:5433/openccb_lms
DATABASE_URL=postgresql://user:DB_PASSWORD@localhost:5433/openccb_cms
# SAM Database (External MySQL)
SAM_DATABASE_URL=mysql://usuario:password@host:3306/sige_sam_v3
# Bridge Database
BRIDGE_DATABASE_URL=postgresql://user:password@localhost:5432/openccb_cms?sslmode=disable
# ----------------------------------------
# JWT Secret (64 caracteres mínimo)
# ----------------------------------------
JWT_SECRET=CHANGE_ME_GENERATE_SECURE_SECRET
# ----------------------------------------
# Logging
# ----------------------------------------
RUST_LOG=info
# Opciones: error, warn, info, debug, trace
# ----------------------------------------
# Environment
# ----------------------------------------
ENVIRONMENT=dev
# Opciones: dev, prod
# ----------------------------------------
# Let's Encrypt Configuration
# ----------------------------------------
LETSENCRYPT_STAGING=true
# true = Staging (certificados de prueba, sin rate limits)
# false = Production (certificados reales, con rate limits)
ENVIRONMENT=prod
# ----------------------------------------
# AI Configuration
# ----------------------------------------
AI_PROVIDER=local
# Opciones: 'openai' o 'local'
OPENAI_API_KEY=tu_api_key_de_openai
OPENAI_API_KEY=
# Local AI (Ollama & Whisper)
LOCAL_WHISPER_URL=http://localhost:9000
LOCAL_OLLAMA_URL=http://localhost:11434
LOCAL_WHISPER_URL=http://t-800.norteamericano.cl:9000
LOCAL_OLLAMA_URL=http://t-800.norteamericano.cl:11434
# Model Configuration - Optimized for each use case
# Model Configuration
LOCAL_LLM_MODEL=llama3.2:3b
# Chat/Tutor: llama3.2:3b - Rápido y eficiente para IA conversacional
LOCAL_LLM_MODEL_COMPLEX=qwen3.5:9b
# Razonamiento complejo/análisis: qwen3.5:9b
LOCAL_LLM_MODEL_ADVANCED=gpt-oss:latest
# Tareas pesadas: gpt-oss:latest - Modelo más capaz
# Embeddings: nomic-embed-text - Optimizado para búsqueda semántica
# Embeddings
EMBEDDING_MODEL=nomic-embed-text
# Audio transcription (Whisper)
WHISPER_MODEL=whisper-large-v3
# Bark TTS API (Text-to-Speech para preguntas)
BARK_API_URL=http://localhost:8443
# ----------------------------------------
# Development URLs (Red local)
# External Database Integration (SAM)
# ----------------------------------------
DEV_OLLAMA_URL=http://t-800.norteamericano.cl:11434
DEV_WHISPER_URL=http://t-800.norteamericano.cl:9000
DEV_BARK_URL=http://t-800:8000
# ----------------------------------------
# Production URLs (Red local)
# ----------------------------------------
PROD_OLLAMA_URL=http://t-800.norteamericano.cl:11434
PROD_WHISPER_URL=http://t-800.norteamericano.cl:9000
# Video Bridge URL
LOCAL_VIDEO_BRIDGE_URL=http://t-800.norteamericano.cl:8080
MYSQL_DATABASE_URL=mysql://db_user:db_password@host:3306/database_name
EXTERNAL_TABLE_GRADES=notas
EXTERNAL_ID_TIPO_NOTA=1
# ----------------------------------------
# Mercado Pago Configuration
# ----------------------------------------
MP_ACCESS_TOKEN=tu_access_token_de_mercado_pago
MP_PUBLIC_KEY=tu_public_key_de_mercado_pago
MP_WEBHOOK_SECRET=tu_webhook_secret_de_mercado_pago
MP_BACK_URL_SUCCESS=http://localhost:3003/payments/success
MP_BACK_URL_FAILURE=http://localhost:3003/payments/failure
MP_ACCESS_TOKEN=
MP_PUBLIC_KEY=
MP_WEBHOOK_SECRET=
MP_BACK_URL_SUCCESS=https://learning.norteamericano.com/payments/success
MP_BACK_URL_FAILURE=https://learning.norteamericano.com/payments/failure
MP_NOTIFICATION_URL=
# ----------------------------------------
# External MySQL Integration
# ----------------------------------------
MYSQL_DATABASE_URL=mysql://usuario:password@host:3306/base_de_datos
EXTERNAL_TABLE_GRADES=notas
EXTERNAL_ID_TIPO_NOTA=1
# ----------------------------------------
# Branding Defaults
# ----------------------------------------
@@ -121,8 +77,14 @@ DEFAULT_PRIMARY_COLOR="#3B82F6"
DEFAULT_SECONDARY_COLOR="#8B5CF6"
# ----------------------------------------
# Frontend API URLs (Producción)
# Let's Encrypt Configuration
# true = Staging (certificados de prueba)
# false = Production (certificados reales)
# ----------------------------------------
LETSENCRYPT_STAGING=true
# ----------------------------------------
# Frontend URLs (para producción con SSL)
# ----------------------------------------
# Estas URLs se usan para el build del frontend y deben apuntar a los dominios públicos
NEXT_PUBLIC_CMS_API_URL=https://studio.norteamericano.com
NEXT_PUBLIC_LMS_API_URL=https://learning.norteamericano.com