Docker
Recommandé pour la production. Utilisez l’image préconstruite ou construisez localement avec docker compose.
Fulgoria embarque un serveur léger (server.js, Node/Express) qui ne fait que deux choses : il
sert l’application statique et, en option, la protège derrière un login lu depuis .env. Le
document lui-même est toujours traité à 100 % dans le navigateur — le serveur ne le reçoit jamais,
applique une CSP stricte et des en-têtes de sécurité, et n’expose jamais .env, server.js ni aucun
échantillon privé.
Docker
Recommandé pour la production. Utilisez l’image préconstruite ou construisez localement avec docker compose.
Node.js 18+
Requis uniquement si vous exécutez le serveur directement avec npm au lieu de Docker.
Un navigateur moderne
Toute l’extraction (analyse PDF, OCR, édition) s’exécute côté client, c’est donc un navigateur récent qui réalise le véritable travail.
Le chemin le plus rapide est l’image publiée sur GHCR, construite par la CI à chaque push sur 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:latestOuvrez ensuite http://localhost:3000.
Clonez le dépôt, préparez votre .env, et construisez :
cp .env.example .env# modifiez .env : définissez AUTH_PASSWORD et SESSION_SECRETdocker compose up --buildLe fichier compose fourni mappe le port 3000, charge les variables depuis .env, et redémarre
sauf en cas d’arrêt manuel.
cp .env.example .envnpm installnode server.js --hash 'your-password' # → collez le hash dans AUTH_PASSWORDopenssl rand -hex 32 # → collez dans SESSION_SECRETnpm start # → http://localhost:3000http://localhost:3000 (ou l’hôte que vous avez configuré).AUTH_ENABLED=true, connectez-vous avec AUTH_USER et le mot de passe que vous avez configuré.Toute la configuration réside dans .env (copiez-le depuis .env.example). Le fichier .env n’est jamais
versionné ni servi.
| Variable | Valeur par défaut | Description |
|---|---|---|
PORT | 3000 | Port sur lequel écoute le serveur léger. |
AUTH_ENABLED | true | Mettez à false pour servir l’application sans mot de passe (usage local ou réseau privé). |
AUTH_USER | diego | Nom d’utilisateur pour le login. |
AUTH_PASSWORD | (vide) | Le mot de passe — texte clair, ou un hash bcrypt issu de --hash. |
SESSION_SECRET | (vide) | Secret utilisé pour signer le cookie de session. Générez-le avec openssl rand -hex 32. |
SESSION_TTL_HOURS | 12 | Durée de vie de la session, en heures. |
COOKIE_SECURE | true | Conservez true derrière HTTPS ; mettez false uniquement pour tester en local via http://. |
ESCRIBA_URL | (vide) | Destination du bouton « Envoyer à Escriba ». Vide, retombe sur /. Pointez-le vers votre Escriba, par ex. https://your-escriba.com/. |