Keygen
Keygen 是一个公平源软件许可和分发 API,由开发者为开发者打造。使用 Keygen 为您企业的桌面应用、服务器应用、本地软件和其他产品添加许可密钥验证、权益和设备激活功能。
面向所有人的软件许可
Keygen 有两个版本。Keygen CE 是我们的社区版,可以免费自托管用于个人和商业用途。Keygen EE 是我们的企业版,需要许可密钥才能使用。Keygen EE 提供专门的支持,以及企业级功能,如请求日志、审计日志、权限、环境等。
我创建 Keygen 是为了让软件许可对每个人都可以使用。
使用 Keygen Cloud 进行托管
开始使用 Keygen 最简单的方法是使用我们官方的云托管服务。我们会处理困难的部分 — 高可用性、备份、安全和维护 — 而您可以专注于产品。
我们的托管服务可以节省大量的开发时间和资源。对大多数企业来说,这最终是最具价值的选择,收入将用于资助 Keygen 的维护和进一步开发。因此,您将支持公平源码软件并获得出色的服务!
使用 Keygen CE 进行自托管
Keygen 是一个公平源软件许可和分发 API,我们提供免费的自托管解决方案。Keygen 社区版与我们托管的解决方案 Keygen Cloud 使用完全相同的代码库,但发布频率较低(可以将其视为 LTS 版本)。
错误修复和新功能每周会多次发布到 Keygen Cloud。功能在 Keygen Cloud 中经过实战测试,这使我们能够在通用自托管版本发布之前修复任何错误。每 6 个月,我们将所有更改合并到一个新的自托管版本中。
Keygen CE 确实缺少 Keygen Cloud 的一些功能,这些功能在 Keygen EE 中可用。
对自托管 Keygen 感兴趣?请查看我们的自托管文档。
使用 Keygen EE 进行自托管
Keygen 也是企业级的,在 Keygen Cloud 中经过世界上一些最好品牌的实战测试。以下功能在 Keygen 企业版中可用:
- 请求日志:保留 API 请求的历史记录,包括谁发出请求、请求体、响应体、状态码、IP 地址和其他信息。
- 事件日志:保留 Keygen 账户中发生的每个事件的审计跟踪。
- 环境:在 Keygen 账户内管理单独的环境,从测试环境到沙盒、QA 和生产环境。
- 权限:企业级角色和权限。
- SSO/SAML:即将支持 SSO/SAML。
Keygen 在生产环境中使用 Keygen EE 来运行 Keygen Cloud,后者用于许可 Keygen EE。这是一个循环Keygen 套娃(我们喜欢自己使用自己的产品)。
要获取许可密钥,请联系我们。
可持续性
Keygen 的唯一资金来源是我们在云中运行 Keygen 的高级托管服务和 Keygen EE。但如果您想寻找其他方式支持项目,我们提供了一些赞助选项。
如果您选择自托管 Keygen CE,您可以成为赞助者,这是回馈社区并为项目的长期可持续性做出贡献的好方法。
支持
Keygen CE 是一个社区支持的项目,Keygen 的创建者不保证会为您的自托管问题提供故障排除支持。Keygen 为 Keygen CE 提供尽力而为的支持。有一个社区支持的 Discord 服务器和论坛,您可以在那里寻求自托管帮助。
如果您确实需要支持保证,请考虑成为 Keygen Cloud 客户,或购买 Keygen EE。
开发
密钥
要为应用程序生成密钥,请运行:
export SECRET_KEY_BASE="$(openssl rand -hex 64)"
要生成工作加密密钥,请运行:
export ENCRYPTION_DETERMINISTIC_KEY="$(openssl rand -base64 32)"
export ENCRYPTION_PRIMARY_KEY="$(openssl rand -base64 32)"
export ENCRYPTION_KEY_DERIVATION_SALT="$(openssl rand -base64 32)"
设置
要安装依赖项,请运行:
bundle
要设置Keygen,请运行:
bundle exec rails keygen:setup
数据填充
要用示例数据填充数据库,请运行(可选):
bundle exec rails db:seed:development
运行
要启动服务器,请运行:
bundle exec rails server
要启动工作进程,请运行:
bundle exec sidekiq
要启动控制台,请运行:
bundle exec rails console
测试
要设置测试环境,请运行:
bundle exec rake test:setup
要运行整个测试套件,包括规格和特性,请运行(在16核CPU上大约需要20分钟):
bundle exec rake test
要运行Cucumber特性测试,请运行:
bundle exec rake test:cucumber
bundle exec rake test:cucumber[features/api/v1/licenses/actions/validations.feature:369]
bundle exec rake test:cucumber[features/api/v1/licenses/actions/validations.feature]
bundle exec rake test:cucumber[features/api/v1/licenses]
要运行Rspec规格测试,请运行:
bundle exec rake test:rspec
bundle exec rake test:rspec[spec/models/license_spec.rb:199]
bundle exec rake test:rspec[spec/models/license_spec.rb]
bundle exec rake test:rspec[spec/models]
许可证
Keygen使用公平核心许可证授权。公平核心许可证(FCL)为像Keygen这样通过SaaS和自托管盈利的项目提供了用户自由和开发者可持续性之间的最佳平衡。FCL是一个主要允许性的非竞争公平源码许可证,最终在2年后贡献给开源社区。
2年的时间框架适用于每个可用的软件版本,无论是通过推送Git提交、在GitHub上标记发布还是将镜像发布到Docker Hub。2年后,FCL许可的代码将成为Apache 2.0许可下的开源软件。
要获取Keygen的开源版本,请运行以下命令:
git clone https://github.com/keygen-sh/keygen-api && cd keygen-api
git checkout `git rev-list -n 1 --before='2 years ago' master`
如果LICENSE.md
文件是FCL,并且该代码已经2年了,您可以根据更改许可证的开源条款(目前是Apache 2.0许可证)使用该版本。
您可以...
- 自托管Keygen EE以许可您的企业应用程序。
- 在您的本地应用程序中嵌入Keygen CE。
- 在私有网络上运行Keygen CE。
- 修改Keygen以添加额外功能。
- 将Keygen分叉到私有仓库。
如果FCL不适合您的公司或用例,请联系我们。
许可证可在此处获取。
贡献
如果您发现问题或对新功能感兴趣,请开启一个issue。如果您想贡献代码,请随时开启pull request。如果PR内容较大,最好事先开启一个issue进行讨论。
贡献者许可协议(CLA)可在此处获取。
安全
我们在Keygen非常重视安全。我们每年对我们的代码库和基础设施进行渗透测试。此外,我们还定期进行代码审计。我们最近的渗透测试由Ruby和Rails社区的OSCP认证安全研究员Greg Molnar执行。
如果您认为发现了漏洞,请查看我们的SECURITY.md
文件。