2df57fb5d5
- 修复前端 TypeScript 编译错误 - 更新部署文档(前端本地构建,后端 Git 部署) - 新增服务器端部署脚本 - 优化部署流程 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
5.5 KiB
5.5 KiB
uniservice-mobile.hnxinyouhe.com 线上部署说明
线上环境信息
| 项目 | 值 |
|---|---|
| 域名 | uniservice-mobile.hnxinyouhe.com |
| 前端目录 | /www/sites/uniservice-mobile.hnxinyouhe.com/index |
| 后端目录 | /opt/x-server-mobile |
| 后端容器 | x-server-backend-prod (端口 8787) |
| MySQL 容器 | 1Panel-mysql-XyxS |
| Redis 容器 | 1Panel-redis-pxdb |
| Docker 网络 | 1panel-network |
部署架构
| 组件 | 部署方式 |
|---|---|
| 前端 | 本地构建 → 上传静态文件 |
| 后端 | Git 拉取 → Docker 重启 |
快速部署
方式一:自动部署脚本(推荐)
本地执行(前端+后端一起部署):
# 1. 本地构建前端
cd /www/x-server-mobile/frontend
npm run build
# 2. 执行部署脚本
cd ..
./deploy/deploy-1panel.sh your-server-ip
脚本会自动:
- 上传前端静态文件到 1Panel 静态站点
- 上传后端代码到服务器
- 重启后端 Docker 容器
方式二:手动部署
前端部署(本地)
# 本地构建
cd /www/x-server-mobile/frontend
npm run build
# 上传静态文件
rsync -avz --delete \
frontend/dist/ \
root@your-server:/www/sites/uniservice-mobile.hnxinyouhe.com/index/
后端部署(服务器)
# 登录服务器
ssh root@your-server
cd /opt/x-server-mobile
# 拉取代码
git pull
# 重启容器
docker-compose -f docker-compose.prod.yml down
docker-compose -f docker-compose.prod.yml up -d
服务器端部署脚本
在服务器上创建 /opt/x-server-mobile/deploy.sh:
#!/bin/bash
cd /opt/x-server-mobile
git pull
docker-compose -f docker-compose.prod.yml down
docker-compose -f docker-compose.prod.yml up -d
docker ps | grep x-server
使用:
ssh root@your-server
cd /opt/x-server-mobile
chmod +x deploy.sh
./deploy.sh
首次部署
1. 服务器准备
ssh root@your-server
# 创建项目目录
mkdir -p /opt/x-server-mobile
cd /opt/x-server-mobile
# 克隆代码
git clone <your-git-repository-url> .
# 上传部署配置
# (在本地执行)
scp deploy/docker-compose.prod.yml root@your-server:/opt/x-server-mobile/
scp deploy/.env.production root@your-server:/opt/x-server-mobile/
2. 配置环境变量
ssh root@your-server
vi /opt/x-server-mobile/.env.production
填写飞书配置:
FEISHU_APP_ID=cli_axxxxxxxxxxxx
FEISHU_APP_SECRET=xxxxxxxxxxxxxxxxxxxx
FEISHU_ENCRYPT_KEY=xxxxxxxxxxxxxxxxxxxx
FEISHU_VERIFICATION_TOKEN=xxxxxxxxxxxxxxxxxxxx
3. 启动后端容器
ssh root@your-server
cd /opt/x-server-mobile
docker-compose -f docker-compose.prod.yml up -d
docker ps | grep x-server
4. 配置 1Panel 静态站点
- 在 1Panel 面板创建静态网站
- 根目录:
/www/sites/uniservice-mobile.hnxinyouhe.com/index - 添加 Nginx 反向代理(见下方配置)
5. 上传前端
cd /www/x-server-mobile/frontend
npm run build
rsync -avz --delete \
frontend/dist/ \
root@your-server:/www/sites/uniservice-mobile.hnxinyouhe.com/index/
1Panel Nginx 配置
在 1Panel 面板(网站设置 → 配置文件)添加反向代理:
# 后端 API
location /api/ {
proxy_pass http://127.0.0.1:8787;
proxy_http_version 1.1;
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;
proxy_set_header Host $host;
}
# 飞书登录回调
location /login {
proxy_pass http://127.0.0.1:8787;
proxy_http_version 1.1;
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;
proxy_set_header Host $host;
}
location /login/callback {
proxy_pass http://127.0.0.1:8787;
proxy_http_version 1.1;
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;
proxy_set_header Host $host;
}
location /login/qrcode {
proxy_pass http://127.0.0.1:8787;
proxy_http_version 1.1;
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;
proxy_set_header Host $host;
}
# 飞书卡片回调
location /feishu/card/callback {
proxy_pass http://127.0.0.1:8787;
proxy_http_version 1.1;
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;
proxy_set_header Host $host;
}
部署验证
# 检查前端
curl -I https://uniservice-mobile.hnxinyouhe.com
# 检查后端容器
ssh root@your-server
docker ps | grep x-server
docker logs -f x-server-backend-prod
常见问题
| 问题 | 解决方案 |
|---|---|
| API 404 | 检查 Nginx 反向代理配置 |
| 容器启动失败 | 检查数据库/Redis 容器状态,查看日志 |
| 飙书登录失败 | 检查 /login/* 反向代理配置 |
| 静态资源 404 | 确认前端上传到正确目录 |
文件清单
| 文件 | 用途 |
|---|---|
deploy/docker-compose.prod.yml |
生产环境 Docker Compose |
deploy/.env.production |
生产环境变量 |
deploy/nginx-1panel.conf |
Nginx 配置参考 |
deploy/deploy-1panel.sh |
本端部署脚本 |
deploy/server-deploy.sh |
服务器端部署脚本 |