跳转到内容

安装 Fulgoria

Fulgoria 自带一个轻量服务器server.js,Node/Express),它只做两件事:提供静态应用,以及(可选地)用从 .env 读取的登录将其保护起来。文档本身始终 100% 在浏览器中处理——服务器永不接收它,会应用严格的 CSP 和安全标头,且绝不暴露 .envserver.js 或任何私有样本。

Docker

推荐用于生产环境。使用预构建镜像,或用 docker compose 在本地构建。

Node.js 18+

仅当你用 npm 而非 Docker 直接运行服务器时才需要。

现代浏览器

所有提取工作(PDF 解析、OCR、编辑)都在客户端运行,因此真正的工作发生在当前的浏览器中。

最快的途径是发布到 GHCR 的镜像,由 CI 在每次推送到 main 时构建。

Terminal window
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

  1. http://localhost:3000(或你配置的主机)打开应用。
  2. 如果 AUTH_ENABLED=true,用 AUTH_USER 和你配置的密码登录。
  3. 点击打开 PDF 或图片,或点击查看示例加载一份示例银行对账单。
  4. 标记列,确认余额变绿,然后导出为 CSV。

所有配置都存放在 .env 中(从 .env.example 复制而来)。.env 文件永不被提交,也永不被提供访问。

变量默认值说明
PORT3000轻量服务器监听的端口。
AUTH_ENABLEDtrue设为 false 可在无密码情况下提供应用(用于本地或私有网络)。
AUTH_USERdiego登录用户名。
AUTH_PASSWORD(空)密码——纯文本,或来自 --hash 的 bcrypt 哈希。
SESSION_SECRET(空)用于签署会话 cookie 的密钥。用 openssl rand -hex 32 生成。
SESSION_TTL_HOURS12会话生命周期,单位为小时。
COOKIE_SECUREtrue在 HTTPS 之后保持 true;仅在本地通过 http:// 测试时设为 false
ESCRIBA_URL(空)“发送到 Escriba”按钮的目标地址。为空时回退到 /。将其指向你的 Escriba,例如 https://your-escriba.com/