mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-09-28 05:46:36 +08:00
6.5 KiB
6.5 KiB
中文 | English
OpenFlare 1.0.0 是当前稳定基线。第六版开发工作已经完成,相关能力已并入正式版,仓库文档不再保留阶段性实施记录,而只维护当前有效的设计、约束和部署方式。
为什么存在
OpenFlare 解决的是一类朴素但高频的运维问题:
- 在一个管理端里维护域名到源站的反向代理规则
- 生成完整 OpenResty 配置并以不可变版本发布
- 让节点侧 Agent 自动拉取、校验、reload 与失败回滚
- 统一托管证书、域名、节点凭证与版本状态
- 提供足够实用的总览、节点详情与访问分析能力
它不是 CDN SaaS,也不试图在 1.0 阶段演变成多租户平台、日志平台或通用调度系统。
核心能力
- 配置版本化:支持预览、发布、激活、历史回滚,版本不可变
- 节点接入:支持全局
discovery_token首次接入,也支持节点专属agent_token - Agent 自动应用:周期性同步、落盘、
openresty -t、openresty -s reload、失败自动回滚 - OpenResty 托管:统一管理主配置模板、性能参数、缓存参数与受管路由
- TLS 与域名管理:支持证书托管、域名资产维护、精确匹配与通配符匹配
- 访问与节点观测:支持请求窗口聚合、状态码分布、来源分布、节点资源与健康事件展示
- 版本运维:支持 Server 与 Agent 的正式版升级,以及受控的 preview 检查与手动升级
- 管理端 UI:基于 Next.js App Router、React 19、Tailwind CSS 4 的正式前端
系统架构
OpenFlare Server (Gin + GORM + SQLite + Web UI)
|
| HTTP API / Config Pull
v
OpenFlare Agent (register / heartbeat / sync / apply / update)
|
v
Local OpenResty or Docker OpenResty
|
v
Origin
职责划分:
openflare_server:管理端 UI、管理 API、Agent API、配置渲染、版本发布与状态存储openflare_agent:节点注册、心跳、同步、本地写入、校验、reload、回滚、自更新openflare_server/web:新版管理端前端,静态导出后由 Go Server 托管
界面预览
仪表盘总览
节点详情与安装命令
配置发布与版本管理
快速开始
1. 启动 Server
services:
openflare:
image: ghcr.io/rain-kl/openflare:latest
restart: unless-stopped
ports:
- "3000:3000"
environment:
SESSION_SECRET: replace-with-random-string
SQLITE_PATH: /data/openflare.db
GIN_MODE: release
LOG_LEVEL: info
PORT: "3000"
volumes:
- openflare-data:/data
volumes:
openflare-data:
docker compose up -d
访问地址:http://localhost:3000
默认账号:
- 用户名:
root - 密码:
123456
2. 接入 Agent
使用 discovery_token 首次接入:
curl -fsSL https://raw.githubusercontent.com/Rain-kl/OpenFlare/main/scripts/install-agent.sh | bash -s -- \
--server-url http://your-server:3000 \
--discovery-token YOUR_DISCOVERY_TOKEN
使用节点专属 agent_token:
curl -fsSL https://raw.githubusercontent.com/Rain-kl/OpenFlare/main/scripts/install-agent.sh | bash -s -- \
--server-url http://your-server:3000 \
--agent-token YOUR_AGENT_TOKEN
安装脚本默认写入 /opt/openflare-agent,创建 openflare-agent.service,并可重复执行以重装或升级 Agent。
3. 发布第一份配置
- 登录管理端并新增反代规则
- 在发布前查看预览或变更摘要
- 激活新版本
- 等待 Agent 在后续 heartbeat 中拉取并应用配置
版本号格式固定为 YYYYMMDD-NNN,历史版本不可变,回滚通过重新激活旧版本完成。
仓库结构
openflare_server:Gin + GORM + SQLite 单体控制面openflare_server/web:Next.js 15 App Router 管理端前端openflare_agent:Go 单体 Agentscripts:安装脚本与辅助脚本docs:设计、规范、部署与配置文档
本地开发
Server
cd openflare_server
export SESSION_SECRET='replace-with-random-string'
export SQLITE_PATH='./openflare.db'
go run .
Frontend
cd openflare_server/web
corepack enable
pnpm install
pnpm build
Agent
cd openflare_agent
go run ./cmd/agent -config /path/to/agent.json
常用验证命令
cd openflare_server
GOCACHE=/tmp/openflare-go-cache go test ./...
cd openflare_agent
GOCACHE=/tmp/openflare-go-cache go test ./...
文档导航
建议按以下顺序阅读:
- docs/design.md
- docs/development-guidelines.md
- docs/development-plan.md
- docs/frontend-revamp-plan.md
- docs/frontend-development-guidelines.md
- docs/deployment.md
- docs/app-config.md
管理端与接口
管理端当前覆盖:
- 反代规则
- 配置版本
- 节点管理
- 应用记录
- TLS 证书
- 域名管理
- 用户管理
- 设置
- 版本更新
登录管理端后,可访问 Swagger UI:/swagger/index.html
开源协议
本项目采用 Apache License 2.0 开源。



