Docker
The repository ships aDockerfile that builds a distroless image running as a
non-root user.
1
Build the image
2
Run it with your provider keys
0.0.0.0:8080. Append flags to override:3
Check it is up
The image has no shell and therefore no
HEALTHCHECK — distroless is
deliberate. Point your orchestrator’s probe at GET /health instead. TLS
roots are bundled with rustls, so there is no ca-certificates layer either.Cargo
Docker Compose
Your first request
Authorization header is needed — the gateway ignores it and uses its own
provider keys. See Connecting a client for the
OpenAI SDKs.
Deployment notes
Binding and exposure
Binding and exposure
The default
--host 0.0.0.0 listens on every interface. Since the gateway
has no caller authentication, bind it to a private interface
(--host 127.0.0.1) or keep it inside a private network and put your own
auth in front.Health checks
Health checks
GET /health returns 200 with {"status": "ok", "version": "..."}. It
reports that the process is serving, not that any provider is reachable —
warpllm sends no upstream traffic to answer it.Timeouts under a proxy
Timeouts under a proxy
Streams are long-lived server-sent events. A reverse proxy with a short
read timeout will cut them off before warpllm does. Set the proxy’s timeout
above
--timeout-secs, and disable response buffering for
/v1/chat/completions.Scaling
Scaling
The gateway holds no per-caller state — every request carries its own
conversation — so instances scale horizontally with no coordination.
Next
Configuration
Every flag and what it defaults to.
Connect a client
Point the official OpenAI SDKs at it.