Garabato

Configuración

Las variables de entorno que define un despliegue, y dónde está la lista completa.

Toda la configuración de ejecución sale de variables de entorno. En un despliegue con Docker viven en el .env junto a compose.prod.yml, que leen todos los servicios. El backend valida sus variables al arrancar y se detiene con un error claro si falta alguna o está mal formada.

La lista completa, con cada valor por defecto y un comentario por variable, es .env.example en el repositorio. Estas son las que define un despliegue.

Despliegue

Las lee el propio compose.prod.yml.

Variable Notas
FRONTEND_PORT Puerto del host en el que se publica el gateway. Por defecto 4444.
POSTGRES_PASSWORD Contraseña del servicio db incluido.
COMPOSE_PROFILES minio arranca el MinIO incluido y crea su bucket. Déjala sin definir para usar un almacén externo.

Backend

Variable Obligatoria Notas
DATABASE_URL sí Cadena de conexión de PostgreSQL.
CORS_ORIGIN sí La URL pública de la app, tal como la ve el navegador. compose.prod.yml la pasa también como BETTER_AUTH_URL.
BETTER_AUTH_SECRET sí Al menos 32 caracteres. Firma las sesiones y las cookies.
CERTIFICATE_ENCRYPTION_KEY sí Base64 de exactamente 32 bytes. Clave maestra que cifra los certificados y documentos guardados. Haz copia y no la reutilices entre entornos.
S3_ENDPOINT sí Endpoint compatible con S3, una URL completa. El MinIO incluido es http://minio:9000.
S3_BUCKET sí El bucket debe existir. El MinIO incluido lo crea al arrancar.
S3_REGION no Por defecto us-east-1; MinIO la ignora.
S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY sí Credenciales del almacén. Con el MinIO incluido son también su usuario y contraseña root (al menos 8 caracteres).
TSA_URL no Autoridad de sellado de tiempo RFC 3161. Si está definida, cada firma lleva su sello (PAdES B-T) y falla si la TSA no puede darlo; sin ella, las firmas son B-B. En producción usa una TSA de confianza, como un prestador cualificado de servicios de confianza.
DISABLE_SIGN_UP no true cierra el registro (/signup y el primer acceso con inicio de sesión único); los administradores siguen creando cuentas. Por defecto false. Consulta Usuarios e inicio de sesión.
ADMIN_EMAIL, ADMIN_PASSWORD, ADMIN_NAME no El administrador que se crea al arrancar cuando están las tres.
OIDC_CLIENT_ID, OIDC_CLIENT_SECRET, OIDC_DISCOVERY_URL no Las tres juntas activan el inicio de sesión único. Consulta Usuarios e inicio de sesión.
LOG_LEVEL no info por defecto.

compose.prod.yml define él mismo las direcciones entre contenedores (BACKEND_URL, LOKI_URL) y NODE_ENV=production, así que no hace falta ponerlas en el .env.

Límites

Qué Límite
Subida de un PDF 20 MiB, sin contraseña.
Cuerpo de una petición 25 MiB en cualquier ruta.
Operaciones pesadas con documentos (subir, firmar, editar páginas, unir, comprobar firmas) Por usuario, 2 a la vez y 30 por minuto; por encima la API responde 429.
Certificado PKCS#12 100 KiB, .p12 o .pfx.
Motivo y lugar de la firma 200 caracteres cada uno.