Choose your inference path

Self-host / deployment path

Install OpenMake with an explicit model boundary

Clone, configure, and send a real test request. The time required depends on the model endpoint and deployment you already operate; the first decision is who operates the model.

Choose your inference path

Both paths run the same OpenMake application, and both talk to an OpenAI-compatible endpoint. The difference is where inference happens and who keeps it running.

  • Hosted endpoint — faster evaluation, no GPU to operate, and the model provider sees the requests you send
  • Self-hosted endpoint — you operate vLLM and LiteLLM, and the network, credentials, and model catalog stay yours
NextPrepare the runtime

Prepare the runtime

OpenMake targets Node 24 and requires PostgreSQL. Docker is used for the reference database setup and opt-in sandbox services. The API listens on port 52416 and the web app on port 3000. Keep secrets out of the repository, and set your production URLs before you expose anything publicly.

shell
git clone https://github.com/openmake/openmake_llm.git
cd openmake_llm
node --version   # expects 24.x
docker --version
npm install
NextConfigure the gateway

Configure the gateway

Point OpenMake at your endpoint and name the default chat model. Environment variable names, model IDs, and command lines are structural — they stay identical in every language.

Use .env.example as the complete configuration source. Generate the secrets instead of reusing example values; the first launch also requires API_KEY_PEPPER and ADMIN_PASSWORD, while external credentials require TOKEN_ENCRYPTION_KEY.

shell
LLM_BASE_URL=http://localhost:4000
LLM_DEFAULT_MODEL=qwen3.6-35b-a3b
LLM_POOL_DEFAULT_CTX=262144
DATABASE_URL=postgresql://openmake:your_password@localhost:5432/openmake_llm
JWT_SECRET=$(openssl rand -hex 32)
API_KEY_PEPPER=$(openssl rand -hex 32)
ADMIN_PASSWORD=replace_with_a_strong_admin_password
TOKEN_ENCRYPTION_KEY=$(openssl rand -hex 32)
DB_AUTO_MIGRATE=true
NextStart and verify

Start and verify

Server startup applies pending migrations by default, so the first boot may take slightly longer than later ones. Then verify the path a real user takes rather than the fact that a process is listening.

  • Confirm the API and web processes are both healthy
  • Sign in and confirm the configured model appears in the composer
  • Send one message and watch it come back from the model you intended
  • Open the usage view and confirm the request was recorded
OpenMake chat workspace after sign-in, with the model name shown in the composer
A successful first message is the real installation check: the composer names the model, and the answer comes back through it.
NextOperate deliberately

Operate deliberately

A few switches change the operating model rather than the appearance of the product. Decide on them before you invite users.

Skill auto-selection ships disabled; chat and agent tasks only pick skills on their own when SKILL_AUTO_SELECT_ENABLED=true. Keep external provider keys optional and separate from the local default route.

  • DB_AUTO_MIGRATE=false — opt out of startup migrations when a manual migration process is required
  • SKILL_AUTO_SELECT_ENABLED=true — allow chat and agent tasks to select skills automatically
  • Register external provider keys per user, or share an operator key with a daily token budget
Usage dashboard with monthly tokens, request count, a 14-day token chart, and a per-model breakdown
The usage view attributes tokens per model, so you can see immediately whether traffic is staying on the local route. Captured with the Korean interface.