docker run -e) and the server picks them up at startup via WebServer.Config.fromEnv(). Every variable has a sensible default so you can run the server without setting anything at all.
Environment variables
In the Docker image,
HOST defaults to 0.0.0.0 so the server accepts connections from outside the container. When running directly on the host with java -jar, HOST defaults to 127.0.0.1 (loopback only). Override it explicitly if you need a different binding in either context.Running with Docker
Build the image from the repository root, then run it with any overrides you need:Running with Docker Compose
The supplieddocker-compose.yml sets recommended defaults and resource limits in one place:
environment: block in docker-compose.yml to change settings without retyping docker run flags each time.
Running without Docker
After building withmvn install, start the JAR directly and pass variables in the environment:
CORS
By default,CORS_ORIGIN=* allows any browser origin to call the API, which is convenient for local development and public read-only deployments. The server adds these headers to every /api/ response when CORS is enabled:
OPTIONS preflight requests receive a 204 No Content response immediately.
To restrict access to a single origin, set the exact origin value:
Security
Recommended Docker flags
The README and the defaultdocker-compose.yml both apply these constraints to limit the blast radius of a malicious or pathological input file:
The
docker-compose.yml also drops all Linux capabilities (cap_drop: ALL) and sets no-new-privileges:true for defence in depth.