Docker
本番環境に推奨。ビルド済みイメージを使うか、docker compose でローカルにビルドします。
Fulgoria は 薄いサーバー(server.js、Node/Express)を同梱しており、行うのは 2 つのことだけです。静的アプリを配信することと、オプションで .env から読み込んだ ログイン でその背後を保護することです。書類そのものは常にブラウザ内で 100% 処理されます — サーバーがそれを受け取ることはなく、厳格な CSP とセキュリティヘッダーを適用し、.env、server.js、いかなるプライベートなサンプルも公開しません。
Docker
本番環境に推奨。ビルド済みイメージを使うか、docker compose でローカルにビルドします。
Node.js 18+
Docker ではなく npm でサーバーを直接実行する場合にのみ必要です。
モダンなブラウザ
すべての抽出(PDF 解析、OCR、編集)はクライアント側で動作するため、実際の作業が行われるのは最新のブラウザです。
最速の方法は GHCR に公開されたイメージで、main へのプッシュごとに CI がビルドします。
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次に http://localhost:3000 を開きます。
リポジトリをクローンし、.env を準備してビルドします。
cp .env.example .env# .env を編集: AUTH_PASSWORD と SESSION_SECRET を設定するdocker compose up --build同梱の compose ファイルはポート 3000 をマッピングし、.env から変数を読み込み、停止されない限り再起動します。
cp .env.example .envnpm installnode server.js --hash 'your-password' # → ハッシュを AUTH_PASSWORD に貼り付けるopenssl rand -hex 32 # → SESSION_SECRET に貼り付けるnpm start # → http://localhost:3000http://localhost:3000(または設定したホスト)でアプリを開きます。AUTH_ENABLED=true の場合、AUTH_USER と設定したパスワードでサインインします。すべての設定は .env にあります(.env.example からコピーします)。.env ファイルがコミットされたり配信されたりすることはありません。
| 変数 | デフォルト | 説明 |
|---|---|---|
PORT | 3000 | 薄いサーバーが待ち受けるポート。 |
AUTH_ENABLED | true | false にするとパスワードなしでアプリを配信します(ローカルまたはプライベートネットワークでの利用)。 |
AUTH_USER | diego | ログイン用のユーザー名。 |
AUTH_PASSWORD | (空) | パスワード — プレーンテキスト、または --hash による bcrypt ハッシュ。 |
SESSION_SECRET | (空) | セッションクッキーの署名に使われるシークレット。openssl rand -hex 32 で生成します。 |
SESSION_TTL_HOURS | 12 | セッションの有効期間(時間単位)。 |
COOKIE_SECURE | true | HTTPS の背後では true のまま。http:// でローカルにテストする場合のみ false に設定します。 |
ESCRIBA_URL | (空) | 「Escriba に送る」ボタンの宛先。空の場合は / にフォールバックします。あなたの Escriba を指定します(例: https://your-escriba.com/)。 |