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
.envde la instalación: define el modelo, la identidad, la base de datos y el acceso. Los cambios exigen recrear el contenedor.
La vista Configuración
Sección titulada «La vista Configuración»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.
Lo que enseña
Sección titulada «Lo que enseña»| 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.
Las instrucciones
Sección titulada «Las instrucciones»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.
Marcadores que se rellenan solos
Sección titulada «Marcadores que se rellenan solos»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.
Restaurar el original
Sección titulada «Restaurar el original»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.
Variables de entorno
Sección titulada «Variables de entorno»Todas se leen del entorno del proceso. Cambiar cualquiera exige recrear el servicio:
docker compose up -d --force-recreate apiIdentidad de la instalación
Sección titulada «Identidad de la instalación»| 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. |
Base de datos
Sección titulada «Base de datos»| 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.
Modelo de lenguaje
Sección titulada «Modelo de lenguaje»| 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.
Acceso a la oficina
Sección titulada «Acceso a la oficina»| 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/.
Secretos y servicios externos
Sección titulada «Secretos y servicios externos»| 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. |
Sistema
Sección titulada «Sistema»| 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. |
Errores de arranque que vienen de aquí
Sección titulada «Errores de arranque que vienen de aquí»| 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. |
Lo que no se configura desde aquí
Sección titulada «Lo que no se configura desde aquí»- 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.
