文档目录▾

简介

Keygate 是开源、自托管的软件许可证服务器:签发许可证密钥,在应用里校验,通过 Stripe 收款,向客户推送更新。部署在你自己的服务器上,搭配 PostgreSQL。

这套文档按多数人的上手顺序编排:先把服务跑起来,再决定怎么卖,然后在应用里加上许可证校验,最后接入收款和更新。自己写客户端时,需要的细节都在 API 参考里。

从这里开始

用 Electron、Tauri、.NET、Python 或 Swift 开发?框架指南里有可以直接复制的完整代码:Electron、Tauri、.NET、Python 和 Swift。从其他授权系统迁移过来?请看迁移到 Keygate。

核心概念

Keygate 里几乎所有东西都由下面四个概念构成。

  • 产品(Product)。你卖的东西,比如桌面应用或 Web 服务。产品类型(desktop、SaaS 或 hybrid)决定许可证是按设备计数、按团队成员计数,还是两者都算。
  • 方案(Plan)。你怎么卖这个产品:订阅、永久许可证或试用。订阅可以按席位销售,由买家选择席位数;试用结束后可以转到一个免费方案,而不是直接过期。方案里包含 Stripe 价格、一个许可证可以使用的设备数和人数,以及它解锁的功能。参见 Licensing models(英文)。
  • 许可证(License)。客户拥有的东西。结账完成、你在后台手动签发,或者你自己的后端通过 API 请求时,Keygate 都会创建一个许可证。每个许可证都有一个类似 KG-ABCD2345-EFGH6789-JKLM2345-NPQR6789 的密钥,前缀可以按产品设置;团队共用的许可证上,每位成员都有自己的密钥(英文)。
  • 激活(Activation)。许可证上的一台设备或一个用户。如果许可证允许三台设备,第四次激活会被拒绝,直到客户释放其中一台。

围绕这些概念,还有一些让授权在日常运营中真正可用的功能:让用户自助管理许可证和账单的客户门户、发送密钥和提醒的邮件、对接其他系统的 webhook、审计日志,以及给自动更新的应用使用的版本托管。

两套 API

Keygate 有两套 API,分别面向不同的调用方。

许可证 API 位于 /api/v1/license 下,是你的应用要调用的接口。它不需要 API 密钥,请求里的许可证密钥本身就是凭证,因为随应用分发的任何东西都能被提取出来,保密的密钥也不例外。

管理 API 位于 /api/v1/admin 下,供你自己的服务器使用,比如负责创建许可证的计费系统。它需要一个在后台创建的 API 密钥,以 Authorization: Bearer kg_live_... 的形式发送。两套 API 的说明都在 API 参考里。

刚接触软件授权?

三篇短文介绍背景知识(目前只有英文):license key 的原理、节点锁定与浮动授权的区别,以及要不要自己开发授权服务器。

获取帮助

大多数部署问题都能在故障排查里找到答案。

问题和想法请发到 GitHub Discussions,bug 请提交到 Issues。源代码托管在 GitHub 上,每个版本的发布说明也在那里。

最后更新 2026年10月26日