Qué hay debajo
Una instalación de Organtia es un pequeño conjunto de contenedores con una base de datos y un almacén de ficheros propios. Nada más.
Las piezas
Sección titulada «Las piezas»| Pieza | Qué es | Qué guarda |
|---|---|---|
| api | La aplicación: sirve la oficina, la interfaz, la API y el reloj de los crones. | Nada por sí misma: escribe en la base de datos y en el almacén. |
| db | PostgreSQL 17. | Todo el estado: puestos, encargos, mensajes, crones, auditoría. |
| archivos (volumen) | Almacén de documentos. | Lo que sube el cliente y lo que producen los puestos. |
Hay dos servicios más que no se quedan corriendo:
- cli: una consola para tareas de operación (alta de usuarios, diagnósticos).
- tests: la batería de pruebas automatizadas.
Se invocan a mano y terminan.
Qué se publica hacia fuera
Sección titulada «Qué se publica hacia fuera»Muy poco, y a propósito:
- La api escucha solo en
127.0.0.1(el puerto que se configure, por defecto 18011). No se expone directamente a internet: delante va Caddy, que pone el HTTPS y el certificado del dominio. - La base de datos no se publica. Solo se abre en loopback para que el runner de pruebas del host pueda conectarse; ningún contenedor la necesita desde fuera.
- El contenedor de la api sale a internet únicamente para hablar con el proveedor del modelo. No hay telemetría: la aplicación no manda datos de uso a terceros.
El reloj de los crones
Sección titulada «El reloj de los crones»No hay un servicio aparte: el planificador vive dentro de la api. Cada pocos segundos mira si algún cron ha vencido y, si toca, lanza el encargo. Por eso, si la api está caída, los crones no se ejecutan; cuando vuelve, se recuperan las ejecuciones que toquen.
Las migraciones
Sección titulada «Las migraciones»La base de datos se construye con ficheros SQL numerados, en orden, que se aplican al arrancar. Un fichero nuevo se añade sin reconstruir la imagen: se monta desde el host. Si una migración falla, el arranque se detiene en vez de seguir con la base a medias.
Aislamiento entre clientes
Sección titulada «Aislamiento entre clientes»Cada instalación tiene:
- Sus contenedores, con el nombre del cliente delante.
- Sus volúmenes:
<cliente>-pgdatay<cliente>-archivos. - Su red, con su propia subred.
No hay una base de datos compartida con varias empresas dentro. Si mañana un cliente se va, se para su instalación y se borran sus volúmenes: los demás no se enteran.
