docs(docs): update server start and quick-start docs to require PG/SQLite, Redis, and ClickHouse

- 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.
This commit is contained in:
ryan
2026-06-27 15:57:55 +08:00
parent 77931c3c1e
commit 196bdabc80
7 changed files with 480 additions and 219 deletions
+75 -23
View File
@@ -16,7 +16,7 @@ Agent 统一通过 OpenResty 二进制控制运行时。本地部署需要节点
| 项目 | 要求 |
| --- | --- |
| Docker / Docker Compose | 用于启动 Server 和 PostgreSQL;如果采用 Docker Agent 镜像,也用于运行 Agent |
| Docker / Docker Compose | 用于启动 Server 及其依赖的 PostgreSQL、Redis 和 ClickHouse 容器;如采用 Docker Agent,也用于运行 Agent |
| OpenResty | 本地安装 Agent 时需要可执行 `openresty`,或在安装脚本中指定路径 |
| 可访问端口 | Server 默认监听 `3000`,Agent 节点需要能访问 Server 地址 |
| 浏览器 | 用于访问管理端 |
@@ -24,12 +24,47 @@ Agent 统一通过 OpenResty 二进制控制运行时。本地部署需要节点
- **Docker**:`20.10.0+`
- **Docker Compose**:`2.0.0+`
---
## 1. 启动 Server
在空目录中创建 `docker-compose.yml`:
为了保证异步任务队列(Asynq 框架)及可观测流量看板功能完整运行,快速开始推荐采用 **PostgreSQL + Redis + ClickHouse** 经典单机版编排。
在空目录中创建 `docker-compose.yaml`:
```yaml
version: '3.8'
services:
openflare:
image: ghcr.io/rain-kl/openflare-server:latest
container_name: openflare-server
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- ./uploads:/app/uploads
environment:
TZ: Asia/Shanghai
APP_SESSION_SECRET: 'replace-with-a-long-random-string' # 生产环境请替换为长随机字符串
DB_ENABLED: "true"
DB_HOST: "postgres"
DB_PORT: "5432"
DB_USERNAME: "openflare"
DB_PASSWORD: "replace-with-strong-password"
DB_NAME: "openflare"
REDIS_ENABLED: "true"
REDIS_ADDRS: "redis:6379"
CLICKHOUSE_ENABLED: "true"
CLICKHOUSE_HOSTS: "clickhouse:9000"
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
clickhouse:
condition: service_healthy
postgres:
image: postgres:17-alpine
restart: unless-stopped
@@ -38,32 +73,42 @@ services:
POSTGRES_USER: openflare
POSTGRES_PASSWORD: replace-with-strong-password
volumes:
- postgres-data:/var/lib/postgresql/data
- ./data/postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U openflare -d openflare"]
interval: 10s
timeout: 5s
retries: 5
openflare:
image: ghcr.io/rain-kl/openflare:latest
redis:
image: valkey/valkey:8.0-alpine
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
ports:
- "3000:3000"
environment:
JWT_SECRET: replace-with-a-long-random-string
DSN: postgres://openflare:replace-with-strong-password@postgres:5432/openflare?sslmode=disable
GIN_MODE: release
LOG_LEVEL: info
command: ["valkey-server", "--appendonly", "yes"]
volumes:
- openflare-data:/data
- ./data/valkey:/data
healthcheck:
test: ["CMD", "valkey-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
volumes:
postgres-data:
openflare-data:
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
volumes:
- ./data/clickhouse_data:/var/lib/clickhouse
healthcheck:
test: ["CMD", "clickhouse-client", "--query", "SELECT 1"]
interval: 10s
timeout: 5s
retries: 5
start_period: 15s
```
启动服务:
@@ -79,7 +124,7 @@ docker compose ps
docker compose logs -f openflare
```
看到 `server listening` 且 `openflare` 容器状态为 running 后,访问:
看到 `server listening` 且 `openflare-server` 容器状态为 running 后,使用浏览器打开:
```text
http://localhost:3000
@@ -91,7 +136,10 @@ http://localhost:3000
| --- | --- |
| `root` | `123456` |
首次登录后请立即修改默认密码。
> [!WARNING]
> 为了你的系统安全,首次登录后请立即修改默认密码。
---
## 2. 准备 Agent Token
@@ -107,6 +155,8 @@ Agent 可以用两类凭证接入:
- **`discovery_token`** 获取菜单路径:「系统设置」->「自动注册」
- **`agent_token`** 获取菜单路径:「节点管理」->「新增节点」
---
## 3. 安装/运行 Agent
Agent 部署方式推荐使用 Docker 部署(即直接运行内置 OpenResty 的 Agent 镜像);亦支持通过安装脚本将 Agent 部署在本地宿主机上。
@@ -164,6 +214,8 @@ journalctl -u openflare-agent -f
如果没有 systemd,脚本会输出手动启动命令。
---
## 4. 后续步骤
完成控制面板启动和 Agent 节点接入后,你已经成功搭建好了 OpenFlare 网关的基础运行环境。接下来你可以按顺序继续阅读以下两份指南,开始部署你的第一个反代站点:
@@ -173,13 +225,14 @@ journalctl -u openflare-agent -f
2. **完整配置反向代理(HTTPS 与源站管理)**:
* 请参阅 [新建反代配置](./proxy-config.md)。它将指导你从证书导入与申请开始,配置域名 HTTPS 证书绑定、源站管理并预览发布。
---
## 常见失败原因
| 现象 | 排查方向 |
| --- | --- |
| 浏览器打不开管理端 | 确认 `docker compose ps` 中 Server 正在运行,宿主机 `3000` 端口没有被占用 |
| 登录后数据无法保存 | 检查 PostgreSQL 容器健康状态,以及 `DSN` 中的用户名、密码、库名是否一致 |
| 登录后数据无法保存/提示报错 | 检查 PostgreSQL 容器健康状态,以及 `DB_PASSWORD` / 密码等连接参数是否一致 |
| Agent 无法注册 | 确认 Agent 节点能访问 `--server-url`,并检查 Token 是否填错或已失效 |
| Agent 在线但没有应用配置 | 确认网站配置已启用,并且已经发布并激活版本 |
| OpenResty 应用失败 | 查看节点应用记录和 `journalctl -u openflare-agent`,重点检查域名、证书、上游地址和端口占用 |
@@ -198,4 +251,3 @@ journalctl -u openflare-agent -f
* **内网穿透客户端部署**:阅读 [部署 OpenFlared](../deployment/openflared.md) 了解如何在内网服务器侧运行穿透守护客户端(frpc)。
* **生产部署拓扑参考**:阅读 [部署说明](../deployment/deployment.md) 了解生产高可用拓扑和整体网络规划。
* **系统升级与日常维护**:阅读 [升级与维护](../deployment/upgrade.md) 了解如何平滑升级 Server 和各代理节点 Agent。