Skip to content

Enterprise AI Gateway

GateLLM

Route, translate, load-balance, and observe multiple LLM upstreams through one entry point

Multi-upstream aggregation · protocol translation · multi-key weighted distribution · load balancing · access control · observability

bash
$ docker pull ghcr.io/gatellm-io/gatellm:latest

Set up in one minute

bash
$ docker run -d \
  --name gatellm \
  -p 7890:7890 \
  -e STORAGE_MODE=sqlite \
  -v gatellm-data:/var/lib/protoflux \
  ghcr.io/gatellm-io/gatellm:latest

Zero-config startup: the image enables the Console by default, and on first start it automatically generates an admin password and prints it once. Grab the password to log in to the Console and configure upstreams, models, and access keys. For the full 8 steps (about 5 minutes), see Docker single node walkthrough.

⚠️ This one-minute command is zero-config and does not pass ENCRYPTION_KEY. The container will start and the Console is accessible, but the first time you save an upstream / issue an access key it will report encryption_key not set in config. To configure a truly usable upstream, first follow Docker single node walkthrough → Prerequisite to generate ENCRYPTION_KEY and start with it set.

If you want a coding agent (Claude Code / Cursor / Codex, etc.) to install it for you, see Agent-assisted install.

Two kinds of readers, two paths

This manual is for end users — the people who use the product. Whichever type you are, we recommend first getting Docker single node running, then branching by role:

You areWhat you want to doStart with
Integrator / callerConnect a client application to the gateway and call models through itDocker single node walkthroughEndpoints · auth · protocol interopClient integration and gateway differencesError codes
Administrator / operatorManage users, access keys, upstreams, models, and routing in the Console, and view statistics and logsDocker single node walkthroughConsole login and rolesOverview dashboardField quick-reference index

Find a solution by goal

Not sure where to start? Look up your goal below (for the applicable audience, difficulty, and detailed descriptions of each use case, see the Use case overview):

GoalStarting point
Enhance model capabilitiesEnhance model capabilities
Reduce call costReduce call cost
Achieve high availability / disaster recoveryAchieve high availability
Multi-tenant isolationMulti-tenant isolation
Office / Microsoft 365 add-inOffice / Microsoft 365 add-in
Meet compliance and auditMeet compliance and audit requirements
Troubleshoot problemsTroubleshoot from symptoms
Choosing a request-rewrite approachRequest rewriting and routing: how to choose
Production readiness checkProduction checklist
Script performance and memoryScript performance and memory
Access-control designAccess-control design

What this manual does not cover

  • No architecture and design principles. This manual covers operations only.
  • No restating of upstream API specifications. For the request/response field specifications of OpenAI / Anthropic / Gemini, consult each provider's official documentation. This manual covers only what is specific to the gateway: endpoints, authentication, protocol translation, client integration, and how the gateway differs from the native APIs.

Defaults and placeholders in examples

  • The gateway listens on http://localhost:7890 by default, and the examples in this manual assume this; if you deploy elsewhere, replace localhost:7890 with your address.
  • The Console is at http://localhost:7890/console.
  • The sk-... in examples is a placeholder for an upstream API key (e.g. an OpenAI / Anthropic key); replace it with your own upstream API key. It is not the gateway access key — the gateway key is written in this manual as <your access key> and is issued by you in the Console.