跳到正文

许可与授权状态

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=postgresqlPOSTGRES_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),通过环境变量注入:

bash
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 单机 → 常用环境变量

下一步环境变量配置参考 看全部环境变量;上线检查清单 看生产存储选型;做到高可用 看多实例部署。