Variables de Entorno¶
Tabla consolidada de todas las variables de entorno del ecosistema GDI, agrupadas por servicio.
GDI-Backend (:8000)¶
| Variable | Descripcion | Requerida | Ejemplo |
|---|---|---|---|
DATABASE_URL |
Connection string PostgreSQL | Si | postgresql://user:pass@host:port/db |
AUTH0_DOMAIN |
Dominio Auth0 | Si | tu-tenant.us.auth0.com |
AUTH0_AUDIENCE |
Audience Auth0 | Si | https://api.tu-dominio.com |
PDFCOMPOSER_URL |
URL de GDI-PDFComposer | Si | http://pdfcomposer:8002 |
PDFCOMPOSER_API_KEY |
API Key para PDFComposer | Si | (secreto) |
NOTARY_URL |
URL de GDI-Notary | Si | http://notary:8001 |
NOTARY_API_KEY |
API Key para Notary | Si | (secreto) |
R2_ACCOUNT_ID |
Cloudflare Account ID | Si | (secreto) |
R2_ACCESS_KEY_ID |
Cloudflare R2 Access Key | Si | (secreto) |
R2_SECRET_ACCESS_KEY |
Cloudflare R2 Secret Key | Si | (secreto) |
R2_ENDPOINT |
Endpoint R2 S3-compatible | Si | https://ACCOUNT_ID.r2.cloudflarestorage.com |
FRONTEND_URL |
URL del frontend (CORS) | No | https://tu-frontend.tu-dominio.com |
TESTING_MODE |
Modo testing (sin Auth0) | No | true / false |
PORT |
Puerto del servicio | No | 8000 (Docker lo inyecta) |
GDI-MCP Server (:8005)¶
Integrado en GDI-Backend (api_gateway/). Comparte las variables del Backend mas las siguientes:
| Variable | Descripcion | Requerida | Ejemplo |
|---|---|---|---|
MCP_RESOURCE_URI |
URI del recurso MCP | No | https://mcp.tu-dominio.com |
Audiences JWT soportados automaticamente:
AUTH0_AUDIENCE(del Backend)MCP_RESOURCE_URI(si definida)https://mcp.tu-dominio.com(hardcodeado)
GDI-BackOffice-Back (:8010)¶
| Variable | Descripcion | Requerida | Ejemplo |
|---|---|---|---|
DB_HOST |
Host PostgreSQL | Si | postgres (Docker) / localhost (local) |
DB_PORT |
Puerto PostgreSQL | Si | 5432 |
DB_USER |
Usuario PostgreSQL | Si | postgres |
DB_PASSWORD |
Password PostgreSQL | Si | (secreto) |
DB_NAME |
Nombre de la base de datos | Si | railway |
AUTH0_DOMAIN |
Dominio Auth0 | Si | tu-tenant.us.auth0.com |
AUTH0_AUDIENCE |
Audience Auth0 | Si | https://tu-tenant.us.auth0.com/api/v2/ |
FRONTEND_URL |
URL del BackOffice Front (CORS) | No | http://localhost:3013 |
BACKOFFICE_URL |
URL propia (referencia) | No | http://localhost:8010 |
RESEND_API_KEY |
API Key de Resend (emails transaccionales) | Si | re_... |
AUTH0_M2M_CLIENT_ID |
Client ID de app M2M (Management API) | Si | (secreto) |
AUTH0_M2M_CLIENT_SECRET |
Client Secret de app M2M | Si | (secreto) |
AUTH0_FRONTEND_CLIENT_ID |
Client ID de app frontend (redirect en password tickets) | No | (secreto) |
AUTH0_DB_CONNECTION |
Nombre de la Database Connection en Auth0 | No | Username-Password-Authentication |
TESTING_MODE |
Modo testing | No | true / false |
PORT |
Puerto del servicio | No | 8010 |
Email via Resend
El envio de emails transaccionales (invitaciones, notificaciones) esta integrado directamente en GDI-BackOffice-Back usando la API de Resend. No existe un microservicio de email separado. La variable RESEND_API_KEY es necesaria para el envio de correos en produccion.
GDI-FRONTEND (:3003)¶
| Variable | Descripcion | Requerida | Ejemplo |
|---|---|---|---|
AUTH0_SECRET |
Secret para sesiones NextAuth | Si | (secreto largo) |
AUTH0_BASE_URL |
URL base del frontend | Si | http://localhost:3003 |
AUTH0_ISSUER_BASE_URL |
URL de Auth0 | Si | https://tu-tenant.us.auth0.com |
AUTH0_CLIENT_ID |
Client ID Auth0 | Si | (secreto) |
AUTH0_CLIENT_SECRET |
Client Secret Auth0 | Si | (secreto) |
NEXT_PUBLIC_API_URL |
URL del Backend API | Si | http://localhost:8000 |
GDI-BackOffice-Front (:3013)¶
| Variable | Descripcion | Requerida | Ejemplo |
|---|---|---|---|
AUTH0_SECRET |
Secret para sesiones NextAuth | Si | (secreto largo) |
AUTH0_BASE_URL |
URL base del frontend | Si | http://localhost:3013 |
AUTH0_ISSUER_BASE_URL |
URL de Auth0 | Si | https://tu-tenant.us.auth0.com |
AUTH0_CLIENT_ID |
Client ID Auth0 | Si | (secreto) |
AUTH0_CLIENT_SECRET |
Client Secret Auth0 | Si | (secreto) |
NEXT_PUBLIC_API_URL |
URL del BackOffice Backend | Si | http://localhost:8010 |
GDI-AgenteLANG (:8004)¶
Stack LLM
GDI-AgenteLANG usa exclusivamente GPT-4.1-nano via OpenRouter para todos los nodos (router, respond, resume, transcripcion). Los embeddings usan openai/text-embedding-3-small (1536 dims) tambien via OpenRouter con la misma API key.
| Variable | Descripcion | Requerida | Ejemplo |
|---|---|---|---|
DATABASE_URL |
Connection string PostgreSQL | Si | postgresql://user:pass@host:port/db |
OPENROUTER_API_KEY |
API Key de OpenRouter | Si | sk-or-... |
OPENROUTER_MODEL |
Modelo LLM principal | Si | openai/gpt-4.1-nano |
OPENROUTER_FAST_MODEL |
Modelo para Router | Si | openai/gpt-4.1-nano |
EMBEDDINGS_MODEL |
Modelo de embeddings (via OpenRouter) | Si | openai/text-embedding-3-small |
GDI_BACKEND_URL |
URL del Backend | Si | http://localhost:8000 (dev) / http://{cliente}-backend-prd.internal:8080 (prd) |
GDI_GATEWAY_URL |
URL del Gateway MCP | Si | http://localhost:8005 (dev) / http://{cliente}-gateway-prd.internal:8080 (prd) |
INTERNAL_API_KEY |
API Key interna compartida con Backend (1 por ambiente) | Si | (secreto) |
AUTH0_DOMAIN |
Dominio Auth0 | Si | <your-tenant>.auth0.com |
AUTH0_AUDIENCE |
Audience Auth0 | Si | https://<your-tenant>.auth0.com/api/v2/ |
ALLOW_TEST_MODE |
Permite modo test sin auth (solo dev) | No | false (default en prd) |
AI_WORKER_INTERVAL |
Intervalo del worker (segundos) | No | 60 (default) |
AI_WORKER_BATCH_SIZE |
Documentos por batch | No | 10 (default) |
TRANSCRIPTION_ENABLED |
Habilitar transcripcion de PDFs | No | true (default) |
TRANSCRIPTION_VISION_MODEL |
Modelo de vision para OCR | No | openai/gpt-4.1-nano |
TRANSCRIPTION_MAX_FILE_SIZE_MB |
Tamano maximo PDF (MB) | No | 10 |
TRANSCRIPTION_MAX_PAGES |
Paginas maximas a transcribir | No | 50 |
TRANSCRIPTION_DPI |
Resolucion de renderizado | No | 150 |
ENABLED_SCHEMAS removida
La variable ENABLED_SCHEMAS fue eliminada. El AIWorker descubre automaticamente los schemas a procesar desde public.ai_usage_limits en la BD.
GDI-PDFComposer (:8002)¶
| Variable | Descripcion | Requerida | Ejemplo |
|---|---|---|---|
API_KEY |
API Key de autenticacion | Si | (secreto) |
GUNICORN_WORKERS |
Numero de workers | No | 4 (default) |
BETTERSTACK_SOURCE_TOKEN |
Token para logging centralizado | No | (secreto) |
PORT |
Puerto del servicio | No | 8002 |
GDI-Notary (:8001)¶
| Variable | Descripcion | Requerida | Ejemplo |
|---|---|---|---|
API_KEY |
API Key de autenticacion | Si | (secreto) |
ENVIRONMENT |
Ambiente de ejecucion | Si | test / prd |
CERTS_DIR |
Directorio de certificados | No | ./certs (default) |
TSA_URL |
Servidor de timestamp | No | http://timestamp.digicert.com |
FALLBACK_TO_VISUAL |
Firma visual si no hay cert | No | true (test) / false (prd) |
GUNICORN_WORKERS |
Numero de workers | No | 3 (default) |
GUNICORN_TIMEOUT |
Timeout de Gunicorn (seg) | No | 90 (default) |
GDI-BD (Scripts SQL)¶
| Variable | Descripcion | Requerida | Ejemplo |
|---|---|---|---|
DATABASE_URL |
Connection string PostgreSQL | Si | postgresql://user:pass@host:port/db |
Resumen de Variables Compartidas¶
Algunas variables se repiten en multiples servicios:
| Variable | Servicios que la usan |
|---|---|
DATABASE_URL |
Backend, AgenteLANG, GDI-BD |
AUTH0_DOMAIN |
Backend, BackOffice-Back, AgenteLANG, Frontends |
AUTH0_AUDIENCE |
Backend, BackOffice-Back, AgenteLANG |
API_KEY |
PDFComposer, Notary |
PORT |
Todos (inyectado por Docker) |
Seguridad
Nunca commitear archivos .env ni credenciales en Git. Todas las variables sensibles deben configurarse en los archivos .env del servidor o en Docker Compose.