mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-10-05 15:26:36 +08:00
[优化] 改名
This commit is contained in:
@@ -3,32 +3,32 @@
|
||||
</p>
|
||||
|
||||
<div align="center">
|
||||
<img src="./atsf_server/web/public/logo.png" width="120" height="120" alt="ATSFlare logo">
|
||||
<img src="./openflare_server/web/public/logo.png" width="120" height="120" alt="OpenFlare logo">
|
||||
|
||||
# ATSFlare
|
||||
# OpenFlare
|
||||
|
||||
轻量、自托管的反向代理控制面,用于管理 Nginx 配置发布、节点同步、TLS 证书与版本回滚。
|
||||
|
||||
</div>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://raw.githubusercontent.com/Rain-kl/ATSFlare/main/LICENSE">
|
||||
<img src="https://img.shields.io/github/license/Rain-kl/ATSFlare?color=brightgreen" alt="license">
|
||||
<a href="https://raw.githubusercontent.com/Rain-kl/OpenFlare/main/LICENSE">
|
||||
<img src="https://img.shields.io/github/license/Rain-kl/OpenFlare?color=brightgreen" alt="license">
|
||||
</a>
|
||||
<a href="https://github.com/Rain-kl/ATSFlare/releases/latest">
|
||||
<img src="https://img.shields.io/github/v/release/Rain-kl/ATSFlare?color=brightgreen&include_prereleases" alt="release">
|
||||
<a href="https://github.com/Rain-kl/OpenFlare/releases/latest">
|
||||
<img src="https://img.shields.io/github/v/release/Rain-kl/OpenFlare?color=brightgreen&include_prereleases" alt="release">
|
||||
</a>
|
||||
<a href="https://github.com/Rain-kl/ATSFlare/pkgs/container/atsflare">
|
||||
<img src="https://img.shields.io/badge/GHCR-ghcr.io%2Frain--kl%2Fatsflare-brightgreen" alt="ghcr">
|
||||
<a href="https://github.com/Rain-kl/OpenFlare/pkgs/container/openflare">
|
||||
<img src="https://img.shields.io/badge/GHCR-ghcr.io%2Frain--kl%2Fopenflare-brightgreen" alt="ghcr">
|
||||
</a>
|
||||
<a href="https://goreportcard.com/report/github.com/Rain-kl/ATSFlare">
|
||||
<img src="https://goreportcard.com/badge/github.com/Rain-kl/ATSFlare" alt="GoReportCard">
|
||||
<a href="https://goreportcard.com/report/github.com/Rain-kl/OpenFlare">
|
||||
<img src="https://goreportcard.com/badge/github.com/Rain-kl/OpenFlare" alt="GoReportCard">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
## 项目定位
|
||||
|
||||
ATSFlare 当前定位为内部自用的反向代理控制面,不面向外部租户提供 CDN SaaS 能力。
|
||||
OpenFlare 当前定位为内部自用的反向代理控制面,不面向外部租户提供 CDN SaaS 能力。
|
||||
|
||||
它解决的是一套更直接的运维问题:
|
||||
|
||||
@@ -61,24 +61,24 @@ ATSFlare 当前定位为内部自用的反向代理控制面,不面向外部
|
||||
|
||||
### 仪表盘总览
|
||||
|
||||

|
||||

|
||||
|
||||
### 节点详情与安装命令
|
||||
|
||||

|
||||

|
||||
|
||||
### 配置发布与版本管理
|
||||
|
||||

|
||||

|
||||
|
||||
## 系统架构
|
||||
|
||||
```text
|
||||
ATSFlare Server (Gin + GORM + SQLite + Web UI)
|
||||
OpenFlare Server (Gin + GORM + SQLite + Web UI)
|
||||
|
|
||||
| HTTP API / Config Pull
|
||||
v
|
||||
ATSFlare Agent (register / heartbeat / sync / apply / update)
|
||||
OpenFlare Agent (register / heartbeat / sync / apply / update)
|
||||
|
|
||||
v
|
||||
Local Nginx or Docker Nginx
|
||||
@@ -89,15 +89,15 @@ Origin
|
||||
|
||||
职责划分:
|
||||
|
||||
* `atsf_server`:管理端 UI、管理 API、Agent API、配置渲染、发布与激活、状态存储
|
||||
* `atsf_agent`:节点注册、心跳、同步、本地文件写入、Nginx 校验、reload、回滚、自更新
|
||||
* `atsf_server/web`:新版管理端前端,静态导出后由 Go Server 托管
|
||||
* `openflare_server`:管理端 UI、管理 API、Agent API、配置渲染、发布与激活、状态存储
|
||||
* `openflare_agent`:节点注册、心跳、同步、本地文件写入、Nginx 校验、reload、回滚、自更新
|
||||
* `openflare_server/web`:新版管理端前端,静态导出后由 Go Server 托管
|
||||
|
||||
## 仓库结构
|
||||
|
||||
* `atsf_server`:Gin + GORM + SQLite 单体控制面
|
||||
* `atsf_server/web`:Next.js 15 App Router 管理端前端
|
||||
* `atsf_agent`:Go 单体 Agent
|
||||
* `openflare_server`:Gin + GORM + SQLite 单体控制面
|
||||
* `openflare_server/web`:Next.js 15 App Router 管理端前端
|
||||
* `openflare_agent`:Go 单体 Agent
|
||||
* `scripts`:安装脚本与辅助脚本
|
||||
* `docs`:设计、开发规范、部署、配置项等文档
|
||||
|
||||
@@ -107,22 +107,22 @@ Origin
|
||||
|
||||
```yaml
|
||||
services:
|
||||
atsflare:
|
||||
image: ghcr.io/rain-kl/atsflare:latest
|
||||
openflare:
|
||||
image: ghcr.io/rain-kl/openflare:latest
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "3000:3000"
|
||||
environment:
|
||||
SESSION_SECRET: replace-with-random-string
|
||||
SQLITE_PATH: /data/atsflare.db
|
||||
SQLITE_PATH: /data/openflare.db
|
||||
GIN_MODE: release
|
||||
LOG_LEVEL: info
|
||||
PORT: "3000"
|
||||
volumes:
|
||||
- atsflare-data:/data
|
||||
- openflare-data:/data
|
||||
|
||||
volumes:
|
||||
atsflare-data:
|
||||
openflare-data:
|
||||
```
|
||||
|
||||
```bash
|
||||
@@ -141,7 +141,7 @@ docker compose up -d
|
||||
适用于新节点首次接入,Agent 会自动注册并换取节点专属 `agent_token`。
|
||||
|
||||
```bash
|
||||
curl -fsSL https://raw.githubusercontent.com/Rain-kl/ATSFlare/main/scripts/install-agent.sh | bash -s -- \
|
||||
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
|
||||
```
|
||||
@@ -151,7 +151,7 @@ curl -fsSL https://raw.githubusercontent.com/Rain-kl/ATSFlare/main/scripts/insta
|
||||
适用于已经在管理端预创建节点、并拿到节点专属 `agent_token` 的场景。
|
||||
|
||||
```bash
|
||||
curl -fsSL https://raw.githubusercontent.com/Rain-kl/ATSFlare/main/scripts/install-agent.sh | bash -s -- \
|
||||
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
|
||||
```
|
||||
@@ -159,8 +159,8 @@ curl -fsSL https://raw.githubusercontent.com/Rain-kl/ATSFlare/main/scripts/insta
|
||||
说明:
|
||||
|
||||
* `--server-url` 替换为实际控制面地址,例如 `http://192.168.1.10:3000`
|
||||
* 默认安装目录为 `/opt/atsflare-agent`
|
||||
* 脚本会创建 `atsflare-agent.service` 并启动 systemd 服务
|
||||
* 默认安装目录为 `/opt/openflare-agent`
|
||||
* 脚本会创建 `openflare-agent.service` 并启动 systemd 服务
|
||||
* 重复执行安装命令可用于重装或升级 Agent 到最新 Release
|
||||
* 重装时会先删除整个安装目录,再重新生成 `agent.json`、本地状态和二进制;旧数据不会保留
|
||||
|
||||
@@ -182,10 +182,10 @@ curl -fsSL https://raw.githubusercontent.com/Rain-kl/ATSFlare/main/scripts/insta
|
||||
当前仓库的交付形式:
|
||||
|
||||
* Server 二进制发布到 GitHub Releases
|
||||
* Server Docker 镜像发布到 GitHub Container Registry:`ghcr.io/rain-kl/atsflare`
|
||||
* Server Docker 镜像发布到 GitHub Container Registry:`ghcr.io/rain-kl/openflare`
|
||||
* Agent 二进制发布到 GitHub Releases
|
||||
|
||||
Docker 镜像工作流仅构建 `atsf_server`,并产出 `linux/amd64` 与 `linux/arm64` 多架构镜像。
|
||||
Docker 镜像工作流仅构建 `openflare_server`,并产出 `linux/amd64` 与 `linux/arm64` 多架构镜像。
|
||||
|
||||
## 常用配置
|
||||
|
||||
@@ -196,7 +196,7 @@ Docker 镜像工作流仅构建 `atsf_server`,并产出 `linux/amd64` 与 `lin
|
||||
| `PORT` | Server 监听端口 | `3000` |
|
||||
| `GIN_MODE` | Gin 运行模式 | 非 `debug` 时按 release |
|
||||
| `SESSION_SECRET` | Session 签名密钥 | 启动时随机生成 |
|
||||
| `SQLITE_PATH` | SQLite 数据库文件路径 | `atsflare.db` |
|
||||
| `SQLITE_PATH` | SQLite 数据库文件路径 | `openflare.db` |
|
||||
| `SQL_DSN` | MySQL DSN,设置后优先于 SQLite | 空 |
|
||||
| `UPLOAD_PATH` | 上传目录 | `upload` |
|
||||
|
||||
@@ -230,16 +230,16 @@ Docker 镜像工作流仅构建 `atsf_server`,并产出 `linux/amd64` 与 `lin
|
||||
### Server
|
||||
|
||||
```bash
|
||||
cd atsf_server
|
||||
cd openflare_server
|
||||
export SESSION_SECRET='replace-with-random-string'
|
||||
export SQLITE_PATH='./atsflare.db'
|
||||
export SQLITE_PATH='./openflare.db'
|
||||
go run .
|
||||
```
|
||||
|
||||
### Frontend
|
||||
|
||||
```bash
|
||||
cd atsf_server/web
|
||||
cd openflare_server/web
|
||||
corepack enable
|
||||
pnpm install
|
||||
pnpm build
|
||||
@@ -248,20 +248,20 @@ pnpm build
|
||||
### Agent
|
||||
|
||||
```bash
|
||||
cd atsf_agent
|
||||
cd openflare_agent
|
||||
go run ./cmd/agent -config /path/to/agent.json
|
||||
```
|
||||
|
||||
### 常用验证命令
|
||||
|
||||
```bash
|
||||
cd atsf_server
|
||||
GOCACHE=/tmp/atsflare-go-cache go test ./...
|
||||
cd openflare_server
|
||||
GOCACHE=/tmp/openflare-go-cache go test ./...
|
||||
```
|
||||
|
||||
```bash
|
||||
cd atsf_agent
|
||||
GOCACHE=/tmp/atsflare-go-cache go test ./...
|
||||
cd openflare_agent
|
||||
GOCACHE=/tmp/openflare-go-cache go test ./...
|
||||
```
|
||||
|
||||
## 文档导航
|
||||
@@ -304,5 +304,5 @@ GOCACHE=/tmp/atsflare-go-cache go test ./...
|
||||
|
||||
* 超出设计边界的改动,先更新设计文档再编码
|
||||
* Server 继续保持单体结构,不为简单需求引入额外基础设施
|
||||
* 前端统一位于 `atsf_server/web`,请求层统一收敛到 `lib/api/`
|
||||
* 前端统一位于 `openflare_server/web`,请求层统一收敛到 `lib/api/`
|
||||
* 新代码默认遵循当前正式基线,不回退到旧版 CRA / Semantic UI 结构
|
||||
|
||||
Reference in New Issue
Block a user