{"id":13901375,"url":"https://github.com/stack-labs/XConf","last_synced_at":"2025-07-17T22:30:29.170Z","repository":{"id":38992894,"uuid":"226613018","full_name":"stack-labs/XConf","owner":"stack-labs","description":"分布式配置中心","archived":false,"fork":false,"pushed_at":"2023-03-07T00:08:26.000Z","size":4671,"stargazers_count":244,"open_issues_count":26,"forks_count":53,"subscribers_count":13,"default_branch":"master","last_synced_at":"2024-08-07T21:45:25.711Z","etag":null,"topics":["configuration-files","configuration-management","golang","micro","microservices"],"latest_commit_sha":null,"homepage":"http://xconf.mogutou.xyz/admin/ui","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stack-labs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-12-08T04:14:45.000Z","updated_at":"2024-06-22T10:50:01.000Z","dependencies_parsed_at":"2024-01-16T22:22:10.078Z","dependency_job_id":"670a2e64-7114-41ef-ab88-cf2f22eb6b0d","html_url":"https://github.com/stack-labs/XConf","commit_stats":null,"previous_names":["micro-in-cn/xconf"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stack-labs%2FXConf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stack-labs%2FXConf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stack-labs%2FXConf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stack-labs%2FXConf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stack-labs","download_url":"https://codeload.github.com/stack-labs/XConf/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226305357,"owners_count":17603797,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["configuration-files","configuration-management","golang","micro","microservices"],"created_at":"2024-08-06T21:01:17.764Z","updated_at":"2024-11-25T09:31:21.011Z","avatar_url":"https://github.com/stack-labs.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# XConf 分布式配置中心\n\n[![Github Actions](https://github.com/micro-in-cn/XConf/workflows/CI/badge.svg)](https://github.com/micro-in-cn/XConf/actions)\n[![Go Report Card](https://goreportcard.com/badge/github.com/micro-in-cn/XConf)](https://goreportcard.com/report/github.com/micro-in-cn/XConf)\n[![GoDoc](https://godoc.org/github.com/micro-in-cn/XConf?status.svg)](https://godoc.org/github.com/micro-in-cn/XConf)\n[![LICENSE](https://img.shields.io/badge/LICENSE-MIT-blue)](https://github.com/micro-in-cn/XConf/blob/master/LICENSE)\n[![Code Size](https://img.shields.io/github/languages/code-size/micro-in-cn/XConf.svg?style=flat)](https://img.shields.io/github/languages/code-size/micro-in-cn/XConf.svg?style=flat)\n\n`XConf` 基于 go-micro 构建的分布式配置中心，提供配置的管理与发布、实时推送.\n\n## 使用本项目的公司\n\n- [CHUR Networks](https://www.churnetworks.com/)\n\n## 特点\n\n- 修改实时推送\n- 高效读取配置\n- 支持界面管理、配置导入导出\n- 支持服务器agent进程，程序无感知接入\n- 安装部署方便，简单\n\n## 服务架构\n\n![image](doc/design.png)\n\n- App\n  - Cluster 集群 （A区，B区，C区）\n    - Namespace 空间（可理解为一个个配置文件：db.json，db.toml）\n      - Value 配置内容\n\n## 目录结构\n\n```text\n.\n├── LICENSE\n├── README.md\n├── admin-api   // 配置管理 api 服务\n├── agent-api   // 配置获取，推送服务\n├── client      // micro config 客户端插件\n├── config-srv  // 配置管理服务\n├── dashboard   // 前端UI\n├── doc\n├── go.mod\n├── go.sum\n├── micro       // micro api 网关\n└── proto\n```\n\n## 前端 UI\n\n线上 demo - http://xconf.mogutou.xyz/admin/ui\n\n![image](doc/app.png)\n\n![image](doc/cluster.png)\n\n![image](doc/namespace.png)\n\n![image](doc/rollback.png)\n\n## 快速开始\n\n- 依赖\n    \n    MySQL XConf 底层存储使用 mysql 数据库\n\n    ```sql\n    CREATE DATABASE xconf\n    ```\n    \n    \u003e root:12345@(127.0.0.1:3306)/xconf?charset=utf8\u0026parseTime=true\u0026loc=Local\n\n-  docker 快速启动 all in one\n    \n    \u003e 所有服务打包到一个容器中，仅仅作为快速预览使用，不可作为生产使用。\n    \n    ```shell script\n    docker pull xuxu123/xconf-all:latest\n    ```\n    \n    ```shell script\n    docker run --name xconf -it --rm -p 8080:8080 -e BROADCAST=broker -e DATABASE_URL=\"root:12345@(IP地址:3306)/xconf?charset=utf8\u0026parseTime=true\u0026loc=Local\" xuxu123/xconf-all\n    ```\n    \n    UI： http://127.0.0.1:8080/admin/ui\n\n- agent\n\n    agent 负责实时获取指定 应用/集群 下的所有配置文件到指定文件夹中\n\n    ```text\n    NAME:\n       agent - XConf agent client\n\n    USAGE:\n       main [global options] command [command options] [arguments...]\n\n    VERSION:\n       0.0.1\n\n    COMMANDS:\n         help, h  Shows a list of commands or help for one command\n\n    GLOBAL OPTIONS:\n       --url value, -u value      base url (default: \"127.0.0.1:8080\") [$XCONF_BASE_URL]\n       --app value, -a value      app name [$XCONF_APP_NAME]\n       --cluster value, -c value  cluster name [$XCONF_CLUSTER_NAME]\n       --dir value, -d value      directory (default: \"/tmp\") [$XCONF_DIR]\n       --help, -h                 show help\n       --version, -v              print the version\n\n    ```\n\n    ```shell script\n    docker run --name agent -v /tmp/docker-xconf:/tmp  -d  xuxu123/agent  -u http://xconf.mogutou.xyz -a test -c dev -d /tmp\n    ```\n\n## 客户端\n\n- Golang  [pkg/client/example](pkg/client/example/main.go)\n    \n    ```shell script\n    git clone https://github.com/micro-in-cn/XConf.git\n    cd XConf/pkg/client/example\n    go run main.go \n    ```\n\n    客户端支持读取配置，实时获取配置更新（页面上\"发布\"操作才能触发配置推送，\"保存\"操作仅是保存配置）\n    \n## 部署与构建\n\n- [docker compose 部署](https://github.com/micro-in-cn/XConf/tree/master/deployments/docker-compose)\n\n- [源码运行](https://github.com/micro-in-cn/XConf/tree/master/doc/build.md)\n\n## 感谢\n\nXConf 参考了 Apollo 在业界成熟的设计方案。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstack-labs%2FXConf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstack-labs%2FXConf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstack-labs%2FXConf/lists"}