Skip to content

Sizing and prerequisites

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.

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.

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.

Current versions of Chrome, Edge or Firefox; 1366 × 768 minimum for the workstation.