Skip to main content
The HTTP gateway has landed on main but is not part of a published release. To run it today you build it from source or from the Dockerfile in the repository root. Flags, endpoints, and the error envelope may still change before it ships.

Docker

The repository ships a Dockerfile that builds a distroless image running as a non-root user.
1

Build the image

2

Run it with your provider keys

Defaults bind 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

Requires Rust 1.85 or newer.

Docker Compose

Keys are read once, at startup. Changing a variable requires a restart.

Your first request

No Authorization header is needed — the gateway ignores it and uses its own provider keys. See Connecting a client for the OpenAI SDKs.

Deployment notes

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.
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.
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.
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.