Docker
推荐用于生产环境。使用预构建镜像,或用 docker compose 在本地构建。
Fulgoria 自带一个轻量服务器(server.js,Node/Express),它只做两件事:提供静态应用,以及(可选地)用从 .env 读取的登录将其保护起来。文档本身始终 100% 在浏览器中处理——服务器永不接收它,会应用严格的 CSP 和安全标头,且绝不暴露 .env、server.js 或任何私有样本。
Docker
推荐用于生产环境。使用预构建镜像,或用 docker compose 在本地构建。
Node.js 18+
仅当你用 npm 而非 Docker 直接运行服务器时才需要。
现代浏览器
所有提取工作(PDF 解析、OCR、编辑)都在客户端运行,因此真正的工作发生在当前的浏览器中。
最快的途径是发布到 GHCR 的镜像,由 CI 在每次推送到 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:latest然后打开 http://localhost:3000。
克隆仓库,准备好你的 .env,然后构建:
cp .env.example .env# 编辑 .env:设置 AUTH_PASSWORD 和 SESSION_SECRETdocker compose up --build随附的 compose 文件会映射端口 3000,从 .env 加载变量,并在未被停止时自动重启。
cp .env.example .envnpm installnode server.js --hash 'your-password' # → 将哈希值粘贴到 AUTH_PASSWORDopenssl rand -hex 32 # → 粘贴到 SESSION_SECRETnpm 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 | (空) | 用于签署会话 cookie 的密钥。用 openssl rand -hex 32 生成。 |
SESSION_TTL_HOURS | 12 | 会话生命周期,单位为小时。 |
COOKIE_SECURE | true | 在 HTTPS 之后保持 true;仅在本地通过 http:// 测试时设为 false。 |
ESCRIBA_URL | (空) | “发送到 Escriba”按钮的目标地址。为空时回退到 /。将其指向你的 Escriba,例如 https://your-escriba.com/。 |