Docker
Consigliato per la produzione. Usa l’immagine predefinita o compila localmente con docker compose.
Fulgoria include un server leggero (server.js, Node/Express) che fa solo due cose: serve
l’app statica e, facoltativamente, la protegge dietro un login letto da .env. Il
documento stesso viene sempre elaborato al 100% nel browser — il server non lo riceve mai,
applica una CSP rigorosa e header di sicurezza, e non espone mai .env, server.js o alcun
campione privato.
Docker
Consigliato per la produzione. Usa l’immagine predefinita o compila localmente con docker compose.
Node.js 18+
Necessario solo se esegui il server direttamente con npm invece di Docker.
Un browser moderno
Tutta l’estrazione (parsing PDF, OCR, modifica) viene eseguita lato client, quindi un browser attuale è il luogo dove avviene il lavoro vero.
Il percorso più rapido è l’immagine pubblicata su GHCR, compilata dalla CI a ogni push su main.
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:latestPoi apri http://localhost:3000.
Clona il repository, prepara il tuo .env e compila:
cp .env.example .env# modifica .env: imposta AUTH_PASSWORD e SESSION_SECRETdocker compose up --buildIl file compose incluso mappa la porta 3000, carica le variabili da .env, e si riavvia
a meno che non venga arrestato.
cp .env.example .envnpm installnode server.js --hash 'your-password' # → incolla l'hash in AUTH_PASSWORDopenssl rand -hex 32 # → incolla in SESSION_SECRETnpm start # → http://localhost:3000http://localhost:3000 (o l’host che hai configurato).AUTH_ENABLED=true, accedi con AUTH_USER e la password che hai configurato.Tutta la configurazione risiede in .env (copialo da .env.example). Il file .env non viene mai
committato né servito.
| Variabile | Predefinito | Descrizione |
|---|---|---|
PORT | 3000 | Porta su cui ascolta il server leggero. |
AUTH_ENABLED | true | Imposta su false per servire l’app senza password (uso locale o su rete privata). |
AUTH_USER | diego | Nome utente per il login. |
AUTH_PASSWORD | (vuoto) | La password — testo in chiaro, o un hash bcrypt da --hash. |
SESSION_SECRET | (vuoto) | Segreto usato per firmare il cookie di sessione. Generalo con openssl rand -hex 32. |
SESSION_TTL_HOURS | 12 | Durata della sessione, in ore. |
COOKIE_SECURE | true | Mantieni true dietro HTTPS; imposta false solo per testare localmente su http://. |
ESCRIBA_URL | (vuoto) | Destinazione del pulsante “Invia a Escriba”. Se vuoto, ripiega su /. Puntalo al tuo Escriba, ad es. https://your-escriba.com/. |