llmBreakr

Quickstart

Run llmBreakr locally with Docker Compose and send your first request in under five minutes.

This gets a working gateway up with the published Docker image — no local build required.

Create your environment file

Clone the repo (or just grab .env.example) and fill in the required values:

git clone https://github.com/yashb007/llmBreakr-ai-gateway.git
cd llmBreakr-ai-gateway
cp server/.env.example .env

At minimum, set your database credentials, JWT_SECRET, CREDENTIAL_ENCRYPTION_KEY, and the bootstrap super admin:

.env
PORT=4000
DB_HOST=localhost
DB_PORT=3306
DB_NAME=llmbreakr
DB_USER=llmbreakr
DB_PASSWORD=change-me
REDIS_HOST=localhost:6379
JWT_SECRET=change-me
CREDENTIAL_ENCRYPTION_KEY=change-me
SUPER_ADMIN_EMAIL=you@example.com
SUPER_ADMIN_NAME=Your Name

See Configuration for what every variable does.

Start the stack

docker compose up -d

This pulls yashbansal0412/llmbreakr-ai-gateway and starts a single container exposing:

  • 4000 — the gateway API and admin API
  • 3000 — the management dashboard

Pin a specific release instead of latest:

IMAGE_TAG=1.0.2 docker compose up -d

llmBreakr expects an external MySQL and Redis — it doesn't bundle them in docker-compose.yml. Point DB_HOST / REDIS_HOST at your own instances, or add them as services in your own compose file.

Log in and add a provider

Open the dashboard at http://localhost:3000, sign in with your SUPER_ADMIN_EMAIL, and add credentials for at least one provider (OpenAI, Anthropic, or Gemini) under provider configuration.

Create a project and a virtual key

From the dashboard, create a project, scope it to the models it's allowed to call, and issue a virtual key for it. That key — not your raw provider key — is what your applications will use.

Send your first request

curl -X POST http://localhost:4000/api/data/v1/chat/completions \
  -H "Authorization: Bearer <virtual_key>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o-mini",
    "messages": [{ "role": "user", "content": "Hello" }]
  }'

Swap model for any Anthropic or Gemini model you've enabled for the project — the request shape doesn't change.

Next steps

On this page