快速开始
用 Docker Compose 在本机运行 Keygate,调用一次初始化接口,签发第一个许可证密钥,再用 curl 演示激活、校验和释放设备,不需要 Stripe 和邮件服务器。
这一页带你在本机跑起 Keygate,并让一个许可证密钥走完整个生命周期:签发、激活、校验,再释放。整个过程不需要 Stripe,也不需要邮件服务器,这两样以后再加就行。
准备工作
- Docker,Compose 版本 2.24 或更高。
curl和openssl,大多数系统都自带。
启动服务器
新建一个文件夹,把 compose 文件和示例配置下载进去:
mkdir keygate && cd keygate
curl -O https://raw.githubusercontent.com/tabloy/keygate/main/docker-compose.yml
curl -o .env https://raw.githubusercontent.com/tabloy/keygate/main/.env.example缺少两个密钥时 Keygate 会拒绝启动。分别生成一个随机值,填进 .env 的 JWT_SECRET 和 LICENSE_SIGNING_KEY:
openssl rand -hex 32
openssl rand -hex 32然后启动:
docker compose up -dCompose 会同时启动 PostgreSQL 和 Keygate,Keygate 首次启动时会自动建表。健康检查有响应,就说明可以用了:
curl http://localhost:9000/health
{"checks":{"database":"ok"},"status":"ok","version":"x.y.z"}创建账号
打开 http://localhost:9000。全新安装会显示一个设置页面,填写你的姓名和邮箱、站点名称和第一个产品。邮箱填你自己的;这一页请把产品类型保留为 Desktop,因为后面的激活调用需要支持设备的产品。Keygate 会创建所有者账号、这个产品和一个名为 Pro 的订阅套餐,然后跳转到登录页。
Keygate 没有密码。输入同一个邮箱,Keygate 会发送一次性验证码。目前还没有配置邮件服务器,所以验证码会输出到服务器日志里:
docker compose logs keygate | grep "OTP code"日志行的 code 字段就是验证码。输入后即可进入管理后台。
curl -X POST http://localhost:9000/api/v1/setup/initialize \
-H "Content-Type: application/json" \
-d '{"admin_email":"[email protected]","admin_name":"Your Name",
"site_name":"My Licenses","product_name":"My App",
"product_slug":"my-app","product_type":"desktop"}'签发许可证
进入 Licenses,选择 Issue License。选中设置时创建的产品和 Pro 套餐,随便填一个邮箱地址,然后保存。Keygate 会显示新密钥:
KG-ABCD2345-EFGH6789-JKLM2345-NPQR6789在正式环境中,客户付款后这一步会自动完成,具体做法见 Stripe 指南。
激活许可证
下面这些调用本该由你的应用发出。这里用 curl 演示,方便你看清实际传输的内容。identifier 用来标识设备,目前随便用一个固定不变的字符串就行。
curl -X POST http://localhost:9000/api/v1/license/activate \
-H "Content-Type: application/json" \
-d '{"license_key":"KG-ABCD2345-EFGH6789-JKLM2345-NPQR6789",
"identifier":"my-laptop","label":"My laptop"}'返回结果表明设备已激活,并附带一个签名过的 token。应用会保存这个 token,之后校验许可证时就不必每次都请求服务器。
{
"success": true,
"data": {
"status": "activated",
"license_id": "4f0c6c1e-2a7b-4d4e-9a55-0d3b7e1f2c11",
"token": "eyJsaWQiOiI0ZjBj...J9.5jW2kC0..."
}
}应用启动时会校验许可证。这个接口还会返回套餐、套餐包含的功能,以及一个新的 token:
curl -X POST http://localhost:9000/api/v1/license/verify \
-H "Content-Type: application/json" \
-d '{"license_key":"KG-ABCD2345-EFGH6789-JKLM2345-NPQR6789","identifier":"my-laptop"}'用户换了新电脑时,旧电脑要把占用的名额释放出来:
curl -X POST http://localhost:9000/api/v1/license/deactivate \
-H "Content-Type: application/json" \
-d '{"license_key":"KG-ABCD2345-EFGH6789-JKLM2345-NPQR6789","identifier":"my-laptop"}'下一步
- 把 Keygate 安装到服务器上,配好正式域名和 HTTPS。
- 选择授权模式,并配置你的套餐。
- 在应用中加入许可证校验,包括离线使用的情况。
- 接入 Stripe,让用户付款后自动生成许可证。
最后更新 2026年10月4日