Files
qiniu-feishu-bot/WINDOWS_DEPLOY.md
编程专家 0d98013464 feat: 添加 Windows 专用部署脚本
- deploy-windows.bat: 一键部署脚本 (Node.js + PM2)
- docker-windows.bat: Docker 一键部署脚本
- manage-windows.bat: 服务管理工具 (启动/停止/日志/自启)
- check-env.bat: 环境检查工具
- uninstall.bat: 卸载清理工具
- WINDOWS_DEPLOY.md: Windows 部署完整文档
2026-03-25 08:23:50 +08:00

359 lines
5.5 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.
# Windows 部署指南
## 📦 快速开始
### 方法一:一键部署(推荐)
1. **双击运行** `deploy-windows.bat`
2. 按提示完成配置
3. 部署完成后服务自动启动
### 方法二Docker 部署
1. **双击运行** `docker-windows.bat`
2. 按提示完成配置
3. Docker 自动构建并启动
---
## 🛠️ 脚本说明
| 脚本文件 | 用途 |
|---------|------|
| `deploy-windows.bat` | 一键部署脚本Node.js + PM2 |
| `docker-windows.bat` | Docker 一键部署脚本 |
| `manage-windows.bat` | 服务管理工具(启动/停止/日志) |
| `check-env.bat` | 环境检查工具 |
| `uninstall.bat` | 卸载清理工具 |
---
## 📋 前置要求
### Node.js 部署方式
- **Node.js** v18+ ([下载地址](https://nodejs.org/))
- **npm**(随 Node.js 自动安装)
### Docker 部署方式
- **Docker Desktop for Windows** ([下载地址](https://www.docker.com/products/docker-desktop/))
- 启用 WSL2 后端(推荐)
---
## 🔧 详细步骤
### 1. 环境检查
运行 `check-env.bat` 检查环境是否就绪。
```cmd
.\check-env.bat
```
根据输出安装缺失的组件。
---
### 2. 配置环境变量
编辑 `.env` 文件:
```env
# 飞书配置
FEISHU_APP_ID=cli_xxxxxxxxxx
FEISHU_APP_SECRET=xxxxxxxxxxxxxx
FEISHU_VERIFICATION_TOKEN=xxxxxxxxxxxxxx
FEISHU_ENCRYPT_KEY=xxxxxxxxxxxxxx
# 飞书事件接收模式
FEISHU_MODE=http
# 七牛云配置(可选)
QINIU_ACCESS_KEY=xxxxxxxxxxxxxx
QINIU_SECRET_KEY=xxxxxxxxxxxxxx
QINIU_BUCKET=your-bucket-name
QINIU_REGION=z0
QINIU_DOMAIN=https://your-cdn.com
# 服务配置
PORT=3030
NODE_ENV=production
```
---
### 3. 配置七牛云
编辑 `config/qiniu-config.json`
```json
{
"buckets": {
"default": {
"accessKey": "YOUR_ACCESS_KEY",
"secretKey": "YOUR_SECRET_KEY",
"bucket": "your-bucket-name",
"region": "z0",
"domain": "https://your-cdn.com"
}
},
"uploadPaths": {
"ipa": "/ipa/app.ipa",
"apk": "/apk/app.apk"
},
"uploadProfiles": {
"iOS": {
"bucket": "default",
"path": "ipa"
},
"安卓": {
"bucket": "default",
"path": "apk"
}
}
}
```
---
### 4. 启动服务
#### 使用 PM2
```cmd
.\manage-windows.bat
```
选择 `1. 启动服务`
#### 使用 Docker
```cmd
docker-compose up -d
```
---
### 5. 设置开机自启
**PM2 方式**(需要管理员权限):
```cmd
# 以管理员身份打开命令提示符
pm2 startup
pm2 save
```
**Docker 方式**
Docker Desktop 会自动随系统启动。
---
## 📊 管理命令
### PM2 命令
```cmd
# 查看状态
pm2 list
# 查看日志
pm2 logs qiniu-bot
# 重启服务
pm2 restart qiniu-bot
# 停止服务
pm2 stop qiniu-bot
# 删除服务
pm2 delete qiniu-bot
# 清空日志
pm2 flush
```
### Docker 命令
```cmd
# 查看日志
docker-compose logs -f qiniu-bot
# 重启服务
docker-compose restart
# 停止服务
docker-compose stop
# 启动服务
docker-compose start
# 停止并删除
docker-compose down
# 重新构建
docker-compose build --no-cache
```
---
## 🔍 故障排查
### 问题 1: 端口 3030 被占用
**解决方案:**
```cmd
# 查找占用进程
netstat -ano | findstr :3030
# 杀掉进程(替换 PID
taskkill /PID 12345 /F
# 或修改 .env 中的 PORT
PORT=3031
```
---
### 问题 2: PM2 未找到
**解决方案:**
```cmd
# 全局安装 PM2
npm install -g pm2
# 如果权限不足,以管理员身份运行
# 或使用 yarn
yarn global add pm2
```
---
### 问题 3: Docker 构建失败
**解决方案:**
1. 确保 Docker Desktop 正在运行
2. 增加 Docker 资源分配(设置 → Resources
3. 使用国内镜像加速器:
```json
// Docker Desktop 设置 → Docker Engine
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com"
]
}
```
---
### 问题 4: 依赖安装失败
**解决方案:**
```cmd
# 清理缓存
npm cache clean --force
# 删除 node_modules
rmdir /s /q node_modules
# 重新安装
npm install
# 或使用淘宝镜像
npm config set registry https://registry.npmmirror.com
npm install
```
---
### 问题 5: 飞书回调失败
**检查清单:**
- [ ] 服务器有公网 IP 或使用内网穿透
- [ ] 防火墙开放 3030 端口
- [ ] 飞书开放平台配置正确的回调 URL
- [ ] `.env``FEISHU_VERIFICATION_TOKEN``FEISHU_ENCRYPT_KEY` 正确
**测试回调 URL**
```cmd
# 使用 ngrok 内网穿透
ngrok http 3030
# 将生成的 URL 配置到飞书开放平台
# 例如https://xxxx.ngrok.io/feishu/event
```
---
## 📝 日志位置
### PM2 日志
```
C:\Users\你的用户名\.pm2\logs\
```
### Docker 日志
```cmd
docker-compose logs qiniu-bot
```
### 应用日志
```
logs\*.log
```
---
## 🧹 卸载
运行 `uninstall.bat` 自动清理。
或手动执行:
```cmd
# PM2 方式
pm2 stop qiniu-bot
pm2 delete qiniu-bot
rmdir /s /q node_modules
del /q /s logs\*.*
# Docker 方式
docker-compose down
docker rmi qiniu-feishu-bot:latest
```
---
## 💡 最佳实践
1. **生产环境** 使用 Docker 部署(更稳定、易迁移)
2. **开发环境** 使用 PM2 部署(调试方便)
3. **定期备份** `config/``.env` 文件
4. **监控日志** 使用 `pm2 logs``docker-compose logs -f`
5. **更新部署** 先备份配置,再拉取代码,最后重启服务
---
## 📞 获取帮助
如遇问题,请提供以下信息:
1. 运行 `check-env.bat` 的输出
2. 错误日志(`pm2 logs``docker-compose logs`
3. `.env` 配置(隐藏敏感信息)
4. 操作系统版本