许可与授权状态
GateLLM 在未注入有效授权(LICENSE_KEY)时以免费版运行:单机模式功能完整,但内存上限被压到 512MB,并禁用 Redis / PostgreSQL 等分布式能力。本章解释你会看到什么、受什么限制、如何激活。
跑通 Docker 单机 不需要授权——零配置主路径就是免费版状态,单机教程全流程可正常完成。
未授权时会发生什么
授权状态由启动时是否注入有效 LICENSE_KEY 决定(空 = 未授权 = 免费版)。未授权时,网关在启动期对配置做以下收敛:
| 项目 | 未授权(免费版) | 已授权 |
|---|---|---|
内存上限 MEMORY_SOFT_LIMIT_MB | 封顶 512 MB(配置值大于 512 会被压到 512) | 按配置值,无封顶 |
REDIS_URL | 被清空(禁用) | 按配置启用 |
POSTGRES_URL | 被清空(禁用) | 按配置启用 |
STORAGE_MODE | 强制 sqlite(单机) | 可用 postgresql(多实例) |
| 分布式 / 多实例 | 不可用 | 可用 |
⚠️ 若你在未授权时设了非空
REDIS_URL/POSTGRES_URL(即真正接了 Redis / PostgreSQL),启动会直接失败并报license restriction: this instance is unlicensed and cannot use distributed features...。仅设STORAGE_MODE=postgresql而POSTGRES_URL为空(镜像默认值)时不会失败——license 层会把它降级为sqlite并以 512 MB 上限继续启动。免费版只能单机 sqlite。生产存储选型见 上线检查清单。
控制台横幅
登录控制台后,未授权实例顶部会常驻一条琥珀色横幅(由 /console/api/check-status 返回 valid=false 触发):
- 免费版:
免费版 — 内存上限为 512MB,Redis 和 PostgreSQL 已禁用(仅限单机模式)。请联系提供商激活授权。 - 授权已过期:
授权已过期 — 内存上限为 512MB,Redis 和 PostgreSQL 已禁用(仅限单机模式)。
横幅用琥珀色而非红色——这是软性降级,不是故障。网关照常运行,只是分布式能力被关。
不受影响的部分
免费版(未授权)下,以下功能与已授权一致:
- 单机网关的全部路由、协议互译、负载均衡、访问控制、脚本变换
- 控制台 UI 与管理 API(用户、上游、模型、密钥、日志、统计)
- 文档站本身(本地搜索、深色模式等,与授权无关)
也就是说,单机使用 GateLLM 不需要授权。授权只在你要跑多实例共享状态(Redis + PostgreSQL)时才需要。
如何激活授权
授权 key 是一个 Ed25519 签名的 base64 串(payload||signature),通过环境变量注入:
docker run -e LICENSE_KEY="<你的授权 key>" ghcr.io/gatellm-io/gatellm:latestℹ️ 授权校验仅在镜像以
--build-arg LICENSE_ENABLED=true构建时生效。官方ghcr.io/gatellm-io/gatellm:latest默认开启;自建镜像需确认该 build-arg。注入有效 key 后重启,控制台横幅消失,512MB 与分布式限制解除。
获取授权 key 请联系你的部署方或提供商。
常见问题
Q:横幅写着"请联系提供商激活授权",我只是调用方怎么办? 这条横幅面向部署 GateLLM 的运维方。如果你只通过网关调模型(调用方),这条横幅不影响你的使用——它只与部署方的多实例/高可用能力有关。联系你的平台运维即可。
Q:免费版能上生产吗? 单机、且内存需求 < 512MB 的场景可以。需要多实例高可用、Redis 共享状态、PostgreSQL 存储的生产部署则需授权。见 做到高可用。
Q:注入 LICENSE_KEY 后反而启动失败了? 注入授权后,license 层不再强制把 STORAGE_MODE 改回 sqlite。若你设了 STORAGE_MODE=postgresql 但没填 POSTGRES_URL,会报 server.postgres_url is required for postgresql storage mode。要么填上 POSTGRES_URL,要么显式设 STORAGE_MODE=sqlite。见 Docker 单机 → 常用环境变量。
