2026-06-17 14:56:04 +02:00
2026-05-13 17:26:13 +02:00
2026-05-13 17:26:13 +02:00
2026-05-13 17:26:13 +02:00
2026-05-13 17:26:13 +02:00
2026-06-17 14:45:43 +02:00
2026-05-13 17:26:13 +02:00
2026-05-13 17:26:13 +02:00
2026-05-13 17:26:13 +02:00
2026-05-13 17:26:13 +02:00
2026-05-13 17:26:13 +02:00
2026-05-13 17:26:13 +02:00
2026-05-13 17:26:13 +02:00
2026-06-17 14:19:30 +02:00
2026-06-17 14:19:30 +02:00
2026-05-13 17:26:13 +02:00
2026-05-13 17:26:13 +02:00
2026-06-17 14:19:30 +02:00
2026-05-13 17:26:13 +02:00

bmp-rewrite

To install dependencies:

bun install
bun run playwright:install

On a minimal Linux VPS, install Chromium's system libraries as well:

bun run playwright:install-deps

To run:

BMP_DEMO_PASSWORD="choose-a-long-client-demo-password" \
OPENROUTER_API_KEY="..." \
bun run index.ts

Docker deployment

Create a production env file:

cp .env.example .env

Set at least BMP_DEMO_PASSWORD and OPENROUTER_API_KEY in .env. For a public VPS with automatic HTTPS, also set:

APP_DOMAIN=demo.example.com

Then build and run the app behind Caddy:

docker compose up -d --build

Without APP_DOMAIN, Caddy serves the app on plain HTTP port 80 for local or private-network testing. With APP_DOMAIN, Caddy requests and renews TLS certificates automatically on ports 80 and 443.

Generated extractor outputs, summarizer reports, and the editable template live in the bmp_data Docker volume. Caddy certificates live in caddy_data.

The app is password-gated for demos. Set BMP_DEMO_PASSWORD before exposing it to any network. If it is omitted, the server prints a one-time password to the console for local development only.

Security-related optional settings:

OPENROUTER_MODEL="openai/gpt-5.4-nano" # only this model is accepted by the API
BMP_MAX_UPLOAD_BYTES=15728640           # default: 15 MB
BMP_MAX_PDF_PAGES=35                    # default: 35 pages
BMP_MAX_ACTIVE_SUMMARY_JOBS=10          # default: 10 active LLM jobs

Protected surfaces include uploads, template save/load, summarizer jobs, result JSON, LLM trace metadata, and generated report downloads. Browser clients use a session cookie plus CSRF token for unsafe requests.

This project was created using bun init in bun v1.3.2. Bun is a fast all-in-one JavaScript runtime.

Description
No description provided
Readme 9.3 MiB
Languages
TypeScript 78%
HTML 18.8%
CSS 3%
Dockerfile 0.2%