决定模型在哪里运行
两条路径装的是同一套 OpenMake,但托管演示把运维交给别人,而自托管意味着由你来运维应用、模型端点和部署边界。
- 托管端点验证起来快,也省去了 GPU,但提供方能看到你发送的请求
- 自托管端点意味着你自己运行 vLLM 和 LiteLLM,并掌握网络、凭据和模型列表
机器需要具备什么
Node 24 和 Docker。PostgreSQL 与 Redis 作为容器从 infra/docker-compose.yml 启动 — 不再支持由 Homebrew 管理的 Postgres — 安装器会把两者都拉起来。API 监听 52416,Web 应用监听 3000。
在 macOS 上,Docker Desktop、OrbStack 和 Colima 都可用。在 Windows 上,一切都在 WSL2 内运行:安装器检测到原生 Windows shell 时,会打印 WSL2 的搭建步骤,而不是继续往下走。
一条命令完成安装
无需 clone。在仓库之外运行,安装器会把源码取到 ~/openmake_llm 并在那里重新进入自身。即便通过 bash 管道运行,它仍会经由 /dev/tty 向你提问;在没有终端的场景下(如 CI),提问会被自动同意。
它只问一个问题 — 使用哪个 OpenAI 兼容的 LLM 端点 — 结束时会打印你的 Web URL 和生成的管理员密码。重复运行是安全的:它会就地修复,而不是覆盖。
- 检查工具链并安装缺失的部分 — Node、Docker、PM2 — 在可以做到的地方不使用 sudo
- 生成带有全新随机密钥的 .env,因此 JWT_SECRET、API_KEY_PEPPER 和 TOKEN_ENCRYPTION_KEY 绝不会从示例里复制而来
- 启动 PostgreSQL 和 Redis,应用每一条迁移,构建两个应用,在 PM2 下启动它们,并等待 /health
- 当你自己运行 Postgres 和 Redis 时用 --skip-docker;--postgres-port 和 --redis-port 会把容器从 5432 和 6379 挪开,而不是去争抢这两个端口
curl -fsSL https://raw.githubusercontent.com/openmake/openmake_llm/main/install.sh | bash
# non-interactive, endpoint supplied up front
curl -fsSL https://raw.githubusercontent.com/openmake/openmake_llm/main/install.sh | bash -s -- --yes \
--llm-base-url https://openrouter.ai/api/v1 --llm-api-key sk-or-... --llm-model qwen/qwen3-235b-a22b核对网关设置
这些是安装器替你写好的;此处讲的是要回头读哪些、以及如何调整。环境变量名、模型 ID 和命令都是字面值,不是需要翻译的文本。
把 .env.example 当作其余一切的参考。如果你手动填写 .env,请生成密钥,而不要复制示例值。
LLM_BASE_URL=http://localhost:4000
LLM_DEFAULT_MODEL=qwen3.8-27b
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_password
TOKEN_ENCRYPTION_KEY=$(openssl rand -hex 32)启动它并检查它
安装器会让服务保持运行,所以这些是你之后需要用到的命令。openmake_llm.sh 按顺序把三个层次拉起 — PostgreSQL、Redis,然后是 PM2 下的应用 — 并以相反的顺序关闭。
服务器启动时会应用待处理的迁移,这会让首次启动更慢一些。当验证沿着真实用户走的路径进行时,它比只确认某个进程存在更有价值。
- 确认 API 和 Web 两个进程都活着
- 登录并确认你配置的模型出现在编辑器里
- 发送一条消息,确认答案是从你所设想的模型返回的
- 确认那条请求出现在用量界面上
./openmake_llm.sh status # every layer at once
./openmake_llm.sh health # /health response
./openmake_llm.sh logs # live logs
./openmake_llm.sh start # after a reboot
./openmake_llm.sh deploy # build + migrate + restart, after a code change
如果你更愿意一步步手动来
手动路径依然可用,当你要为自己的部署做调整时,它值得了解。它就是安装器所自动化的那套流程,只是少了工具链检查和密钥生成。
git clone https://github.com/openmake/openmake_llm.git
cd openmake_llm
node --version # 24.x required
npm install
cp .env.example .env # then fill in the values above
docker compose -f infra/docker-compose.yml up -d
./openmake_llm.sh build
./openmake_llm.sh migrate
./openmake_llm.sh start在邀请任何人之前,先定下这些
有几个开关改变的是部署的运行方式,而非它的样子。在用户到来之前把它们定好。
自动技能选择默认关闭。设置 SKILL_AUTO_SELECT_ENABLED=true 后,聊天和智能体任务就能自行挑选技能。把外部提供方密钥保持为可选,并与本地默认路由分开。
- DB_AUTO_MIGRATE=false — 当你更愿意手动运行迁移时,关闭启动时的自动迁移
- SKILL_AUTO_SELECT_ENABLED=true — 在聊天和智能体任务中启用自动技能选择
- 外部提供方密钥按用户注册,或者由团队共享一个带每日 token 上限的运维密钥
- ./openmake_llm.sh update — git pull、构建、迁移、重启;它拒绝去动一个存在未提交或已分叉提交的工作树
- ./uninstall.sh — 按相反顺序移除安装器创建的东西;--keep-data 会保留数据库卷

OpenMake