ConfigFlow
🚀 现代化代理配置管理平台
一站式管理订阅、节点、规则,一键生成 Mihomo / Surge / Loon / MosDNS / OxiDNS 配置
✨ 功能特性
📦 订阅管理
🌐 节点管理
📋 规则仓库
|
🎯 策略组配置
⚡ 配置生成
界面与可访问性
🔌 MCP 服务
🤖 Agent 远程管理
|
Agent 内容核对在后台按实际推送流程准备文件,可能读取远程订阅和规则,但不会推送、重启或保存订阅缓存。页面请求复用核对结果 15 分钟;配置变化后重新核对,后台准备优先复用同进程内 15 分钟以内的订阅原始响应,无可用响应时才访问上游。远程资源单独变化需等核对结果及订阅响应缓存过期后的检查才能发现。实际推送仍使用普通 5 分钟订阅复用窗口。没有完整历史指纹的旧记录显示「同步状态待确认」,在升级服务端后成功推送一次即可建立记录,无需为此重装 Agent。此状态比较的是下发内容,不是对 Agent 磁盘上所有文件的实时扫描。
🚀 快速开始
Docker Compose 部署(推荐)
version: '3.8'
services:
config-flow:
image: thsrite/config-flow:latest
ports:
- "80:80"
volumes:
- ./data:/data
environment:
- ADMIN_USERNAME=admin
- ADMIN_PASSWORD=your_password
- JWT_SECRET_KEY=your-secret-key
restart: unless-stopped
访问 http://localhost 即可使用
💡 提示:生产环境请务必修改默认密码和 JWT 密钥;镜像已内置 Sub-Store(订阅解析和节点格式转换),无需另外部署,可在「系统设置 → 第三方依赖」检测并在线更新
> 从旧版升级:compose 中的sub-store服务和SUB_STORE_URL环境变量已不再使用,可以删除。
升级与数据安全
升级前请确认目标镜像已包含旧版多配置迁移修复,不要仅凭 latest 标签判断。 本节描述当前源码的迁移行为,已发布镜像是否包含修复应以发布记录和镜像摘要为准。
升级前检查
- 记录当前镜像版本或摘要,以及容器
/data对应的宿主机目录。 - 停止 ConfigFlow 服务后,备份完整数据目录,包括根
config.json、system.json、profiles/、所有.bak和缓存文件。旧版多配置不能只备份根config.json,它可能是更早遗留的数据。 - 使用原 Compose 文件和原数据挂载升级;重要实例建议先复制数据,在隔离副本上验证配置和 Agent 绑定。
docker compose pull
docker compose up -d
仓库内的 Compose 文件位于docker/docker-compose.yml。其中./data:/data的宿主机路径相对于 Compose 文件所在目录解析;从根目录的旧 Compose 改用此文件时,可能挂载到另一个data目录。请保留原文件位置,或明确使用原数据目录的绝对路径。
迁移行为
| 原数据格式 | 升级处理 |
|---|---|
| 原版无版本号的单文件配置 | 资源转为共享资源,策略与生成参数进入默认配置 |
| schema 2 多配置目录:system.json+profiles/ | 优先读取系统索引和各配置文件,忽略残留旧根配置;保留配置 ID、规则顺序、生成参数及 Agent 绑定 |
| 当前 schema 5 配置 | 直接读取,不因旧目录仍存在而重复迁移 |
| 不完整数据或不支持的中间格式 | 明确报错,不静默创建默认模板或删除不支持字段 |
同 ID、同定义的资源会合并;同 ID、不同定义的资源会分别保留并重写引用,避免跨配置覆盖。提交前会在 migrations/<时间戳-标识>/migration/ 保存旧配置主文件和备份文件快照。
升级后配置变少怎么办
- 不要重置或清理旧文件。 先核对
/data的实际挂载、启动日志和升级前备份。 - 若此前的错误升级已经写入 schema 5,修复版不会自动用旧文件覆盖它,以免丢失升级后新增的数据。
- 应从升级前的完整快照创建副本,使用含修复的版本迁移;核对全部配置、资源和 Agent 绑定后,再停服切换数据目录。不要只修改
schema_version,也不要直接删除生产根配置。
📖 文档
详细使用文档请查看:ConfigFlow 使用指南
📸 截图预览
以下截图来自当前版本的本地隔离演示环境,使用虚构配置空间、节点与策略数据;不代表真实线上监控或生产配置。
数据统计总览
当前配置的策略组
🏗️ 技术栈
| 层级 | 技术 | |------|------| | 后端 | Python 3.11 • Flask • PyYAML | | 前端 | Vue 3 • TypeScript • Tailwind CSS 4 • Reka UI • Vite | | 订阅解析 | Sub-Store | | 部署 | Docker • Nginx • Supervisor |
📁 项目结构
config-flow/
├── backend/ # Python Flask 后端
│ ├── app.py # 主应用入口
│ ├── common/ # 公共模块 (认证、配置)
│ ├── routes/ # API 路由
│ ├── mcp_server/ # MCP 服务端 (对外暴露 /mcp)
│ ├── converters/ # 配置生成器 (Mihomo/Surge/MosDNS)
│ ├── agents/ # Agent 管理
│ └── utils/ # 工具函数
├── frontend/ # Vue 3 前端
│ └── src/
│ ├── views/ # 页面组件
│ ├── components/ # 公共组件
│ └── api/ # API 调用
├── doc/ # 项目文档
└── docker/ # 容器构建与部署配置
├── Dockerfile
├── docker-compose.yml
├── nginx.conf
└── supervisord.conf
📄 许可证
本项目基于 MIT License 开源
❤️ 赞助支持
如果这个项目对你有帮助,欢迎赞助支持开发者持续维护!
🏆 发电排行榜
感谢以下用户的赞助支持!
|
爱发电用户_740f4 |
⭐ 如果觉得有用,请给个 Star 支持一下!
Made with ❤️ by thsrite