Ir al contenido

Instalar Fulgoria

Fulgoria incluye un servidor fino (server.js, Node/Express) que hace solo dos cosas: sirve la app estática y, opcionalmente, la protege detrás de un login leído desde .env. El documento en sí siempre se procesa 100% en el navegador — el servidor nunca lo recibe, aplica una CSP estricta y cabeceras de seguridad, y nunca expone .env, server.js ni muestras privadas.

Docker

Recomendado para producción. Usa la imagen precompilada o compila localmente con docker compose.

Node.js 18+

Requerido solo si ejecutas el servidor directamente con npm en lugar de Docker.

Un navegador moderno

Toda la extracción (parseo de PDF, OCR, edición) se ejecuta del lado del cliente, así que un navegador actual es donde ocurre el trabajo real.

El camino más rápido es la imagen publicada en GHCR, compilada por CI en cada push a main.

Ventana de terminal
docker run -d \
-p 3000:3000 \
-e AUTH_ENABLED=true \
-e AUTH_USER=diego \
-e AUTH_PASSWORD='your-password' \
-e SESSION_SECRET="$(openssl rand -hex 32)" \
-e COOKIE_SECURE=false \
ghcr.io/diegoparras/fulgoria:latest

Luego abre http://localhost:3000.

  1. Abre la app en http://localhost:3000 (o el host que configuraste).
  2. Si AUTH_ENABLED=true, inicia sesión con AUTH_USER y la contraseña que configuraste.
  3. Haz clic en Abrir PDF o imagen, o en Ver un ejemplo para cargar un extracto bancario de muestra.
  4. Marca las columnas, verifica que el saldo se ponga verde, y exporta a CSV.

Toda la configuración vive en .env (cópialo desde .env.example). El archivo .env nunca se commitea ni se sirve.

VariablePredeterminadoDescripción
PORT3000Puerto en el que escucha el servidor fino.
AUTH_ENABLEDtrueDefine false para servir la app sin contraseña (uso local o en red privada).
AUTH_USERdiegoNombre de usuario para el login.
AUTH_PASSWORD(vacío)La contraseña — texto plano, o un hash bcrypt de --hash.
SESSION_SECRET(vacío)Secreto usado para firmar la cookie de sesión. Genéralo con openssl rand -hex 32.
SESSION_TTL_HOURS12Duración de la sesión, en horas.
COOKIE_SECUREtrueMantén true detrás de HTTPS; define false solo para probar localmente sobre http://.
ESCRIBA_URL(vacío)Destino del botón “Enviar a Escriba”. Vacío recurre a /. Apúntalo a tu Escriba, por ejemplo https://your-escriba.com/.