A fast and lightweight AI gateway written in Go, providing unified OpenAI-compatible and Anthropic-compatible APIs for OpenAI, Anthropic, Gemini, DeepSeek, xAI, Groq, OpenRouter, Z.ai, Azure OpenAI, Oracle, Ollama, and more.
Step 1: Start GoModel container
docker run --rm -p 8080:8080 \
-e LOGGING_ENABLED=true \
-e LOGGING_LOG_BODIES=true \
-e LOG_FORMAT=text \
-e LOGGING_LOG_HEADERS=true \
-e OPENAI_API_KEY="your-openai-key" \
enterpilot/gomodelFull list of environment variables (including all available providers): .env.template
-e on the command line in production — they can leak through shell history and process lists. Use docker run --env-file .env to load API keys from a file instead.
Step 2: Make your first API call
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5-chat-latest",
"messages": [{"role": "user", "content": "Hello!"}]
}'That's it! GoModel automatically detects which providers are available based on the credentials you supply.
GoModel supports OpenAI, Anthropic, Google Gemini, Vertex AI, DeepSeek, Groq, OpenRouter, Z.ai, xAI (Grok), Alibaba Cloud Model Studio (Bailian), MiniMax, Xiaomi MiMo, OpenCode Go, Azure OpenAI, Oracle, Ollama, vLLM, Amazon Bedrock, and all OpenAI-compatible providers.
See the Providers Overview for the full
per-provider feature matrix (chat, /responses, embeddings, files, batches,
passthrough), credentials, and configuration notes.
Prerequisites: Go 1.26.4+
-
Create a
.envfile:cp .env.template .env
-
Add your API keys to
.env(at least one required). -
Start the server:
make run
Infrastructure only (Redis, PostgreSQL, MongoDB, Adminer - no image build):
docker compose up -d
# or: make infraFull stack (adds GoModel + Prometheus; builds the app image):
cp .env.template .env
# Add your API keys to .env
docker compose --profile app up -d
# or: make image| Service | URL |
|---|---|
| GoModel API | http://localhost:8080 |
| Adminer (DB UI) | http://localhost:8081 |
| Prometheus | http://localhost:9090 |
docker build -t gomodel .
docker run --rm -p 8080:8080 --env-file .env gomodelGoModel exposes OpenAI-compatible and Anthropic-compatible APIs, provider-native passthrough, and operations routes. See the API Endpoints reference for the full endpoint tables, and Admin Endpoints for the admin REST API and dashboard.
GoModel is configured through environment variables and an optional config.yaml. Environment variables override YAML values. See the Configuration reference for the full list of settings organized by category, along with .env.template and config/config.example.yaml.
Quick Start - Authentication: By default GOMODEL_MASTER_KEY is unset. Without this key, API endpoints are unprotected and anyone can call them. This is insecure for production. Strongly recommend setting a strong secret before exposing the service. Add GOMODEL_MASTER_KEY to your .env or environment for production deployments.
See DEVELOPMENT.md for testing, linting, and pre-commit setup.
See the Roadmap for commercial features and the public 0.2.0 milestone.
Join our Discord to connect with other GoModel users.