107 lines
2.5 KiB
Markdown
107 lines
2.5 KiB
Markdown
# 生产部署快速参考
|
||
|
||
## 一、首次部署(5 分钟)
|
||
|
||
```bash
|
||
# 1. 克隆项目
|
||
git clone https://github.com/your-org/wecom-ai-assistant.git
|
||
cd wecom-ai-assistant
|
||
|
||
# 2. 配置环境变量
|
||
cp .env.prod.example .env.prod
|
||
nano .env.prod # 填写必需变量
|
||
|
||
# 3. 启动服务
|
||
chmod +x deploy/scripts/*.sh
|
||
./deploy/scripts/start.sh
|
||
|
||
# 4. 配置 HTTPS(Let's Encrypt)
|
||
export DOMAIN=your-domain.com
|
||
export EMAIL=your-email@example.com
|
||
sudo certbot certonly --nginx -d $DOMAIN --email $EMAIL --agree-tos --non-interactive
|
||
|
||
# 5. 更新 Nginx 配置(使用实际域名替换 nginx.conf 中的 _)
|
||
# 然后重启: docker-compose -f docker-compose.prod.yml restart nginx
|
||
```
|
||
|
||
## 二、常用命令
|
||
|
||
```bash
|
||
# 启动服务
|
||
./deploy/scripts/start.sh
|
||
|
||
# 停止服务
|
||
./deploy/scripts/stop.sh
|
||
|
||
# 更新服务
|
||
./deploy/scripts/update.sh latest
|
||
|
||
# 查看日志
|
||
docker-compose -f docker-compose.prod.yml logs -f backend
|
||
|
||
# 查看服务状态
|
||
docker-compose -f docker-compose.prod.yml ps
|
||
|
||
# 健康检查
|
||
curl https://your-domain.com/api/health
|
||
```
|
||
|
||
## 三、GitHub Actions 自动部署
|
||
|
||
### 配置 Secrets
|
||
|
||
在 GitHub 仓库设置中添加:
|
||
- `PROD_HOST`: 服务器 IP
|
||
- `PROD_USER`: SSH 用户名
|
||
- `PROD_SSH_KEY`: SSH 私钥
|
||
- `PROD_DOMAIN`: 生产域名
|
||
- `PROD_APP_PATH`: 应用路径(可选)
|
||
|
||
### 部署流程
|
||
|
||
1. 推送代码到 `main` 分支
|
||
2. GitHub Actions 自动构建并部署
|
||
3. 查看部署日志:`https://github.com/your-org/wecom-ai-assistant/actions`
|
||
|
||
## 四、关键文件
|
||
|
||
| 文件 | 说明 |
|
||
|------|------|
|
||
| `.env.prod` | 生产环境变量(不提交到 Git) |
|
||
| `docker-compose.prod.yml` | 生产环境 Docker Compose 配置 |
|
||
| `deploy/docker/backend.Dockerfile` | Backend 生产镜像构建文件 |
|
||
| `deploy/docker/nginx.conf` | Nginx 生产配置 |
|
||
| `deploy/scripts/start.sh` | 启动脚本 |
|
||
| `deploy/scripts/update.sh` | 更新脚本 |
|
||
| `.github/workflows/deploy.yml` | GitHub Actions 部署 workflow |
|
||
|
||
## 五、故障排查
|
||
|
||
```bash
|
||
# 查看服务日志
|
||
docker-compose -f docker-compose.prod.yml logs backend
|
||
|
||
# 检查服务状态
|
||
docker-compose -f docker-compose.prod.yml ps
|
||
|
||
# 检查环境变量
|
||
docker-compose -f docker-compose.prod.yml config
|
||
|
||
# 检查 SSL 证书
|
||
sudo certbot certificates
|
||
|
||
# 测试健康检查
|
||
curl -v https://your-domain.com/api/health
|
||
```
|
||
|
||
## 六、回滚
|
||
|
||
```bash
|
||
# 回滚到指定版本
|
||
export IMAGE_TAG=v0.9.0
|
||
docker-compose -f docker-compose.prod.yml --env-file .env.prod pull
|
||
docker-compose -f docker-compose.prod.yml --env-file .env.prod up -d
|
||
```
|
||
|
||
**详细文档**:参见 `docs/deploy.md`
|