Files
Developer 1117bd0bd7 refactor: 端口改为内部映射,通过 Nginx 反向代理访问
- docker-compose.test.yml: API 和 MongoDB 端口改为 expose(仅容器内部可见)
- webhook-server.js: 端口改为 19001,绑定 127.0.0.1(仅本机访问)
- 新增 deploy/nginx-test.conf Nginx 反向代理配置
  - API: miniapp-api-test.dxz99wyr.cn → miniapp-api_test:3001
  - Webhook: miniapp-api-test-webhook.dxz99wyr.cn/webhook → 127.0.0.1:19001
- 更新 setup.sh 和 README.md 文档
2026-05-18 20:51:54 +08:00

139 lines
3.2 KiB
Markdown

# MiniApp API Test 自动化部署配置
## 文件说明
| 文件 | 说明 |
|------|------|
| `docker-compose.test.yml` | 测试环境 Docker Compose 配置 |
| `deploy/webhook-server.js` | Webhook 服务器,接收 Git 推送并自动部署 |
| `deploy/webhook.service` | systemd 服务配置,保持 webhook 常驻运行 |
| `deploy/setup.sh` | 一键初始化脚本 |
## 云服务器部署步骤
### 1. 修改配置
编辑以下文件,替换为你的实际信息:
- **`deploy/setup.sh`**:
```bash
GIT_REPO="git@github.com:your-username/miniapp-api_test.git"
```
- **`deploy/webhook.service`**:
```ini
Environment="WEBHOOK_SECRET=你的webhook密钥"
```
- **`deploy/webhook-server.js`** (可选):
```javascript
const SECRET = process.env.WEBHOOK_SECRET || '你的webhook密钥';
```
### 2. 上传代码到服务器
```bash
# 方式1: 直接上传
scp -r ./* root@your-server-ip:/opt/miniapp-api_test/
# 方式2: 先推送到 git,再在服务器克隆
```
### 3. 运行初始化脚本
```bash
ssh root@your-server-ip
cd /opt/miniapp-api_test
chmod +x deploy/setup.sh
./deploy/setup.sh
```
### 4. 配置 Git Webhook
在 Git 仓库设置中添加 Webhook:
- **Payload URL**: `https://miniapp-api-test-webhook.dxz99wyr.cn/webhook`
- **Content type**: `application/json`
- **Secret**: 你设置的 `WEBHOOK_SECRET`
- **触发事件**: Push events (main 分支)
### 5. 开放防火墙端口
```bash
# 仅需开放 80/443 端口,所有服务通过 Nginx 反向代理
ufw allow 80/tcp
ufw allow 443/tcp
```
### 6. 配置 Nginx 反向代理 (推荐)
```nginx
# 复制到服务器的 Nginx 配置目录
# cp deploy/nginx-test.conf /opt/ALiYunManager/nginx/conf.d/miniapp-api-test.conf
# docker exec main-nginx nginx -t && docker exec main-nginx nginx -s reload
server {
listen 80;
server_name miniapp-api-test.dxz99wyr.cn;
location / {
proxy_pass http://miniapp-api_test:3001;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server {
listen 80;
server_name miniapp-api-test-webhook.dxz99wyr.cn;
location /webhook {
proxy_pass http://127.0.0.1:19001/webhook;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
```
## 常用命令
```bash
# 查看 webhook 日志
journalctl -u miniapp-api_test-webhook -f
# 查看容器状态
docker-compose -f docker-compose.test.yml ps
# 查看容器日志
docker logs -f miniapp-api_test
# 手动重启容器
docker-compose -f docker-compose.test.yml restart
# 手动触发部署
cd /opt/miniapp-api_test && docker-compose -f docker-compose.test.yml up -d --build
```
## 升级正式版本
当测试版本稳定后,执行以下操作升级到正式版:
```bash
# 1. 推送测试版本代码到正式仓库
cd /opt/miniapp-api_test
git push 正式仓库地址 main
# 2. 在正式环境重新构建
# (正式环境的部署方式保持不变)
```
或者由开发者手动推送:
```bash
git remote add production <正式仓库地址>
git push production main
```