Variables de entorno
Tres capas, documentadas en .env.example: secretos, despliegue, producto. El compose busca .env al lado del fichero compose (infra/.env). El Makefile y prod-up.sh pasan --env-file .env de la raíz del bundle/repo. Sin eso, cada ${VAR:-default} usa el default institution-agnostic.
No volcar compose config: imprime secretos. No commitear .env.
Secretos (los que hay que cambiar)
Los change-me-* de .env.example. Mínimo: pg_PASSWORD, object-store_ROOT_*, LLM Router_MASTER_KEY, runtime del agente_PROFILE_API_KEY, runtime del agente_API_SERVER_KEY, SOCIETY_INTERNAL_TOKEN, SOCIETY_AGENT_DB_PASSWORD, al menos una clave de proveedor LLM.
install.sh autogenera secretos y no pisa un .env existente.
Kill-switches (default off)
SOCIETY_SPAWN_ENABLED=0
SOCIETY_RAG_WRITE_ENABLED=0
SOCIETY_SKILL_PUBLISH_ENABLED=0
SOCIETY_EVALUATOR_AUTO_APPROVALS_ENABLED=0
SOCIETY_GOVERNANCE_ENFORCE=0
SOCIETY_AUTH_ENABLED: off en Dev, ON en clientes.
Identidad de instancia
SOCIETY_INSTANCE_ID: DEV | IDENTIA | LEGALDESIGN. Vive en config del servicio, no en runtime del agente_hosts — el identificador X-Road completo no se reconstruye desde la base sola.
SOCIETY_BIND_IP: Dev suele 127.0.0.1; VPS 0.0.0.0 + firewall.
Ontología
SOCIETY_ontology-catalog_URL=http://ontology-catalog-explorer:8000
SOCIETY_ontology-catalog_API_KEY= # de /opt/ontology-catalog/.env
SOCIETY_ontology-catalog_PUBLIC_URL= # https://onto.<cliente>.do
Hay que ponerlas en el .env y en el compose de la caja.
Chat / LLM
SOCIETY_CHAT_API_KEY, SOCIETY_DEFAULT_LLM_MODEL, SOCIETY_DEFAULT_LLM_BASE_URL, más las claves de proveedor. Destino local: LMSTUDIO_BASE_URL.
Conversation UI (stack aparte infra/conversation-ui/.env, no el .env raíz): mismos SOCIETY_CHAT_API_KEY; más CREDS_* / JWT_*, MEILI_MASTER_KEY, ADMIN_PANEL_SESSION_SECRET, DOMAIN_CLIENT / DOMAIN_SERVER, conversation-ui_BIND (default 127.0.0.1). Plantilla comentada: infra/conversation-ui/.env.example.
Auth proveedor de identidad (OIDC)
SOCIETY_proveedor OIDC_*, SOCIETY_ADMIN_EMAILS (superadmin → ["*"]), SOCIETY_ACCEPT_ID_TOKEN (hoy true: acepta ID token y access token).
Lista completa: .env.example (comentada, ~100 líneas de producto + secretos). Esta página no la duplica.