初始化:职引项目 v1.0

This commit is contained in:
yuzhiran
2026-06-08 16:28:00 +08:00
commit 511f60d0db
111 changed files with 27295 additions and 0 deletions
+259
View File
@@ -0,0 +1,259 @@
# 职引 - 部署文档
## 目录
1. [环境要求](#环境要求)
2. [后端部署](#后端部署)
3. [前端部署(H5](#前端部署h5)
4. [微信小程序部署](#微信小程序部署)
5. [数据库初始化](#数据库初始化)
6. [监控和日志](#监控和日志)
---
## 环境要求
### 生产服务器
- **操作系统**: Linux (Ubuntu 20.04+ / CentOS 7+)
- **Node.js**: 18.x 或更高版本
- **MongoDB**: 4.4+ (或 MongoDB Atlas 云服务)
- **Nginx**: 1.18+ (反向代理)
- **PM2**: 进程管理
### 本地开发
- **Node.js**: 18.x
- **MongoDB**: 本地或云服务
- **HBuilderX**: uni-app 开发
---
## 后端部署
### 1. 安装依赖
```bash
cd backend
npm install --production
```
### 2. 配置环境变量
复制 `.env.example``.env.production` 并修改:
```bash
cp .env.example .env.production
vim .env.production # 修改生产配置
```
**关键配置项**
- `MONGODB_URI`: 生产数据库地址
- `JWT_SECRET`: 强密钥(至少32字符)
- `PORT`: 生产端口(推荐 3000
- `WECHAT_APPID` / `WECHAT_SECRET`: 小程序生产凭证
### 3. 编译 TypeScript
```bash
npm run build
```
### 4. 使用 PM2 启动
```bash
# 安装 PM2
npm install -g pm2
# 启动应用
pm2 start dist/main.js --name zhiyin-backend
# 设置开机自启
pm2 startup
pm2 save
```
### 5. 配置 Nginx 反向代理
```nginx
server {
listen 80;
server_name api.yourdomain.com;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
```
---
## 前端部署(H5
### 1. 修改 API 地址
编辑 `zhiyin-app/config/api.js`
```javascript
export const BASE_URL = 'https://api.yourdomain.com/api'
```
### 2. 编译 H5
```bash
cd zhiyin-app
npm run build:h5
```
### 3. 部署到 Web 服务器
`dist/build/h5/` 目录上传到服务器:
```bash
# 使用 scp 上传
scp -r dist/build/h5/* user@your-server:/var/www/zhiyin/
# 或使用 FTP/SSH 上传
```
### 4. 配置 Nginx
```nginx
server {
listen 80;
server_name yourdomain.com;
root /var/www/zhiyin;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
# 静态资源缓存
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
}
```
---
## 微信小程序部署
### 1. 修改配置
编辑 `zhiyin-app/manifest.json`
```json
{
"mp-weixin": {
"appid": "your-production-appid"
}
}
```
### 2. 编译小程序
```bash
cd zhiyin-app
npm run build:mp-weixin
```
### 3. 使用微信开发者工具上传
1. 打开微信开发者工具
2. 导入 `dist/build/mp-weixin/` 目录
3. 点击「上传」按钮
4. 填写版本号和项目备注
5. 登录微信公众平台提交审核
### 4. 提交审核前检查
- ✅ 已配置合法域名(在微信公众平台)
- ✅ 已通过 AI 深度合成类目审批
- ✅ 已配置隐私协议和用户协议
- ✅ 已测试所有核心功能
---
## 数据库初始化
### 1. 创建数据库和用户
```bash
mongo
> use zhiyin
> db.createUser({
user: "zhiyin",
pwd: "strong-password",
roles: [{ role: "readWrite", db: "zhiyin" }]
})
```
### 2. 创建索引
```bash
cd backend
node scripts/create-indexes.js
```
### 3. 初始化管理员账号(可选)
```bash
node scripts/create-admin.js
```
---
## 监控和日志
### 1. 日志配置
使用 PM2 查看日志:
```bash
pm2 logs zhiyin-backend
pm2 logs zhiyin-backend --lines 100
```
### 2. 错误监控
推荐集成:
- **Sentry**: 错误追踪
- **PM2 Plus**: 进程监控
- **MongoDB Atlas**: 数据库监控
### 3. 性能监控
```bash
# 查看进程状态
pm2 monit
# 查看资源占用
pm2 list
```
---
## 常见问题
### Q1: MongoDB 连接失败
**A**: 检查 `.env.production` 中的 `MONGODB_URI` 是否正确,确保数据库可访问。
### Q2: 微信小程序请求失败
**A**: 确保在微信公众平台配置了合法域名(必须是 HTTPS)。
### Q3: AI 调用失败
**A**: 检查 `AI_PRIMARY_KEY``AI_BACKUP_KEY` 是否正确,确保 API 额度充足。
---
## 安全检查清单
- [ ] 已修改默认 JWT_SECRET
- [ ] 已禁用开发模式的固定验证码
- [ ] 已配置 CORS 白名单
- [ ] 已启用 HTTPS
- [ ] 已配置 MongoDB 访问权限
- [ ] 已移除控制台日志(生产环境)
- [ ] 已配置速率限制(防止滥用)
---
## 回滚方案
如果需要回滚到上一个版本:
```bash
# 1. 查看 PM2 历史
pm2 logs zhiyin-backend --lines 1000
# 2. 重启到上一个版本
pm2 restart zhiyin-backend --version <previous-version>
# 3. 数据库回滚(如有迁移)
mongorestore --uri="<connection-string>" --drop backup/
```
---
**最后更新**: 2026-06-02