mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-09-28 05:46:36 +08:00
196bdabc80
- Restructure docs/deployment/server.md into Docker (Quick Start, Production Recommended, Advanced with Jaeger) and Local deployment. - Update docs/guide/quick-start.md default docker-compose to use PostgreSQL, Redis, and ClickHouse as default.
202 lines
6.7 KiB
Markdown
202 lines
6.7 KiB
Markdown
<div align="center">
|
||
|
||
# OpenFlare
|
||
|
||
**[📖 中文](./README.md) | [English](./README.en.md)**
|
||
|
||
OpenFlare 是开源 CDN 编排与边缘安全平台。它支持反向代理、集中式配置同步、内网穿透(Tunnels)、动态 WAF 防护以及防 CC 挑战。
|
||
|
||
</div>
|
||
|
||
<p align="center">
|
||
<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/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/OpenFlare/pkgs/container/openflare">
|
||
<img src="https://img.shields.io/badge/GHCR-ghcr.io%2Frain--kl%2Fopenflare-brightgreen" alt="ghcr">
|
||
</a>
|
||
</p>
|
||
|
||
> [!WARNING]
|
||
> 使用 `root` 用户初次登录系统后,务必修改默认密码 `123456`。
|
||
>
|
||
> BETA 版本为开发测试阶段的临时产物,可能存在未知问题,请勿在生产环境使用。
|
||
|
||
## 文档
|
||
|
||
**https://open-flare.pages.dev**
|
||
|
||
常用入口:
|
||
|
||
* [快速开始](https://open-flare.pages.dev/guide/quick-start)
|
||
* [部署说明](https://open-flare.pages.dev/deployment/deployment)
|
||
* [配置项参考](https://open-flare.pages.dev/reference/configuration)
|
||
* [系统设计](https://open-flare.pages.dev/design/)
|
||
|
||
## 核心能力
|
||
|
||
* **反代配置管理**:以网站规则为聚合边界,支持多域名绑定与多上游负载均衡,统一管理所有 OpenResty 节点的反代配置。
|
||
* **安全内网穿透(Tunnels)**:开源版的 Cloudflare Tunnels。无须公网 IP 或暴露入向端口,通过 Relay 中继节点与 OpenFlared 客户端安全反向穿透内网 Web 服务至公网。
|
||
* **边缘 WAF 安全防护**:提供全局与自定义规则组,支持手动/自动/订阅型 IP 组、MaxMind GeoIP 国家级地域准入、IP 组成员 Checksum 差分同步(无需 Nginx 重载)以及自定义拦截响应。
|
||
* **防 CC 与人机挑战(PoW)**:内置高性能客户端密码学 Proof of Work 挑战(类似 Turnstile),在网关边缘秒级拦截并阻断僵尸网络与爬虫。
|
||
* **Pages 静态托管**:直接上传预构建 ZIP 包,由边缘 Agent 拉取并通过 OpenResty 本地提供服务,支持 SPA Fallback 与内置 API 反向代理配置。
|
||
* **TLS 证书自动化**:支持证书动态上传、多域名证书自动匹配绑定,以及通过 ACME 协议向 Let's Encrypt 自动申请与续期证书。
|
||
* **Uptime Kuma 监控同步**:与 Uptime Kuma 集成,自动差分同步监控站点列表,实时感知节点存活与服务可用状态。
|
||
* **SSO 单点登录**:支持 GitHub OAuth 与标准 OIDC 协议,无缝接入企业身份提供商实现统一登录。
|
||
* **统一观测**:聚合节点请求指标、实时访问日志明细、宿主机与 Nginx 资源快照、健康事件以及网络波动补传缓冲。
|
||
|
||
## 快速开始
|
||
|
||
### 1. 启动 Server
|
||
|
||
使用 docker-compose
|
||
|
||
```yaml
|
||
services:
|
||
openflare:
|
||
image: ghcr.io/rain-kl/openflare-server:latest
|
||
restart: unless-stopped
|
||
env_file: .env
|
||
environment:
|
||
TZ: ${TZ:-Asia/Shanghai}
|
||
ports:
|
||
- "3000:3000"
|
||
volumes:
|
||
- ./uploads:/app/uploads
|
||
depends_on:
|
||
postgres:
|
||
condition: service_healthy
|
||
redis:
|
||
condition: service_healthy
|
||
clickhouse:
|
||
condition: service_healthy
|
||
|
||
postgres:
|
||
image: postgres:17-alpine
|
||
restart: unless-stopped
|
||
environment:
|
||
POSTGRES_DB: openflare
|
||
POSTGRES_USER: openflare
|
||
POSTGRES_PASSWORD: replace-with-strong-password
|
||
volumes:
|
||
- ./data/postgres_data:/var/lib/postgresql/data
|
||
healthcheck:
|
||
test: ["CMD-SHELL", "pg_isready -U openflare -d openflare"]
|
||
interval: 10s
|
||
timeout: 5s
|
||
retries: 5
|
||
|
||
redis:
|
||
image: valkey/valkey:8.0-alpine
|
||
restart: unless-stopped
|
||
command: ["valkey-server", "--appendonly", "yes"]
|
||
volumes:
|
||
- ./data/valkey:/data
|
||
healthcheck:
|
||
test: ["CMD", "valkey-cli", "ping"]
|
||
interval: 10s
|
||
timeout: 5s
|
||
retries: 5
|
||
start_period: 5s
|
||
|
||
clickhouse:
|
||
image: clickhouse/clickhouse-server:25.3-alpine
|
||
restart: unless-stopped
|
||
environment:
|
||
CLICKHOUSE_DB: openflare
|
||
CLICKHOUSE_USER: default
|
||
CLICKHOUSE_PASSWORD: 123456
|
||
CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT: 1
|
||
TZ: ${TZ:-Asia/Shanghai}
|
||
volumes:
|
||
- ./data/clickhouse_data:/var/lib/clickhouse
|
||
healthcheck:
|
||
test: ["CMD", "clickhouse-client", "--query", "SELECT 1"]
|
||
interval: 10s
|
||
timeout: 5s
|
||
retries: 5
|
||
start_period: 15s
|
||
```
|
||
|
||
详细部署说明见 [部署文档](https://open-flare.pages.dev/deployment/deployment)。
|
||
|
||
访问地址:`http://localhost:3000`
|
||
|
||
默认账号:
|
||
|
||
* 用户名:`root`
|
||
* 密码:`123456`
|
||
|
||
### 2. 安装 Agent
|
||
|
||
安装 Agent 前请先在节点上安装 OpenResty,或改用内置 OpenResty 的 Agent Docker 镜像。
|
||
|
||
你可以在控制面板的节点管理->详情->节点信息->节点标识与部署复制安装命令,或直接使用下面的脚本:
|
||
|
||
#### Docker 部署
|
||
|
||
Docker 部署可直接运行 Agent 镜像:
|
||
|
||
```bash
|
||
docker pull ghcr.io/rain-kl/openflare-agent:latest
|
||
docker rm -f openflare-agent 2>/dev/null || true
|
||
docker run -d --name openflare-agent --restart unless-stopped \
|
||
-p 80:80 -p 443:443/tcp -p 443:443/udp \
|
||
-e OPENFLARE_SERVER_URL=http://your-server:3000 \
|
||
-e OPENFLARE_AGENT_TOKEN=YOUR_AGENT_TOKEN \
|
||
ghcr.io/rain-kl/openflare-agent:latest
|
||
```
|
||
|
||
## 界面预览
|
||
|
||
### 仪表盘总览
|
||
|
||

|
||
|
||
### 节点详情
|
||
|
||

|
||
|
||
### 配置新增
|
||
|
||

|
||
|
||
## 管理端与接口
|
||
|
||
管理端当前覆盖:
|
||
|
||
* 反代规则
|
||
* 配置版本
|
||
* 节点管理
|
||
* 应用记录
|
||
* TLS 证书
|
||
* 域名管理
|
||
* Pages 静态托管
|
||
* WAF 规则组
|
||
* 内网穿透(Tunnels)
|
||
* Uptime Kuma 监控同步
|
||
* SSO 登录配置
|
||
* 用户管理
|
||
* 设置
|
||
* 版本更新
|
||
* PoW 规则
|
||
|
||
登录管理端后,可访问 Swagger UI:`/swagger/index.html`
|
||
|
||
## 开源协议
|
||
|
||
本项目采用 [Apache License 2.0](./LICENSE) 开源。
|
||
|
||
## Star History
|
||
|
||
<a href="https://www.star-history.com/?repos=Rain-kl%2FOpenFlare&type=date&legend=bottom-right">
|
||
<picture>
|
||
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/chart?repos=Rain-kl/OpenFlare&type=date&theme=dark&legend=top-left" />
|
||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=Rain-kl/OpenFlare&type=date&legend=top-left" />
|
||
<img alt="Star History Chart" src="https://api.star-history.com/chart?repos=Rain-kl/OpenFlare&type=date&legend=top-left" />
|
||
</picture>
|
||
</a>
|