Files
wecom-ai-assistant/docs/github-secrets-setup.md
2026-02-05 16:48:16 +08:00

164 lines
4.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# GitHub Secrets 配置指南
## 概述
GitHub Secrets 用于存储敏感信息(如服务器 IP、SSH 密钥等),供 GitHub Actions 自动部署使用。
## 配置步骤
### 步骤 1进入 Secrets 配置页面
1. 访问你的仓库https://github.com/bujie9527/wecom-ai-assistant
2. 点击 **Settings**(设置)
3. 左侧菜单选择 **Secrets and variables****Actions**
4. 点击 **New repository secret**
### 步骤 2添加必需的 Secrets
依次添加以下 Secrets
#### 1. PROD_HOST生产服务器 IP
- **Name**: `PROD_HOST`
- **Secret**: 你的云服务器公网 IP例如`123.45.67.89`
- **说明**: 用于 SSH 连接到生产服务器
#### 2. PROD_USERSSH 用户名)
- **Name**: `PROD_USER`
- **Secret**: SSH 用户名(通常是 `root``ubuntu`
- **说明**: 用于 SSH 登录的用户名
#### 3. PROD_SSH_KEYSSH 私钥)
- **Name**: `PROD_SSH_KEY`
- **Secret**: SSH 私钥的完整内容(包括 `-----BEGIN OPENSSH PRIVATE KEY-----``-----END OPENSSH PRIVATE KEY-----`
- **说明**: 用于 GitHub Actions 通过 SSH 连接到服务器
**如何获取 SSH 私钥**
```powershell
# 如果已有 SSH 密钥
cat $env:USERPROFILE\.ssh\id_rsa
# 或
cat $env:USERPROFILE\.ssh\id_ed25519
# 如果没有,生成新的 SSH 密钥对
ssh-keygen -t ed25519 -C "github-actions-deploy" -f $env:USERPROFILE\.ssh\github-actions-deploy
cat $env:USERPROFILE\.ssh\github-actions-deploy
```
**重要**:将**私钥**(无 `.pub` 后缀)添加到 GitHub Secrets将**公钥**`.pub` 文件)添加到生产服务器的 `~/.ssh/authorized_keys`
#### 4. PROD_DOMAIN生产域名
- **Name**: `PROD_DOMAIN`
- **Secret**: 你的生产域名(例如:`api.yourdomain.com`
- **说明**: 用于健康检查和部署验证
#### 5. PROD_SSH_PORT可选
- **Name**: `PROD_SSH_PORT`
- **Secret**: SSH 端口(默认:`22`
- **说明**: 如果使用非标准 SSH 端口,需要配置
#### 6. PROD_APP_PATH可选
- **Name**: `PROD_APP_PATH`
- **Secret**: 应用部署路径(默认:`/opt/wecom-ai-assistant`
- **说明**: 如果部署路径不同,需要配置
### 步骤 3配置 Workflow 权限
1.**Settings****Actions****General**
2. 找到 **Workflow permissions**
3. 选择 **Read and write permissions**
4. 点击 **Save**
## 验证配置
### 检查 Secrets 是否已添加
1. 进入https://github.com/bujie9527/wecom-ai-assistant/settings/secrets/actions
2. 确认以下 Secrets 已添加:
- ✅ PROD_HOST
- ✅ PROD_USER
- ✅ PROD_SSH_KEY
- ✅ PROD_DOMAIN
- 可选PROD_SSH_PORT
- 可选PROD_APP_PATH
### 测试 GitHub Actions
1. 推送代码到 `main` 分支
2. 进入https://github.com/bujie9527/wecom-ai-assistant/actions
3. 查看 workflow 是否自动运行
## 生成 SSH 密钥对(如果还没有)
### 在本地生成
```powershell
# 生成 SSH 密钥对
ssh-keygen -t ed25519 -C "github-actions-deploy" -f $env:USERPROFILE\.ssh\github-actions-deploy
# 查看私钥(添加到 GitHub Secrets
cat $env:USERPROFILE\.ssh\github-actions-deploy
# 查看公钥(添加到服务器)
cat $env:USERPROFILE\.ssh\github-actions-deploy.pub
```
### 将公钥添加到生产服务器
```bash
# SSH 登录服务器
ssh user@your-server
# 添加公钥到 authorized_keys
mkdir -p ~/.ssh
echo "你的公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
# 测试 SSH 连接(从本地)
ssh -i ~/.ssh/github-actions-deploy user@your-server
```
## 安全建议
1. **SSH 密钥安全**
- 私钥只存储在 GitHub Secrets 中
- 公钥添加到服务器的 `authorized_keys`
- 不要将私钥提交到 Git
2. **定期轮换**
- 定期更新 SSH 密钥和 Token
- 如果密钥泄露,立即撤销并重新生成
3. **最小权限原则**
- 只授予必要的权限
- 使用专用的部署用户(而不是 root
## 故障排查
### 问题GitHub Actions 部署失败
**检查项**
1. Secrets 是否正确配置
2. SSH 密钥是否正确添加到服务器
3. 服务器防火墙是否开放 SSH 端口
4. 服务器上是否安装了 Docker 和 docker-compose
### 问题SSH 连接失败
**解决方案**
1. 测试 SSH 连接:`ssh -i ~/.ssh/github-actions-deploy user@your-server`
2. 检查服务器日志:`tail -f /var/log/auth.log`
3. 确认公钥格式正确(一行,无换行)
## 相关文档
- [GitHub Actions 文档](https://docs.github.com/en/actions)
- [GitHub Secrets 文档](https://docs.github.com/en/actions/security-guides/encrypted-secrets)
- [项目部署文档](./deploy.md)