Sizing and prerequisites
Reference sizing
Section titled “Reference sizing”| Profile | vCPU | RAM | Storage | Notes |
|---|---|---|---|---|
| Pilot / evaluation | 4 | 16 GB | 100 GB SSD | one reviewer at a time, evaluation volumes |
| Reference | 16 | 64 GB | 500 GB SSD | about 500 loans and 150,000 pages a year, 10 concurrent reviewers |
No GPU is needed. Inference runs on CPU, and community bank volumes are well within it. The inference service is the component that uses the most CPU and memory: scanned pages are recognized by Tesseract, one process per page, with as many pages in parallel as the host has cores (at most 8 by default; Ocr__MaxConcurrentPages changes it). The shipped compose file sets no resource limits; if the host runs other workloads, add cpus and mem_limit to the inference service in your override file.
- Linux x86-64 with Docker Engine 24+ and Compose v2.24.4 or later (VMware or Hyper-V guests are typical).
- Windows Server with Docker Desktop (WSL 2 backend) is supported for evaluation only.
- The Compose file is the reference and supported deployment.
Database
Section titled “Database”The bundled postgres:16-alpine service, or an existing Postgres 16+ or SQL Server 2019+. Bookend uses two principals: an owner connection for the migrator (DDL and grants) and a least-privilege bookend_app connection for the application. Schema is applied by hand-written, numbered, forward-only scripts run by the migrator container, never by the application at boot.
Network
Section titled “Network”| Direction | From → to | Purpose | Required |
|---|---|---|---|
| Inbound | bank LAN → app-ui |
the workstation and the API/MCP proxy (443 behind your TLS terminator) | yes |
| Outbound | api → core (jXchange endpoint) |
boarding commit, connection test | only with the jXchange adapter |
| Outbound | api → SMTP relay |
sign-in links, invitations, password resets, assignments, escalations | yes (any relay you already run) |
| Outbound | api → metering endpoint |
daily heartbeat: install id, version, period, closed-loan and page counts, coarse health, license key | no, air-gapped mode replaces it |
| Outbound | api → identity provider |
single sign-on (OpenID Connect) | only if you enable SSO |
| Outbound | api → model endpoint |
extraction-template suggestions from an OpenAI-compatible endpoint (a local model works) | only if you configure one |
Nothing else. No image pulls at runtime (you load each release in a maintenance window), no telemetry beyond the documented heartbeat.
Browsers
Section titled “Browsers”Current versions of Chrome, Edge or Firefox; 1366 × 768 minimum for the workstation.