Ir al contenido

Configuración

Hay dos sitios donde se configura Organtia y conviene no confundirlos:

  • La vista Configuración, dentro de la oficina: cambia las instrucciones del CEO y enseña, en lectura, con qué modelo trabaja. Los cambios se aplican en el mensaje siguiente.
  • El .env de la instalación: define el modelo, la identidad, la base de datos y el acceso. Los cambios exigen recrear el contenedor.

Se abre desde el pie del menú lateral, con el icono de engranaje y la etiqueta Configuración. Es un diálogo titulado «Configuración de Adrián», con este subtítulo:

Cómo trabaja, con qué modelo y qué se le ha dicho. Se aplica en el mensaje siguiente.

Dato De dónde sale Se puede cambiar aquí
Modelo MODEL_ID No
Temperatura MODEL_TEMPERATURE No
Tope de respuesta MODEL_MAX_TOKENS (tokens por respuesta) No
Turnos que recuerda HISTORY_RUNS (intercambios que se releen en cada llamada) No
Proyecto en curso El proyecto activo de la sesión, o «general, sin proyecto» No
Sus instrucciones Tabla organtia.instrucciones, clave adrian Sí

El modelo y sus parámetros se editan en el .env, no aquí. El modelo por puesto se asigna en la vista Modelos; esta ficha solo muestra el del CEO.

Es el bloque de texto que define cómo trabaja Adrián. Se guarda entero en organtia.instrucciones y se relee en cada turno, así que el cambio afecta al mensaje siguiente, no a la conversación ya empezada.

Límites que aplica el servidor al guardar:

Comprobación Respuesta si falla
Menos de 200 caracteres (sin contar espacios sobrantes) «demasiado corto: se quedaría sin instrucciones»
Más de 400.000 caracteres «demasiado largo»

Al guardar, el aviso confirma: «Guardado. N caracteres. Se aplica en tu próximo mensaje.», donde N es la longitud real del texto.

Bajo el editor hay una nota con dos datos: si ahora mismo usa una versión tuya o la de fábrica, y cuál es el proyecto en curso.

El texto puede llevar estos huecos y el sistema los sustituye al construir el prompt del turno:

Marcador Se sustituye por
{propietario} OWNER_NAME
{empresa} EMPRESA (nombre de la empresa de la instalación)
{ceo} CEO_NOMBRE
{estado} La situación consolidada: proyecto, pendientes, decisiones vigentes y lo último registrado

Si borras {estado} del texto, la situación se añade igualmente al final: el CEO no puede quedarse sin saber dónde está. La sustitución es literal, no con format, así que unas llaves sueltas no rompen el turno.

El botón «Restaurar el original» pide confirmación: el primer clic lo convierte en «¿Seguro? Pulsa otra vez» durante cuatro segundos, y el segundo restaura el texto de fábrica (el que vive en el código, en prompts.py). Después avisa: «Instrucciones originales restauradas».

Cada guardado y cada restauración dejan una fila en la auditoría con herramienta = ui:instrucciones y actor = propietario.

Todas se leen del entorno del proceso. Cambiar cualquiera exige recrear el servicio:

Ventana de terminal
docker compose up -d --force-recreate api
Variable Por defecto Qué hace Si la cambias
CLIENTE organtia Nombre del despliegue: prefija contenedores, volúmenes y red. Cambia los nombres de los contenedores; hay que recrear el stack. No toca los datos.
MARCA Organtia Nombre del producto. Aparece en la pestaña, en la puerta y en el panel. Reetiqueta la instalación. No afecta al funcionamiento.
EMPRESA vacío Nombre del cliente. Vacío = instalación de desarrollo. Con valor, la oficina muestra ese nombre en lugar de la marca y «empresa digital».
CEO_NOMBRE Adrián Nombre del CEO en la interfaz y en su prompt. Cambia cómo se llama el puesto de dirección en todas partes.
LEGAL Data Lean Makers, S.L. Sociedad que firma el pie de la puerta de acceso. Cambia solo el texto del pie legal.
OWNER_NAME Pedro Nombre con el que el CEO se refiere al propietario. Cambia el trato en las respuestas y el valor de actor en la auditoría.
Variable Por defecto Qué hace Si la cambias
DB_HOST db Host de PostgreSQL. Si no resuelve, la API no arranca.
DB_PORT 5432 Puerto de PostgreSQL. Tiene que coincidir con el del contenedor db.
DB_NAME organtia Nombre de la base de datos. Apunta a otra base; con una vacía, el esquema se crea al arrancar.
POSTGRES_USER organtia_admin Rol administrador: solo lo usan las migraciones. Cambiar de rol obliga a que exista en PostgreSQL.
POSTGRES_PASSWORD obligatoria Contraseña del rol administrador. Sin ella, la API no arranca: «Falta la variable de entorno obligatoria».
APP_DB_USER organtia_app Rol de la aplicación, con privilegios mínimos. Ídem: el rol debe existir y tener permisos sobre el esquema.
APP_DB_PASSWORD obligatoria Contraseña del rol de la aplicación. Sin ella, la API no arranca.

Los dos roles existen a propósito: la aplicación no puede alterar la auditoría ni cambiar el esquema, porque no tiene permisos para ello.

Variable Por defecto Qué hace Si la cambias
MODEL_ID deepseek-v4.1-flash:1017 Modelo que usa el CEO (y los puestos sin modelo propio). Cambia el motor de todos los turnos. Debe existir en el endpoint.
MODEL_BASE_URL https://ollama.com/v1 Endpoint compatible con la API de OpenAI. Apunta a otro proveedor; la clave tiene que ser la suya.
MODEL_API_KEY obligatoria Clave del proveedor. Sin ella, la API no arranca. No se muestra en ningún sitio.
MODEL_TEMPERATURE 0.4 Creatividad de las respuestas. Más alto, respuestas más sueltas; más bajo, más repetitivas.
MODEL_MAX_TOKENS 16000 en el código Tope de tokens de una respuesta. El .env.example trae 32000. Bajarlo recorta respuestas largas; subirlo gasta más y puede tardar más.
HISTORY_RUNS 2 en el código Intercambios previos que se releen en cada llamada. Es el «Turnos que recuerda» del diálogo. El .env.example trae 8. Subirlo mucho infla el prompt y ralentiza el turno.
HISTORIAL_TURNOS 8 Se lee al arrancar, pero hoy no lo usa nadie. Ninguno. El valor efectivo es HISTORY_RUNS.
TURNO_ESPERA 120 Segundos que se espera al modelo sin recibir nada antes de avisar y salir del turno. Con valores bajos se cortan turnos lentos; con valores altos, una caída tarda en notarse.

Si cambias de modelo, la referencia práctica es: una línea en .env, recrear api y comprobar con una conversación corta. Los modelos probados con herramientas en español son deepseek-v4.1-flash:1017 y gpt-5.4-mini.

Variable Por defecto Qué hace Si la cambias
ACCESO_CLAVE obligatoria (32+ caracteres) Clave con la que se firman las cookies de sesión. Sin ella o con menos de 32 caracteres, la puerta no deja entrar a nadie. Al cambiarla, se invalidan todas las sesiones abiertas.
ACCESO_DIAS 7 Días de validez de la cookie de sesión. Se admite de 1 a 90; fuera de rango, se queda en 7.

Detalle en /docs/administracion/usuarios/.

Variable Por defecto Qué hace Si la cambias
ORGANTIA_SECRET_KEY vacío Clave maestra con la que se cifran las claves de proveedores y conectores antes de guardarlas en PostgreSQL. Si no se define, se genera sola un fichero en el volumen. Si la pierdes, las claves cifradas dejan de poder leerse y hay que reintroducirlas.
ORGANTIA_SECRET_FILE /app/archivos/.organtia_secret Ruta de ese fichero cuando no hay variable de entorno. Apunta a otro sitio; si el volumen no persiste, la clave se regenera en cada arranque y lo cifrado antes queda ilegible.
ORGANTIA_URL_PUBLICA https://demo.organtia.ovlicuo.com Dirección pública de la oficina. Se usa para construir la vuelta del OAuth2 de los conectores. Tiene que coincidir con el «redirect URI» registrado en cada proveedor, o el OAuth falla.
INTERNAL_SERVICE_TOKEN obligatoria Token con el que el reloj de los crones llama a la API sin nadie detrás. Sin ella, la API arranca pero los crones no se ejecutan, y lo dice el log.
SCHEDULER_BASE_URL http://127.0.0.1:8000 Puerto interno del planificador de Agno. Cambia a dónde llama el reloj; es interno del contenedor, no el del host.
PANEL_TOKEN vacío Token del panel de autorizaciones antiguo. Vacío = el panel no se sirve (responde 503). El .env.example lo da por retirado: las aprobaciones se hacen en la oficina.
OFICINA_PIXEL_URL vacío Dirección del visor pixel-art. Vacío = no se pinta la sala; el trabajo sigue igual.
OFICINA_PIXEL_TOKEN vacío Token de ese visor. Solo hace falta si el visor lo exige.
Variable Por defecto Qué hace Si la cambias
TZ Europe/Madrid Zona horaria del contenedor. Afecta a las fechas mostradas y al corte de mes del presupuesto.
ORGANTIA_DEBUG 0 Con 1 (o true, si, yes, on), saca trazas detalladas de herramientas y errores en la consola. Más ruido en los logs, útil para diagnosticar.
API_PORT 18011 Puerto del host al que se publica la API. Escucha solo en 127.0.0.1. Si lo cambias, hay que ajustar el reverse_proxy de Caddy.
WEB_DIR /app/web Carpeta desde la que se sirve la interfaz compilada y las imágenes de la puerta. Si no contiene index.html, la oficina no carga.
NAVEGADOR_CDP vacío Endpoint de un navegador ya abierto, para depurar la habilidad web. Vacío = el propio servicio lanza su Chromium con el perfil del puesto.
Mensaje Causa
«Falta la variable de entorno obligatoria: X» Falta una de las obligatorias: POSTGRES_PASSWORD, APP_DB_PASSWORD, MODEL_API_KEY o INTERNAL_SERVICE_TOKEN. El proceso no arranca y dice cuál.
«MODEL_MAX_TOKENS debe ser un número entero» Valor no numérico en una variable entera.
«MODEL_TEMPERATURE debe ser un número decimal» Valor no numérico en una variable decimal.
La puerta da 500 y no muestra formulario ACCESO_CLAVE vacía o corta. No impide arrancar: falla al entrar.
«Panel desactivado: define PANEL_TOKEN en .env y reinicia la API» Alguien abrió /panel/ sin token configurado.
  • El modelo de cada puesto: se asigna en la vista Modelos.
  • El presupuesto de tokens: en la ficha del puesto y en Departamentos.
  • Las rutas que el CEO puede leer: en la tabla organtia.accesos, concedidas hablando con él y registradas con la instrucción del propietario.
  • Los crones: en su vista, con aprobación de dirección.