开源功能开关与实验管理系统,通过 Git 以声明式方式管理功能开关、A/B 变体和远程配置。
Ryware/nona-config
可自托管的功能开关与远程配置服务,通过一套 REST API 提供,可替代 Firebase Remote Config。
- Star
- 51
- Fork
- 14
- 未关闭 Issue
- 1
- 最近提交
- 4天前
这是什么?
Nona 是一个可自托管的功能开关与远程配置服务。团队可以在不重新发布应用的情况下,通过后台调整网页、移动端和后端应用的开关、阈值以及紧急关停开关,数据保存在自己的基础设施中,而不是由 Google 托管。
它以单个 Docker 容器的形式运行,管理后台与 HTTP API 共用一个端口。独立部署使用 SQLite,配置主从复制时使用内嵌的 libSQL。配置按项目、环境和发布版本组织,客户端使用绑定项目的 API Key 拉取数据。任何语言都可以直接调用普通 HTTP 接口,同时提供 JavaScript、.NET、Kotlin/Android 和 Swift 的官方客户端,以及服务端和浏览器端的 OpenFeature Provider。CLI 自带迁移命令,可导入 Firebase Remote Config 和 AWS Parameter Store 中的参数。
读取接口以项目、环境、作用域和键名为索引,HTTP 读取路径暂不支持内置的用户定向、按比例灰度或基于用户的动态计算。
核心功能
- 01无需重新部署,即可在网页后台切换功能开关和配置值。
- 02通过一套 REST API 获取配置,任何语言都可以直接调用。
- 03按项目、环境和发布版本组织配置。
- 04提供 JavaScript、.NET、Kotlin/Android、Swift 官方客户端及 OpenFeature Provider。
- 05以单个 Docker 容器运行,内置 SQLite,可选 libSQL 主从复制。
- 06CLI 内置从 Firebase Remote Config 迁移的命令。
适用场景
- 在生产环境中通过紧急开关数秒内关闭故障功能。
- 无需等待应用商店审核,即可更新移动端应用配置。
- 在保留数据自有部署的前提下,替代 Firebase Remote Config。
- 让使用不同语言编写的多个服务共享同一份配置来源。
快速上手
- 1
使用 Docker 运行 Nona 容器
docker run -d --name nona --restart unless-stopped -p 18080:8080 -v nona-data:/var/lib/nona rywaredev/nona:latest - 2
打开网页界面,创建项目、环境和 API 密钥
- 3
使用 API 密钥获取一个参数
curl "http://localhost:18080/api/environments/production/parameters/Features%3ACheckout" -H "X-Api-Key: your-api-key"
使用前须知
- 读取仅按项目、环境和键进行,不支持内置的按用户定向或百分比灰度发布。
- 自托管需要你自行运行和维护 Docker 容器及存储。
- 项目较新,仅有 51 个星标,社区规模较小。
收录于专题
标签
常见问题
- nona-config 是什么?
- 可自托管的功能开关与远程配置服务,通过一套 REST API 提供,可替代 Firebase Remote Config。 Nona 是一个可自托管的功能开关与远程配置服务。团队可以在不重新发布应用的情况下,通过后台调整网页、移动端和后端应用的开关、阈值以及紧急关停开关,数据保存在自己的基础设施中,而不是由 Google 托管。
- nona-config 可以免费使用吗?用的什么许可证?
- nona-config 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- nona-config 还在维护吗?
- 活跃维护中。nona-config 最近一次提交是在 2026年11月3日。
- nona-config 适合用来做什么?
- 在生产环境中通过紧急开关数秒内关闭故障功能。 无需等待应用商店审核,即可更新移动端应用配置。 在保留数据自有部署的前提下,替代 Firebase Remote Config。 让使用不同语言编写的多个服务共享同一份配置来源。
- nona-config 怎么安装和运行?
- 使用 Docker 运行 Nona 容器: docker run -d --name nona --restart unless-stopped -p 18080:8080 -v nona-data:/var/lib/nona rywaredev/nona:latest 打开网页界面,创建项目、环境和 API 密钥 使用 API 密钥获取一个参数: curl "http://localhost:18080/api/environments/production/parameters/Features%3ACheckout" -H "X-Api-Key: your-api-key"
- 在哪里获取 nona-config?
- 源代码和安装说明在 GitHub 上:https://github.com/Ryware/nona-config
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
开源功能开关平台,支持远程配置、A/B 测试和灰度发布,可自托管或使用云服务。
开源功能开关平台,用于控制功能发布、A/B 测试和紧急关闭,并提供多种语言 SDK。
Git 原生的功能开关平台,将 flag 存储在自有 Git 仓库中,随代码一同部署。
可自托管的功能开关平台,提供多语言 SDK 并支持 A/B 实验。
开源的功能开关、A/B 实验与产品分析平台,可直接基于你自己的数据仓库运行。