Requisitos
Antes de instalar Gestión Civis conviene preparar el entorno y conocer sus dependencias. Esta página resume lo necesario; las guías de servidor y Google Cloud detallan la instalación concreta.
Software base
| Componente | Requisito | Notas |
|---|---|---|
| Python | 3.10 o superior | Backend Flask 3.1. |
| Node.js | 18 o superior | Solo para compilar el frontend (no en el servidor final). |
| PostgreSQL | 13 o superior | Base de datos recomendada (SQLite solo para desarrollo). |
| Servidor WSGI | gunicorn / uwsgi | Para servir Flask en producción. |
| Servidor web | Nginx (o Apache) | Reverse proxy + servir el frontend estático + HTTPS. |
Bibliotecas de sistema
Algunas dependencias de Python necesitan librerías nativas del sistema operativo:
| Para | Paquetes (Debian/Ubuntu) |
|---|---|
| WeasyPrint (generación de PDF) | libpango-1.0-0, libpangocairo-1.0-0, libgdk-pixbuf-2.0-0, libcairo2, libffi-dev (y fuentes, p. ej. fonts-dejavu). |
| psycopg2 (PostgreSQL) | libpq-dev (si se compila) o usar psycopg2-binary. |
| lxml / signxml (XML/firma) | libxml2, libxslt1.1. |
| cryptography / pyhanko | build-essential, libssl-dev (si se compila). |
Instalación en un solo comando (Ubuntu)
Servicios y credenciales externas (según módulos)
| Para | Necesita |
|---|---|
| Firma electrónica / sello de órgano | Certificado FNMT (.p12). |
| Registro SIR | Credenciales MINHAP + endpoint SIR + certificado. |
| Catálogo DIR3 | CSV oficial MINHAP (o el seed básico incluido). |
| Sellado de tiempo | Servicio TSA RFC 3161 (FNMT). |
| Factura electrónica | Acceso a FACe (RedSARA) + DIR3 de los órganos. |
| IA / chatbot | GOOGLE_API_KEY (Google Gemini). |
| Almacenamiento en la nube | Bucket de Google Cloud Storage + credenciales de cuenta de servicio. |
Dimensionamiento orientativo
El consumo depende sobre todo de la búsqueda semántica e IA (FAISS +
sentence-transformers + torch), que cargan modelos en memoria:
| Escenario | CPU | RAM | Disco |
|---|---|---|---|
| Mínimo (sin IA pesada o pocos usuarios) | 2 vCPU | 4 GB | 20 GB + almacenamiento documental |
| Recomendado (con IA y uso normal) | 4 vCPU | 8 GB | 40 GB + almacenamiento documental |
| Holgado (más usuarios concurrentes) | 4–8 vCPU | 16 GB | según volumen |
Memoria y workers
Cada worker de gunicorn que use la búsqueda/IA carga su propia copia de los
modelos en memoria. Ajusta el número de workers a la RAM disponible (ver
Puesta en marcha) o, si no usas IA, considera no instalar
torch/transformers/sentence-transformers.
Almacenamiento de ficheros
- Local: una carpeta en el servidor (
STORAGE_PROVIDER=local). Hay que incluirla en las copias de seguridad y, si hay varios servidores, compartirla. - Google Cloud Storage: un bucket (
STORAGE_PROVIDER=gcs), recomendado en despliegues en la nube o multi-servidor (ver Google Cloud).
Red y seguridad
- HTTPS obligatorio en producción (activa HSTS y cookies seguras).
- Acceso a la base de datos restringido al backend (no exponer PostgreSQL a Internet).
- Si se usan SIR/FACe/TSA, salida hacia los endpoints de RedSARA.