e73149f91d
- 新增 docker-compose.test.yml 测试环境配置 - API 端口: 3001 - MongoDB 端口: 27019 - 独立数据卷隔离 - SERVER_URL: https://miniapp-api-test.dxz99wyr.cn - 新增 deploy/webhook-server.js Webhook 自动部署服务 - 新增 deploy/webhook.service systemd 服务配置 - 新增 deploy/setup.sh 一键初始化脚本 - Webhook Secret 与正式版保持一致: miniapp-api-deploy-secret
2.6 KiB
2.6 KiB
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:GIT_REPO="git@github.com:your-username/miniapp-api_test.git" -
deploy/webhook.service:Environment="WEBHOOK_SECRET=你的webhook密钥" -
deploy/webhook-server.js(可选):const SECRET = process.env.WEBHOOK_SECRET || '你的webhook密钥';
2. 上传代码到服务器
# 方式1: 直接上传
scp -r ./* root@your-server-ip:/opt/miniapp-api_test/
# 方式2: 先推送到 git,再在服务器克隆
3. 运行初始化脚本
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:
http://your-server-ip:9001/webhook - Content type:
application/json - Secret: 你设置的
WEBHOOK_SECRET - 触发事件: Push events (main 分支)
5. 开放防火墙端口
# 开放 9001 端口(webhook)和 3001 端口(API)
ufw allow 9001/tcp
ufw allow 3001/tcp
6. 配置 Nginx 反向代理 (推荐)
server {
listen 80;
server_name miniapp-api-test.dxz99wyr.cn;
location / {
proxy_pass http://localhost: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;
}
}
常用命令
# 查看 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
升级正式版本
当测试版本稳定后,执行以下操作升级到正式版:
# 1. 推送测试版本代码到正式仓库
cd /opt/miniapp-api_test
git push 正式仓库地址 main
# 2. 在正式环境重新构建
# (正式环境的部署方式保持不变)
或者由开发者手动推送:
git remote add production <正式仓库地址>
git push production main