Files
x-server-mobile/docs/guides/DEPLOYMENT_CHECKLIST.md
T
root e3fa7e86f3 docs: 重组文档结构,按模块分类
新的文档结构:
docs/
├── README.md              # 文档中心导航
├── modules/               # 模块文档
│   ├── auth/             # 认证模块
│   │   ├── README.md
│   │   ├── feishu-login.md
│   │   ├── feishu-qrcode.md
│   │   └── feishu-notification.md
│   ├── approval/         # 审批流程模块
│   │   └── README.md
│   ├── business-trip/    # 出差申请模块
│   │   └── README.md
│   └── user/             # 用户管理模块
│       └── README.md
└── guides/               # 指南文档
    ├── deployment.md
    ├── environment.md
    ├── git-workflow.md
    └── ...

每个模块都有独立的 README.md 说明概述、API、关键文件等
2026-02-28 11:42:51 +08:00

288 lines
5.4 KiB
Markdown

# X-Server Mobile 部署检查清单
## 部署前检查
### 服务器环境
- [ ] 服务器已安装 1Panel 面板
- [ ] 已安装 OpenResty 并正常运行
- [ ] 已安装 MySQL 容器(1Panel 管理)
- [ ] 已安装 Redis 容器(1Panel 管理)
- [ ] Docker 网络配置正确(1panel-network 存在)
### 网络配置
- [ ] 域名 DNS 已解析到服务器 IP
- [ ] 服务器防火墙已开放 80、443 端口
- [ ] 服务器可从外网访问
### 数据库准备
- [ ] 创建生产数据库 `xserver`
- [ ] 创建专用数据库用户 `xserver`
- [ ] 授予用户权限
- [ ] 导入数据库结构和初始数据
### SSL 证书
- [ ] 安装 certbot: `apt-get install certbot`
- [ ] 获取证书: `certbot certonly --standalone -d xsm.hnxinyouhe.com`
- [ ] 验证证书路径正确
### 环境变量
- [ ] 复制 `.env.production.template` 为 `.env.production`
- [ ] 填写数据库配置
- [ ] 填写 Redis 配置
- [ ] 填写飞书配置
- [ ] 更新飞书回调地址为 `https://xsm.hnxinyouhe.com/login/callback`
### 目录结构
- [ ] 创建部署目录: `/opt/x-server-mobile`
- [ ] 创建子目录: frontend, backend, logs, backup
- [ ] 设置正确的目录权限
---
## 部署步骤
### 1. 准备服务器环境
```bash
# SSH 登录服务器
ssh root@your-server
# 创建目录结构
mkdir -p /opt/x-server-mobile/{frontend,backend,logs,backup}
mkdir -p /opt/x-server-mobile/logs/backend
mkdir -p /opt/x-server-mobile/logs/nginx
# 创建日志文件
touch /opt/x-server-mobile/logs/nginx_access.log
touch /opt/x-server-mobile/logs/nginx_error.log
```
### 2. 配置 OpenResty
```bash
# 复制配置文件到 OpenResty 配置目录
cp deploy/nginx/x-server-mobile-prod.conf /usr/local/openresty/nginx/conf/conf.d/x-server-mobile.conf
# 测试配置
openresty -t
# 如果测试通过,重载配置
openresty -s reload
```
### 3. 构建前端
```bash
# 在开发环境
cd /www/x-server-mobile/frontend
npm install
npm run build
# 验证构建产物
ls -la dist/
```
### 4. 部署
```bash
# 方式1: 使用部署脚本
./deploy.sh your-server-ip
# 方式2: 手动部署
# 上传前端
scp -r frontend/dist/* root@server:/opt/x-server-mobile/frontend/
# 上传后端
scp -r backend/ root@server:/opt/x-server-mobile/backend/
# 上传 docker-compose
scp docker-compose.prod.yml root@server:/opt/x-server-mobile/
```
### 5. 启动后端
```bash
# SSH 登录服务器
ssh root@server
# 进入部署目录
cd /opt/x-server-mobile
# 加载环境变量
source .env.production
# 启动容器
docker-compose -f docker-compose.prod.yml up -d
# 查看容器状态
docker ps | grep x-server
# 查看日志
docker logs -f x-server-backend-prod
```
---
## 部署后验证
### 前端验证
- [ ] 访问 `https://xsm.hnxinyouhe.com` 显示登录页面
- [ ] 页面样式加载正常
- [ ] 浏览器控制台无错误
### 后端验证
- [ ] 容器运行正常: `docker ps | grep x-server`
- [ ] 健康检查通过
- [ ] 日志无错误信息
### 功能验证
- [ ] 邮箱密码登录功能正常
- [ ] 飞书客户端内免登正常
- [ ] 飞书扫码登录正常
- [ ] 审批列表正常显示
- [ ] 出差申请功能正常
- [ ] 飞书卡片通知正常
### 飞书回调验证
- [ ] 飞书后台配置回调地址: `https://xsm.hnxinyouhe.com/login/callback`
- [ ] 点击飞书卡片"查看详情"跳转正确
- [ ] 快速审批按钮功能正常
---
## 监控配置
### 日志监控
```bash
# Nginx 访问日志
tail -f /opt/x-server-mobile/logs/nginx_access.log
# Nginx 错误日志
tail -f /opt/x-server-mobile/logs/nginx_error.log
# 后端容器日志
docker logs -f x-server-backend-prod
# 后端应用日志
tail -f /opt/x-server-mobile/logs/backend/*.log
```
### 性能监控
```bash
# 容器资源使用
docker stats x-server-backend-prod
# 磁盘使用
du -sh /opt/x-server-mobile/*
# 内存使用
free -h
```
### 数据库监控
```bash
# 检查 MySQL 连接
docker exec x-server-backend-prod php -r "
try {
new PDO('mysql:host=DB_HOST;dbname=xserver', 'xserver', 'password');
echo 'Database connection OK\n';
} catch (Exception \$e) {
echo 'Database connection FAILED: ' . \$e->getMessage() . '\n';
}
"
```
---
## 回滚准备
### 备份检查
```bash
# 检查备份目录
ls -la /opt/x-server-mobile/backup/
# 查看最新备份
ls -lt /opt/x-server-mobile/backup/ | head -5
```
### 回滚测试
```bash
# 测试回滚脚本
./rollback.sh <backup_name>
```
---
## 定期维护
### 每周
- [ ] 检查容器运行状态
- [ ] 检查日志错误
- [ ] 检查磁盘空间
### 每月
- [ ] 更新 SSL 证书(自动续期)
- [ ] 数据库备份
- [ ] 日志归档和清理
### 每季度
- [ ] 安全更新检查
- [ ] 性能优化评估
- [ ] 灾难恢复演练
---
## 应急处理
### 服务异常
```bash
# 查看容器状态
docker ps -a | grep x-server
# 重启后端容器
docker restart x-server-backend-prod
# 查看详细日志
docker logs --tail 100 x-server-backend-prod
```
### 数据库异常
```bash
# 检查 MySQL 容器
docker ps | grep mysql
# 进入 MySQL
docker exec -it <mysql-container> mysql -uxserver -p
# 检查连接数
SHOW PROCESSLIST;
```
### 网络异常
```bash
# 检查端口监听
netstat -tlnp | grep -E '80|443|8787'
# 检查防火墙
ufw status
# 测试外网访问
curl -I https://xsm.hnxinyouhe.com
```
---
## 联系信息
- 开发负责人: ___________
- 运维负责人: ___________
- 紧急联系电话: ___________