Screening Appliance docs
Configuration Reference
Every environment variable the appliance reads β PORT, DATA_DIR, UPDATE_URL, DATASETS, SYNC_INTERVAL, ALERT_WEBHOOK_URL, OFFLINE β with defaults and effect.
Last updated 2026-08-02
Configuration Reference
The appliance is configured entirely through environment variables passed
to docker run (or your orchestrator's equivalent). There is no separate
config file to mount for these settings.
| Variable | Default | Effect |
|---|---|---|
PORT | 8400 | The port the API server listens on inside the container. Map it to a host port with -p <host>:<PORT>. |
DATA_DIR | /var/lib/proofaml | Where the appliance stores its data snapshot and applied updates. Mount a persistent volume here β see Quickstart β or data resets to the image's baked-in snapshot on every container recreation. |
UPDATE_URL | https://www.proofaml.com/updates/v1 | The base URL the sync client fetches the manifest and delta files from. Only relevant when OFFLINE is not true. |
DATASETS | all | Which datasets to load: all, or a comma-separated list of dataset ids. See Dataset selection & reference for the full id list and how this differs from the per-request datasets field. |
SYNC_INTERVAL | 6h | How often the appliance checks UPDATE_URL for a new manifest. Accepts a duration like 6h, 30m, 1d. Has no effect when OFFLINE=true. |
ALERT_WEBHOOK_URL | (unset) | If set, the appliance POSTs each new monitoring alert to this URL as it's created, in addition to it being retrievable via GET /v1/monitor/alerts. See Monitoring guide. |
OFFLINE | false | When true, the appliance never contacts UPDATE_URL β no outbound network call is made on any schedule. Updates must be side-loaded into DATA_DIR manually. See Air-gapped operation. |
MONITOR_THRESHOLD | 90 | Minimum match score (0β100) a monitored subject's candidate match must reach to raise an alert. Deliberately stricter than a typical one-off search threshold β monitoring runs unattended, so alert quality matters more than recall. See Monitoring guide Β§ Alert quality. |
Example: full production configuration
docker run -d \
--name proofaml-screening \
-p 8400:8400 \
-v proofaml-data:/var/lib/proofaml \
-e PORT=8400 \
-e DATA_DIR=/var/lib/proofaml \
-e UPDATE_URL=https://www.proofaml.com/updates/v1 \
-e DATASETS=us_ofac_sdn,us_ofac_cons,un_sc_sanctions,eu_fsf,gb_hmt_ofsi,gb_fcdo_uksl,ca_dfatd_sema_sanctions \
-e SYNC_INTERVAL=6h \
-e ALERT_WEBHOOK_URL=https://compliance.internal.example.com/webhooks/proofaml \
-e MONITOR_THRESHOLD=90 \
proofaml/screening-appliance:2026-08-02
Example: fully air-gapped
docker run -d \
--name proofaml-screening \
-p 8400:8400 \
-v proofaml-data:/var/lib/proofaml \
-e DATASETS=all \
-e OFFLINE=true \
proofaml/screening-appliance:2026-08-02
With OFFLINE=true, UPDATE_URL and SYNC_INTERVAL are both accepted but
ignored β no outbound call is ever made. Updates are applied by side-loading
files into the volume and calling POST /v1/admin/sync; see
Air-gapped operation.
See also
- Quickstart β a minimal working
docker run. - Dataset selection & reference β valid
DATASETSids. - Updates & synchronization β how
UPDATE_URL,SYNC_INTERVAL, andOFFLINEinteract. - Monitoring guide β
ALERT_WEBHOOK_URLpayload shape.