feat: add HA infrastructure, CI/CD pipeline, and Redis/Celery hardening
- Add docker-compose.ha.yml for PostgreSQL/Redis HA setup with Patroni and Sentinel - Add docker-compose.prod.yml for production deployment - Add GitHub Actions CI/CD workflow (build.yml) - Add install.cmd for Windows one-click setup - Harden Redis connection with retry logic and health checks - Add Celery HA config with Redis Sentinel support - Add HA operations runbook - Update README with deployment and architecture docs - Move landing page spec to .claude/specs/design/ - Update memory intelligence PRD
This commit is contained in:
118
README.md
118
README.md
@@ -51,6 +51,124 @@ npm run dev
|
||||
- 后端 API:http://localhost:8000
|
||||
- Swagger 文档:http://localhost:8000/docs
|
||||
|
||||
## Docker Compose 使用说明
|
||||
本项目包含 3 个 compose 文件:
|
||||
|
||||
- `docker-compose.yml`:开发基线,包含本地构建(`build`)配置,适合日常开发调试。
|
||||
- `docker-compose.prod.yml`:生产基线,使用预构建镜像(不本地构建),适合部署环境。
|
||||
- `docker-compose.ha.yml`:HA 覆盖层,提供 PostgreSQL 主从、Redis 主从 + Sentinel、备份任务。
|
||||
|
||||
### 使用选择
|
||||
- 本地开发:使用 `docker-compose.yml`
|
||||
- 生产部署:使用 `docker-compose.prod.yml`
|
||||
- 需要高可用:在上面任一基线上叠加 `docker-compose.ha.yml`
|
||||
|
||||
> 注意:`docker-compose.ha.yml` 是覆盖文件,不能单独使用。
|
||||
|
||||
### 常用命令
|
||||
|
||||
#### 开发模式(单机)
|
||||
```bash
|
||||
docker compose -f docker-compose.yml up -d
|
||||
```
|
||||
|
||||
#### 开发 + HA(主从/哨兵演练)
|
||||
```bash
|
||||
docker compose -f docker-compose.yml -f docker-compose.ha.yml up -d
|
||||
```
|
||||
|
||||
#### 生产模式(预构建镜像)
|
||||
```bash
|
||||
docker compose -f docker-compose.prod.yml up -d
|
||||
```
|
||||
|
||||
#### 生产 + HA
|
||||
```bash
|
||||
docker compose -f docker-compose.prod.yml -f docker-compose.ha.yml up -d
|
||||
```
|
||||
|
||||
#### 查看状态 / 日志
|
||||
```bash
|
||||
docker compose -f docker-compose.yml -f docker-compose.ha.yml ps
|
||||
docker compose -f docker-compose.yml -f docker-compose.ha.yml logs -f backend
|
||||
```
|
||||
|
||||
#### 停止并清理(含卷)
|
||||
```bash
|
||||
docker compose -f docker-compose.yml -f docker-compose.ha.yml down -v
|
||||
```
|
||||
|
||||
### `docker-compose.prod.yml` 镜像标签
|
||||
`docker-compose.prod.yml` 使用以下镜像格式:
|
||||
- `${REGISTRY:-}dreamweaver-backend:${TAG:-latest}`
|
||||
- `${REGISTRY:-}dreamweaver-frontend:${TAG:-latest}`
|
||||
- `${REGISTRY:-}dreamweaver-admin-frontend:${TAG:-latest}`
|
||||
|
||||
Linux 部署示例(推荐):
|
||||
```bash
|
||||
export REGISTRY=my-registry.example.com/
|
||||
export TAG=2026.02.12
|
||||
docker compose -f docker-compose.prod.yml up -d
|
||||
```
|
||||
|
||||
Windows PowerShell 示例:
|
||||
```powershell
|
||||
$env:REGISTRY="my-registry.example.com/"
|
||||
$env:TAG="2026.02.12"
|
||||
docker compose -f docker-compose.prod.yml up -d
|
||||
```
|
||||
|
||||
### Linux 服务器部署流程(推荐)
|
||||
以下流程适用于 Ubuntu/CentOS 等 Linux 服务器:
|
||||
|
||||
#### 1) 准备配置
|
||||
```bash
|
||||
cp backend/.env.example backend/.env
|
||||
# 编辑 backend/.env,至少配置 SECRET_KEY、OAuth/API Key 等
|
||||
```
|
||||
|
||||
#### 2) 启动(非 HA)
|
||||
```bash
|
||||
export REGISTRY=my-registry.example.com/
|
||||
export TAG=2026.02.12
|
||||
docker compose -f docker-compose.prod.yml pull
|
||||
docker compose -f docker-compose.prod.yml up -d
|
||||
```
|
||||
|
||||
#### 3) 启动(HA)
|
||||
```bash
|
||||
export REGISTRY=my-registry.example.com/
|
||||
export TAG=2026.02.12
|
||||
docker compose -f docker-compose.prod.yml -f docker-compose.ha.yml pull
|
||||
docker compose -f docker-compose.prod.yml -f docker-compose.ha.yml up -d
|
||||
```
|
||||
|
||||
#### 4) 运行状态检查
|
||||
```bash
|
||||
docker compose -f docker-compose.prod.yml ps
|
||||
docker compose -f docker-compose.prod.yml logs -f backend
|
||||
```
|
||||
HA 场景使用:
|
||||
```bash
|
||||
docker compose -f docker-compose.prod.yml -f docker-compose.ha.yml ps
|
||||
docker compose -f docker-compose.prod.yml -f docker-compose.ha.yml logs -f backend
|
||||
```
|
||||
|
||||
#### 5) 版本升级
|
||||
```bash
|
||||
export TAG=2026.02.13
|
||||
docker compose -f docker-compose.prod.yml pull
|
||||
docker compose -f docker-compose.prod.yml up -d
|
||||
```
|
||||
HA 场景同理,在命令中额外叠加 `-f docker-compose.ha.yml`。
|
||||
|
||||
#### 6) 版本回滚
|
||||
```bash
|
||||
export TAG=2026.02.12
|
||||
docker compose -f docker-compose.prod.yml pull
|
||||
docker compose -f docker-compose.prod.yml up -d
|
||||
```
|
||||
|
||||
## 供应商路由与管理后台
|
||||
- 路由按配置顺序尝试:`TEXT_PROVIDERS`(默认 `text_primary`)、`IMAGE_PROVIDERS`(默认 `image_primary`)、`TTS_PROVIDERS`(默认 `tts_primary`)。失败会自动切换下一个。
|
||||
- 管理后台(默认关闭):`ENABLE_ADMIN_CONSOLE=true` 时启用,接口在 `/admin/providers`(CRUD)和 `/admin/providers/reload`。鉴权使用 Basic Auth,账号密码由 `ADMIN_USERNAME`/`ADMIN_PASSWORD` 设置(请覆盖默认值)。
|
||||
|
||||
Reference in New Issue
Block a user