From adee4f7b273a4aa9caf7efc6699b5496d9e0439a Mon Sep 17 00:00:00 2001 From: ryan Date: Sun, 9 Aug 2026 11:22:35 +0800 Subject: [PATCH] docs: update --- README.md | 48 ++------ docs/assets/readme/access-logs.png | Bin 0 -> 59887 bytes docs/assets/readme/domain_overview.png | Bin 0 -> 68250 bytes docs/assets/readme/waf.png | Bin 0 -> 78583 bytes docs/changelog/index.md | 14 +-- docs/deployment/agent.md | 87 ++----------- docs/deployment/deployment.md | 66 +--------- docs/deployment/openflared.md | 36 +----- docs/deployment/relay.md | 44 +------ docs/deployment/server.md | 164 ++----------------------- docs/guide/quick-start.md | 55 ++------- frontend/components/layout/sidebar.tsx | 2 +- 12 files changed, 60 insertions(+), 456 deletions(-) create mode 100644 docs/assets/readme/access-logs.png create mode 100644 docs/assets/readme/domain_overview.png create mode 100644 docs/assets/readme/waf.png diff --git a/README.md b/README.md index 5f67b245..c92e6a48 100644 --- a/README.md +++ b/README.md @@ -54,16 +54,25 @@ OpenFlare 是开源 CDN 编排与边缘安全平台。它支持反向代理、 ![OpenFlare dashboard overview](./docs/assets/readme/dashboard-overview.png) -### 节点详情 +### 访问日志 -![OpenFlare node detail](./docs/assets/readme/node-detail.png) +![OpenFlare version release](./docs/assets/readme/domain_overview.png) -### 配置新增 +### WAF 防护 -![OpenFlare version release](./docs/assets/readme/proxy-route-detail.png) +![OpenFlare version release](./docs/assets/readme/waf.png) ## 快速开始 +### 硬件配置推荐 + +| 组件 | 最低硬件配额 | 推荐硬件配额 | 说明 | +| --- |-------------------------------| --- | --- | +| **Server 控制面** | 1 核 CPU / 2 GB 内存 / 20 GB 磁盘 | 2 核 CPU / 4 GB 内存 / 50 GB+ 磁盘 | 磁盘用量需根据访问日志留存时长与并发流量合理扩容 | +| **Agent 数据面** | 1 核 CPU / 512 MB 内存 / 2 GB 磁盘 | 2 核 CPU / 2 GB 内存 / 10 GB+ 磁盘 | 根据 OpenResty 的并发代理连接量与 WAF 拦截处理扩容 | +| **Relay 中继节点**| 1 核 CPU / 1 GB 内存 / 5 GB 磁盘 | 2 核 CPU / 2 GB 内存 / 20 GB 磁盘 | frps 传输中继吞吐量主要受带宽与 CPU 吞吐能力限制 | +| **OpenFlared 客户端**| 1 核 CPU / 256 MB 内存 / 1 GB 磁盘 | 1 核 CPU / 512 MB 内存 / 5 GB 磁盘 | 独立运行于内网,自身资源占用极小,保障网络吞吐即可 | + ### 1. 启动 Server 使用 docker-compose @@ -72,11 +81,6 @@ OpenFlare 是开源 CDN 编排与边缘安全平台。它支持反向代理、 # 下载环境变量模板并创建 .env 文件 curl -o .env.example https://raw.githubusercontent.com/Rain-kl/OpenFlare/refs/heads/main/.env.example cp .env.example .env - -# ClickHouse 服务端:curl performance.xml 到 ./config/clickhouse,并以单文件方式挂载到 config.d -mkdir -p ./config/clickhouse -curl -fsSL -o ./config/clickhouse/performance.xml \ - https://raw.githubusercontent.com/Rain-kl/OpenFlare/refs/heads/main/config/clickhouse/performance.xml ``` ```yaml @@ -96,8 +100,6 @@ services: condition: service_healthy redis: condition: service_healthy - clickhouse: - condition: service_healthy postgres: image: postgres:17-alpine @@ -127,34 +129,10 @@ services: retries: 5 start_period: 5s - clickhouse: - image: clickhouse/clickhouse-server:25.3-alpine - restart: unless-stopped - environment: - CLICKHOUSE_DB: ${CLICKHOUSE_NAME:-openflare} - CLICKHOUSE_USER: ${CLICKHOUSE_USERNAME:-default} - CLICKHOUSE_PASSWORD: ${CLICKHOUSE_PASSWORD:-replace-with-clickhouse-password} - CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT: 1 - TZ: ${TZ:-Asia/Shanghai} - ulimits: - nofile: - soft: 262144 - hard: 262144 - volumes: - - openflare_clickhouse_data:/var/lib/clickhouse - - ./config/clickhouse/performance.xml:/etc/clickhouse-server/config.d/performance.xml:ro - healthcheck: - test: ["CMD", "clickhouse-client", "--user", "${CLICKHOUSE_USERNAME:-default}", "--password", "${CLICKHOUSE_PASSWORD:-replace-with-clickhouse-password}", "--query", "SELECT 1"] - interval: 10s - timeout: 5s - retries: 5 - start_period: 15s - volumes: openflare_uploads: openflare_postgres_data: openflare_redis_data: - openflare_clickhouse_data: ``` 详细部署说明见 [部署文档](https://open-flare.pages.dev/deployment/deployment)。 diff --git a/docs/assets/readme/access-logs.png b/docs/assets/readme/access-logs.png new file mode 100644 index 0000000000000000000000000000000000000000..4f993e95789f7aa429fc07601c6c8d5add4308e3 GIT binary patch literal 59887 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 literal 0 HcmV?d00001 diff --git a/docs/assets/readme/domain_overview.png b/docs/assets/readme/domain_overview.png new file mode 100644 index 0000000000000000000000000000000000000000..b436091806270dd7eea66f21e98bda2f2b7f6623 GIT binary patch literal 68250 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

>l^`NtP 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

RxVPd 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 literal 0 HcmV?d00001 diff --git a/docs/assets/readme/waf.png b/docs/assets/readme/waf.png new file mode 100644 index 0000000000000000000000000000000000000000..2277ada622f80cd9fc2a510f5590e8acb7bc4347 GIT binary patch literal 78583 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�l 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 T_@8EwKOZ`vwLfv+-~ap%Lv74; literal 0 HcmV?d00001 diff --git a/docs/changelog/index.md b/docs/changelog/index.md index 0aa30942..cb9a7766 100644 --- a/docs/changelog/index.md +++ b/docs/changelog/index.md @@ -11,20 +11,16 @@ sidebar: false ## 重大变更 > [!IMPORTANT] -> -> 3.1.2 版本更新了 CLickHouse 部署配置。 -> -> 3.0.0 版本为 Wavelet 平台迁移与架构重构版本,涉及数据库表结构、环境变量以及前后端底层架构的重大变更。请务必在升级前备份数据库,并且更新到 V2.3.4。 -> 目前已知的兼容性问题: -> -> - Pages 无法迁移, 升级前请先手动下载并备份 Pages 静态站点的 ZIP 包,升级后重新创建。 -> - 性能调优参数重置, 升级后请重新配置 +> +>3.5.1 版本解耦了日志存储,ClickHouse 变为可选项,如果想切换数据库, 点击 「任务管理」 -> 「切换日志数据库」任务,按提示迁移数据并切换主库。 +> + ## [Unreleased] ### 新增 -- 日志存储解耦:新增日志存储抽象(`internal/repository/logstore`),ClickHouse 变为可选项,不启用时由 PostgreSQL/SQLite 承担全部日志功能;新增「切换日志数据库」任务支持 PostgreSQL/SQLite 与 ClickHouse 间数据迁移(迁移期间冻结日志写入,成功后自动切换主库并保留源数据);日志保留时间改为按存储库在业务配置中设置(`log_retention_days_*`),过期清理并入系统垃圾清理每日任务。 +- 日志存储解耦:ClickHouse 变为可选项,不启用时由 PostgreSQL/SQLite 承担全部日志功能;新增「切换日志数据库」任务支持 PostgreSQL/SQLite 与 ClickHouse 间数据迁移(迁移期间冻结日志写入,成功后自动切换主库并保留源数据);日志保留时间改为按存储库在业务配置中设置(`log_retention_days_*`),过期清理并入系统垃圾清理每日任务。 ### 变更 diff --git a/docs/deployment/agent.md b/docs/deployment/agent.md index a622f2ec..b30de243 100644 --- a/docs/deployment/agent.md +++ b/docs/deployment/agent.md @@ -136,55 +136,6 @@ docker run -d --name openflare-agent --restart unless-stopped \ > **Pages 持久化** > 默认将 Pages 部署目录挂载到 Docker 命名卷 `openflare-agent-pages`(容器内路径 `/data/var/lib/openflare/pages`)。重建或升级 Agent 容器时无需重新拉取静态站点包。 -> [!NOTE] -> **非 Root 安全加固运行** -> Agent 容器内部已完成安全加固,在启动后会统一以低权限非 root 用户 `openflare` 运行。 -> 容器已内置了 `cap_net_bind_service` 内核能力,使得低权限进程依然能够正常监听宿主机的 `80` 和 `443` 特权端口。 -> 同时,OpenResty 运行时所需的各种临时路径(包括 PID 路径、各类临时缓存目录如 `client_body_temp_path`、`proxy_temp_path` 等)都由 Agent 控制器动态渲染并自动重定向至容器内的 `/data` 目录,彻底避免在非 root 权限运行时写入默认系统路径而导致的权限拒绝错误(Permission Denied)。 -> 具体物理缓存写入路径为: -> * 临时缓存目录:`/data/var/cache/nginx` -> * 代理缓存目录:`/data/var/cache/openflare_proxy` - -## 启动与验证 - -systemd 环境: - -```bash -systemctl status openflare-agent -journalctl -u openflare-agent -f -``` - -手动启动: - -```bash -/opt/openflare-agent/openflare-agent -config /opt/openflare-agent/agent.json -``` - -源码运行: - -```bash - -export LOG_LEVEL='info' -go run ./cmd/agent -config /path/to/agent.json -``` - -编译后二进制运行: - -```bash - -go build -o openflare-agent ./cmd/agent -export LOG_LEVEL='info' -./openflare-agent -config /path/to/agent.json -``` - -在管理端确认: - -| 位置 | 期望结果 | -| --- | --- | -| 节点列表 | 节点在线 | -| 节点详情 | 能看到心跳时间、当前版本和基础资源信息 | -| 应用记录 | 发布配置后出现应用结果 | - ## 卸载 ### 交互式卸载 (推荐) @@ -195,38 +146,14 @@ export LOG_LEVEL='info' curl -fsSL https://raw.githubusercontent.com/Rain-kl/OpenFlare/main/scripts/uninstall-agent.sh | bash ``` -### 自动化 (非交互式) 卸载 +### 卸载 -使用命令行传参进行无人值守卸载。 - -本地卸载(默认): - -```bash -curl -fsSL https://raw.githubusercontent.com/Rain-kl/OpenFlare/main/scripts/uninstall-agent.sh | bash -s -- --install-dir /opt/openflare-agent -``` - -Docker 容器卸载: - -```bash -curl -fsSL https://raw.githubusercontent.com/Rain-kl/OpenFlare/main/scripts/uninstall-agent.sh | bash -s -- --docker -``` - -支持参数: - -| 参数 | 说明 | -| --- | --- | -| `--install-dir` | 安装目录,默认 `/opt/openflare-agent`(仅本地卸载生效) | -| `--service-name` | systemd 服务名,默认 `openflare-agent`(仅本地卸载生效) | -| `--docker` | 使用 Docker 容器方式卸载 | -| `--method` | 卸载方式,可选 `local` 或 `docker`(默认 `local`) | - -本地卸载只会移除 Agent 服务、进程和安装目录,不会删除本机 OpenResty。Docker 卸载会停止并删除 `openflare-agent` 容器,交互模式下还可以选择是否清理对应的 Docker 镜像。 +停止并删除 `openflare-agent` 容器即可 ## 常见问题 -| 现象 | 处理步骤 | -| --- | --- | -| `agent_token 和 discovery_token 不能同时为空` | 检查 `agent.json` 至少配置了一个 Token | -| 节点一直离线 | 在 Agent 节点执行 `curl -I http://your-server:3000`,确认 Server 地址可达 | -| OpenResty 没有启动 | 查看 `journalctl -u openflare-agent`,确认 `openresty_path` 可执行,80/443 端口未被占用,且运行用户(如 `openflare`)对数据目录具有读写权限 | -| 发布后重复失败 | Agent 会阻断同一 `version + checksum` 的重复应用;需要修正配置后重新发布,或激活旧版本回滚 | +| 现象 | 处理步骤 | +| --- |---------------------------------------------------------------------------------------------------------| +| `agent_token 和 discovery_token 不能同时为空` | 检查 `agent.json` 至少配置了一个 Token | +| 节点一直离线 | 在 Agent 节点执行 `curl -I http://your-server:3000`,确认 Server 地址可达 | +| 发布后重复失败 | Agent 会阻断同一 `version + checksum` 的重复应用;在节点尝试强制同步,或者重新发布版本 | diff --git a/docs/deployment/deployment.md b/docs/deployment/deployment.md index e42e21b8..ea995c7b 100644 --- a/docs/deployment/deployment.md +++ b/docs/deployment/deployment.md @@ -47,33 +47,13 @@ Internal Service (192.168.x.x) ## 前置条件 -Server: - -| 项目 | 要求 | -| --- | --- | -| Go | `1.25+`,仅源码运行需要 | -| Node.js | `18+`,仅源码构建管理端需要 | -| 数据库 | 可写 SQLite 文件目录,或可访问的 PostgreSQL 实例 | -| 端口 | 默认监听 `3000` | - -Agent: - -| 项目 | 要求 | -| --- | --- | -| 系统 | 安装脚本支持 Linux 和 macOS;systemd 服务仅在 Linux + systemd 环境创建 | -| 架构 | `amd64` 或 `arm64` | -| OpenResty | 本地部署需要可执行 `openresty`,或通过 `--openresty-path` 指定路径 | -| Docker | 仅 Docker 部署 Agent 镜像时需要 | -| 网络 | Agent 节点必须能访问 Server 地址 | -| GeoIP | WAF 地域规则使用 OpenResty 读取本地 MaxMind mmdb;镜像内置文件或首次下载,Agent 负责周期更新 | - ### 硬件配置推荐 -| 组件 | 最低硬件配额 | 推荐硬件配额 | 说明 | -| --- | --- | --- | --- | -| **Server 控制面** | 1 核 CPU / 1 GB 内存 / 10 GB 磁盘 | 2 核 CPU / 4 GB 内存 / 50 GB+ 磁盘 | 磁盘用量需根据访问日志留存时长与并发流量合理扩容 | +| 组件 | 最低硬件配额 | 推荐硬件配额 | 说明 | +| --- |-------------------------------| --- | --- | +| **Server 控制面** | 1 核 CPU / 2 GB 内存 / 20 GB 磁盘 | 2 核 CPU / 4 GB 内存 / 50 GB+ 磁盘 | 磁盘用量需根据访问日志留存时长与并发流量合理扩容 | | **Agent 数据面** | 1 核 CPU / 512 MB 内存 / 2 GB 磁盘 | 2 核 CPU / 2 GB 内存 / 10 GB+ 磁盘 | 根据 OpenResty 的并发代理连接量与 WAF 拦截处理扩容 | -| **Relay 中继节点**| 1 核 CPU / 1 GB 内存 / 5 GB 磁盘 | 2 核 CPU / 2 GB 内存 / 20 GB 磁盘 | frps 传输中继吞吐量主要受带宽与 CPU 吞吐能力限制 | +| **Relay 中继节点**| 1 核 CPU / 1 GB 内存 / 5 GB 磁盘 | 2 核 CPU / 2 GB 内存 / 20 GB 磁盘 | frps 传输中继吞吐量主要受带宽与 CPU 吞吐能力限制 | | **OpenFlared 客户端**| 1 核 CPU / 256 MB 内存 / 1 GB 磁盘 | 1 核 CPU / 512 MB 内存 / 5 GB 磁盘 | 独立运行于内网,自身资源占用极小,保障网络吞吐即可 | ## Docker Compose 部署 Server @@ -169,41 +149,3 @@ curl -fsSL https://raw.githubusercontent.com/Rain-kl/OpenFlare/main/scripts/inst systemctl status openflare-agent journalctl -u openflare-agent -f ``` - -## 手动运行 Agent - -源码运行: - -```bash - -export LOG_LEVEL='info' -go run ./cmd/agent -config /path/to/agent.json -``` - -编译后二进制运行: - -```bash - -go build -o openflare-agent ./cmd/agent -export LOG_LEVEL='info' -./openflare-agent -config /path/to/agent.json -``` - -最小 `agent.json` 示例: - -```json -{ - "server_url": "http://127.0.0.1:3000", - "agent_token": "replace-with-node-auth-token", - "data_dir": "./data", - "openresty_path": "openresty", - "heartbeat_interval": 3000, - "request_timeout": 10000 -} -``` - -未配置 `openresty_path` 时,Agent 默认调用 `openresty`。 - -默认情况下,Agent 在 HTTP 心跳成功后会尝试升级为 WebSocket。升级成功时,Server 发布或激活配置会立即通知 Agent;如果 WebSocket 无法建立或意外断开,Agent 会自动退回 HTTP 心跳同步。 - -WAF 地域规则依赖 Agent 本地 `GeoLite2-Country.mmdb` / `GeoLite2-City.mmdb`(OpenResty `resty.maxminddb` 读磁盘路径)。Docker 镜像会将 MMDB COPY 到 `data_dir/etc/openflare/`;裸二进制安装时若文件缺失则首次启动按配置 URL 下载。Agent 按配置周期尝试更新;更新失败只记录警告,不影响配置同步与 OpenResty reload。MMDB **不**再嵌入 agent 二进制。Server 控制面可选 MaxMind 提供方仍**仅内嵌 Country**(约 9MB,不含 City)用于离线 seed。 diff --git a/docs/deployment/openflared.md b/docs/deployment/openflared.md index 52482474..66d0a933 100644 --- a/docs/deployment/openflared.md +++ b/docs/deployment/openflared.md @@ -34,7 +34,7 @@ --- -## Docker 运行(推荐) +## Docker 运行 Docker 部署是内网运行最简单也最安全的方式。官方的 `openflared` 镜像已经内置了客户端控制器以及 `frpc v0.69.0` 二进制运行时,无需额外搭建环境。 @@ -51,40 +51,6 @@ docker run -d --name openflared --restart unless-stopped \ --- -## 宿主机手动运行 - -如果您需要直接在内网的 Linux/macOS/Windows 宿主机上独立运行: - -### 1. 编译二进制 - -```bash -go build -o bin/flared ./cmd/flared -``` - -### 2. 准备 `flared.json` - -在程序同级目录下创建 `flared.json` 配置文件: - -```json -{ - "server_url": "http://your-server-ip:3000", - "tunnel_token": "your-tunnel-auth-token", - "frpc_path": "/usr/local/bin/frpc", - "data_dir": "./data", - "heartbeat_interval": "10s", - "sync_interval": "30s" -} -``` - -### 3. 运行服务 - -```bash -export LOG_LEVEL='info' -./flared -config ./flared.json -``` - ---- - ## 启动与验证 ### 1. 自动同步逻辑 diff --git a/docs/deployment/relay.md b/docs/deployment/relay.md index fbf486d9..f4befcb0 100644 --- a/docs/deployment/relay.md +++ b/docs/deployment/relay.md @@ -15,7 +15,7 @@ - 必须确保 `bindPort`(frpc 连接端口,默认 `7000`)可被公网/内网客户端访问。 - 必须确保 `vhostHTTPPort`(HTTP Vhost 端口,默认 `8080`)处于空闲状态,Agent 将在此端口上与 frps 进行流量传递。 3. **软件依赖**(仅限宿主机直接部署): - - 本地需有可执行的 `frps` 二进制文件(建议版本为 `v0.61.0+` 或最新稳定版 `v0.69.0`),或通过参数显式指定路径。 + - 本地需有可执行的 `frps` 二进制文件,或通过参数显式指定路径。 --- @@ -40,9 +40,9 @@ --- -## Docker 运行(推荐) +## Docker 运行) -Docker 运行是 TunnelRelay 节点最便捷的部署方案。官方镜像内置了 `openflare-relay` 控制器与 `frps v0.69.0` 运行时,开箱即用。 +Docker 运行是 TunnelRelay 节点最便捷的部署方案。官方镜像内置了 `openflare-relay` 控制器与 `frps` 运行时,开箱即用。 ```bash docker pull ghcr.io/rain-kl/openflare-relay:latest @@ -67,39 +67,6 @@ docker run -d --name openflare-relay --restart unless-stopped \ --- -## 宿主机手动运行 - -如果您倾向于在物理机或虚拟机上直接运行: - -### 1. 编译二进制 - -```bash -go build -o bin/openflare-relay ./cmd/relay -``` - -### 2. 准备 `relay.json` - -在程序同级目录下创建 `relay.json` 配置文件: - -```json -{ - "server_url": "http://127.0.0.1:3000", - "agent_token": "your-relay-node-agent-token", - "frps_path": "/usr/local/bin/frps", - "data_dir": "./data", - "heartbeat_interval": "10s", - "request_timeout": "10s" -} -``` - -### 3. 运行服务 - -```bash -export LOG_LEVEL='info' -./openflare-relay -config ./relay.json -``` - ---- ## 启动与验证 @@ -110,11 +77,6 @@ export LOG_LEVEL='info' docker logs -f openflare-relay ``` -如果是在 Linux 上通过 Systemd 托管的,可执行: -```bash -journalctl -u openflare-relay -f -``` - ### 2. 验证运行状态 启动成功后,Relay 将进行以下工作: diff --git a/docs/deployment/server.md b/docs/deployment/server.md index 292ecfd2..935e2e30 100644 --- a/docs/deployment/server.md +++ b/docs/deployment/server.md @@ -6,7 +6,8 @@ OpenFlare Server 是 Gin + GORM 单体控制面,负责管理端 UI、管理 AP > [!IMPORTANT] > **关于外部依赖**: -> OpenFlare 系统内建了对后台异步任务(Asynq 框架)及海量节点日志分析与度量指标(观测面板)的支持。因此,**无论采用何种部署模式,系统都必须依赖 Redis(或 Valkey)与 ClickHouse 的运行**。各个部署方案的主要差异在于主关系型数据库的选择(SQLite vs PostgreSQL)以及是否启用链路追踪服务(Jaeger)。 +> OpenFlare 系统内建了对后台异步任务(Asynq 框架)的支持。因此,**无论采用何种部署模式,系统都必须依赖 Redis(或 Valkey)**。各个部署方案的主要差异在于主关系型数据库的选择(SQLite vs PostgreSQL)以及是否启用链路追踪服务(Jaeger)。 +> 若业务流量过大, 建议使用 ClickHouse 存储日志。 > [!TIP] > **ClickHouse 服务端性能配置(推荐挂载)** @@ -37,11 +38,11 @@ volumes: 使用 Docker 部署可以免去本地配置 Go 与 Node.js 前端构建环境的麻烦。根据你的服务器硬件配置及业务需求,你可以选择以下三种方案之一: -### 1. 快速启动 (SQLite + Redis + ClickHouse) +### 1. 快速启动 (SQLite + Redis) > **适用场景**:测试体验、轻量化单机部署。 > -> **特点**:主关系型数据库使用内建的 SQLite 文件 +> **特点**:主关系型数据库使用 SQLite 创建 `docker-compose.yaml` 文件: @@ -70,8 +71,6 @@ services: depends_on: redis: condition: service_healthy - clickhouse: - condition: service_healthy redis: image: valkey/valkey:8.0-alpine @@ -84,47 +83,13 @@ services: interval: 10s timeout: 5s retries: 5 - - 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: Asia/Shanghai - ulimits: - nofile: - soft: 262144 - hard: 262144 - volumes: - - ./data/clickhouse_data:/var/lib/clickhouse - - ./config/clickhouse/performance.xml:/etc/clickhouse-server/config.d/performance.xml:ro - healthcheck: - test: ["CMD", "clickhouse-client", "--user", "default", "--password", "123456", "--query", "SELECT 1"] - interval: 10s - timeout: 5s - retries: 5 - start_period: 15s -``` - -运行启动命令: - -```bash -mkdir -p ./config/clickhouse -curl -fsSL -o ./config/clickhouse/performance.xml \ - https://raw.githubusercontent.com/Rain-kl/OpenFlare/refs/heads/main/config/clickhouse/performance.xml -docker compose up -d ``` --- -### 2. 生产推荐 (PostgreSQL + Redis + ClickHouse) +### 2. 小流量业务场景 (PostgreSQL + Redis) -> **适用场景**:生产环境、多节点集群管理、高并发高可用要求。 -> -> **特点**:完全分层架构。启用专用的 PostgreSQL 服务作为主关系数据库,Redis 负责高并发分布式锁、会话缓存与异步队列,ClickHouse 承载海量日志异步 Flush 与观测指标。 +> **适用场景**:生产环境、业务流量中小, PostgreSQL 不会成为日志记录的瓶颈。 创建 `docker-compose.yaml` 文件: @@ -145,8 +110,6 @@ services: condition: service_healthy redis: condition: service_healthy - clickhouse: - condition: service_healthy postgres: image: postgres:17-alpine @@ -176,45 +139,18 @@ services: retries: 5 start_period: 5s - clickhouse: - image: clickhouse/clickhouse-server:25.3-alpine - restart: unless-stopped - environment: - CLICKHOUSE_DB: ${CLICKHOUSE_NAME:-openflare} - CLICKHOUSE_USER: ${CLICKHOUSE_USERNAME:-default} - CLICKHOUSE_PASSWORD: ${CLICKHOUSE_PASSWORD:-replace-with-clickhouse-password} - CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT: 1 - TZ: ${TZ:-Asia/Shanghai} - ulimits: - nofile: - soft: 262144 - hard: 262144 - volumes: - - openflare_clickhouse_data:/var/lib/clickhouse - - ./config/clickhouse/performance.xml:/etc/clickhouse-server/config.d/performance.xml:ro - healthcheck: - test: ["CMD", "clickhouse-client", "--user", "${CLICKHOUSE_USERNAME:-default}", "--password", "${CLICKHOUSE_PASSWORD:-replace-with-clickhouse-password}", "--query", "SELECT 1"] - interval: 10s - timeout: 5s - retries: 5 - start_period: 15s - volumes: openflare_uploads: openflare_postgres_data: openflare_redis_data: - openflare_clickhouse_data: ``` 创建对应的 `.env` 文件来配置系统环境变量(可复制并修改根目录下的 `.env.example`): ```bash -mkdir -p ./config/clickhouse -curl -fsSL -o ./config/clickhouse/performance.xml \ - https://raw.githubusercontent.com/Rain-kl/OpenFlare/refs/heads/main/config/clickhouse/performance.xml curl -o .env.example https://raw.githubusercontent.com/Rain-kl/OpenFlare/refs/heads/main/.env.example cp .env.example .env -# 编辑 .env 文件,填入对应的数据库、Redis、ClickHouse 连接地址、密码与 APP_SESSION_SECRET +# 编辑 .env 文件,填入对应的数据库、Redis、密码与 APP_SESSION_SECRET docker compose up -d ``` @@ -223,9 +159,9 @@ docker compose up -d ### 3. 进阶版 (含 Jaeger 链路追踪的完整编排) -> **适用场景**:开发者调试、系统深度性能诊断、高级可观测性追溯。 +> **适用场景**:大流量场景, 需要进行链路性能指标追踪。 > -> **特点**:在“生产推荐”全家桶的基础上,联动拉起 Jaeger 作为 OpenTelemetry (OTel) 链路追踪的后端,收集 Server 运行时各个 API 请求的 Span Trace 信息。 +> **特点**:在“生产推荐”全家桶的基础上,使用 ClickHouse 存储日志, 联动 Jaeger 作为 OpenTelemetry (OTel) 链路追踪的后端。 创建 `docker-compose.yaml` 文件: @@ -340,64 +276,6 @@ docker compose up -d --- -## 方式二:本地部署 (源码/二进制启动) - -如果你不希望使用 Docker,也可以直接在本地或虚拟机上从源码构建和运行 Server。由于后台异步任务和可观测指标分析为系统核心防线,**本地部署时依然需要连接外部 Redis 与 ClickHouse 实例**。 - -### 前置条件 - -| 项目 | 要求 | -| --- | --- | -| Go | `1.25+` | -| Node.js | `18+` | -| pnpm | 推荐通过 `corepack enable` 使用项目声明的 pnpm | -| 外部服务 | 必须在本地或远端运行 Redis (Valkey) 和 ClickHouse 实例;ClickHouse 建议挂载仓库提供的 `performance.xml`(见上文「ClickHouse 服务端性能配置」) | - -### 1. 构建管理端前端 - -Go Server 运行时需要嵌入前端静态资源。编译 Go 二进制前需要先构建前端静态产物并输出到 Go 服务目录: - -```bash -cd frontend -corepack enable -pnpm install -pnpm build:embed -cd .. -``` - -> **常用前端代码检查命令**: -> * `pnpm lint` -> * `pnpm typecheck` - -### 2. 使用 SQLite 启动 - -关系数据库存储在本地 SQLite 文件,但依然需要提供 Redis 和 ClickHouse 连接配置: - -```bash -cp config.example.yaml config.yaml -# 编辑 config.yaml: -# 1. 设置 app.session_secret 为一个随机的长字符串 -# 2. 将 database.enabled 设为 false 以启用内置 SQLite -# 3. 将 redis.addrs 与 clickhouse.hosts 修改为你的本地/局域网服务连接信息 - -# 启动 Server(默认融合模式) -go run main.go all -``` - -### 3. 使用 PostgreSQL 启动 - -```bash -cp config.example.yaml config.yaml -# 编辑 config.yaml: -# 1. 设置 app.session_secret -# 2. 将 database.enabled 设为 true,并完整设置 database.*、redis.*、clickhouse.* 字段连接参数 - -# 启动 Server(默认融合模式) -go run main.go all -``` - ---- - ## 首次登录 Server 默认监听 `3000` 端口,启动成功后可以使用浏览器访问:`http://localhost:3000`。 @@ -413,28 +291,12 @@ Server 默认监听 `3000` 端口,启动成功后可以使用浏览器访问 --- -## 常用运维指南 - -### 1. 命令行子服务分进程启动 +## 分布式部署 在大型生产部署中,你可以选择将 Server 按职责拆分为多个进程运行: ```bash -go run main.go api # 仅启动管理端与节点通信的 API 服务 -go run main.go worker # 仅启动后台任务的 Worker 服务 -go run main.go scheduler # 仅启动定时任务的 Scheduler 服务 -go run main.go all # 融合模式(在一进程内运行上述所有服务,默认) -``` - -### 2. 状态验证 - -```bash -# 验证编译是否通过 -go build ./... - -# 运行内部单元测试 -go test ./internal/apps/openflare/... -count=1 - -# 检查服务健康状态 -curl http://127.0.0.1:3000/api/v1/d/status +go run main.go api # 仅启动管理端与节点通信的 API 服务 +go run main.go worker # 仅启动后台任务的 Worker 服务 +go run main.go scheduler # 仅启动定时任务的 Scheduler 服务 ``` diff --git a/docs/guide/quick-start.md b/docs/guide/quick-start.md index 20743df2..c1e7cef1 100644 --- a/docs/guide/quick-start.md +++ b/docs/guide/quick-start.md @@ -14,12 +14,12 @@ Agent 统一通过 OpenResty 二进制控制运行时。本地部署需要节点 ## 环境要求 -| 项目 | 要求 | -| --- | --- | -| Docker / Docker Compose | 用于启动 Server 及其依赖的 PostgreSQL、Redis 和 ClickHouse 容器;如采用 Docker Agent,也用于运行 Agent | -| OpenResty | 本地安装 Agent 时需要可执行 `openresty`,或在安装脚本中指定路径 | -| 可访问端口 | Server 默认监听 `3000`,Agent 节点需要能访问 Server 地址 | -| 浏览器 | 用于访问管理端 | +| 项目 | 要求 | +| --- |------------------------------------------------------------------| +| Docker / Docker Compose | 用于启动 Server 及其依赖的 PostgreSQL、Valkey;如采用 Docker Agent,也用于运行 Agent | +| OpenResty | 本地安装 Agent 时需要可执行 `openresty`,或在安装脚本中指定路径 | +| 可访问端口 | Server 默认监听 `3000`,Agent 节点需要能访问 Server 地址 | +| 浏览器 | 用于访问管理端 | - **Docker**:`20.10.0+` - **Docker Compose**:`2.0.0+` @@ -28,15 +28,7 @@ Agent 统一通过 OpenResty 二进制控制运行时。本地部署需要节点 ## 1. 启动 Server -为了保证异步任务队列(Asynq 框架)及可观测流量看板功能完整运行,快速开始推荐采用 **PostgreSQL + Redis + ClickHouse** 经典单机版编排。 - -先拉取 ClickHouse 服务端性能配置到 `./config/clickhouse`,并以单文件方式挂载: - -```bash -mkdir -p ./config/clickhouse -curl -fsSL -o ./config/clickhouse/performance.xml \ - https://raw.githubusercontent.com/Rain-kl/OpenFlare/refs/heads/main/config/clickhouse/performance.xml -``` +快速开始推荐采用 **PostgreSQL + Redis ** 标准部署方案。 在空目录中创建 `docker-compose.yaml`: @@ -63,15 +55,11 @@ services: DB_NAME: "${DB_NAME:-openflare}" REDIS_ENABLED: "true" REDIS_ADDR: "redis:6379" - CLICKHOUSE_ENABLED: "true" - CLICKHOUSE_HOST: "clickhouse:9000" depends_on: postgres: condition: service_healthy redis: condition: service_healthy - clickhouse: - condition: service_healthy postgres: image: postgres:17-alpine @@ -100,34 +88,11 @@ services: timeout: 5s retries: 5 - clickhouse: - image: clickhouse/clickhouse-server:25.3-alpine - restart: unless-stopped - environment: - CLICKHOUSE_DB: openflare - CLICKHOUSE_USER: default - CLICKHOUSE_PASSWORD: ${CLICKHOUSE_PASSWORD:-replace-with-clickhouse-password} - CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT: 1 - TZ: Asia/Shanghai - ulimits: - nofile: - soft: 262144 - hard: 262144 - volumes: - - openflare_clickhouse_data:/var/lib/clickhouse - - ./config/clickhouse/performance.xml:/etc/clickhouse-server/config.d/performance.xml:ro - healthcheck: - test: ["CMD", "clickhouse-client", "--user", "default", "--password", "${CLICKHOUSE_PASSWORD:-replace-with-clickhouse-password}", "--query", "SELECT 1"] - interval: 10s - timeout: 5s - retries: 5 - start_period: 15s volumes: openflare_uploads: openflare_postgres_data: openflare_redis_data: - openflare_clickhouse_data: ``` 启动服务: @@ -158,6 +123,12 @@ http://localhost:3000 > [!WARNING] > 为了你的系统安全,首次登录后请立即修改默认密码。 +如果忘记密码并且没有配置找回密码渠道, 可以使用命令进行重置 + +```bash +go run main.go reset-paswd # 重置管理员密码 +``` + --- ## 2. 准备 Agent Token diff --git a/frontend/components/layout/sidebar.tsx b/frontend/components/layout/sidebar.tsx index dea8323e..ddd3c9c5 100644 --- a/frontend/components/layout/sidebar.tsx +++ b/frontend/components/layout/sidebar.tsx @@ -72,7 +72,7 @@ const data = { { title: '存储管理', url: '/admin/files', icon: FolderOpen }, { title: '数据管理', url: '/admin/database', icon: Database }, { title: '通知推送', url: '/admin/push', icon: Bell }, - { title: '系统日志', url: '/admin/logs', icon: Terminal }, + // { title: '系统日志', url: '/admin/logs', icon: Terminal }, { title: '系统配置', url: '/admin/system', icon: ShieldCheck }, { title: '系统设置', url: '/admin/settings', icon: Settings }, ],