Files
zhiyin/docs/DEPLOYMENT.md
T
2026-06-08 16:28:00 +08:00

4.8 KiB
Raw Blame History

职引 - 部署文档

目录

  1. 环境要求
  2. 后端部署
  3. 前端部署(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. 安装依赖

cd backend
npm install --production

2. 配置环境变量

复制 .env.example.env.production 并修改:

cp .env.example .env.production
vim .env.production  # 修改生产配置

关键配置项

  • MONGODB_URI: 生产数据库地址
  • JWT_SECRET: 强密钥(至少32字符)
  • PORT: 生产端口(推荐 3000
  • WECHAT_APPID / WECHAT_SECRET: 小程序生产凭证

3. 编译 TypeScript

npm run build

4. 使用 PM2 启动

# 安装 PM2
npm install -g pm2

# 启动应用
pm2 start dist/main.js --name zhiyin-backend

# 设置开机自启
pm2 startup
pm2 save

5. 配置 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

export const BASE_URL = 'https://api.yourdomain.com/api'

2. 编译 H5

cd zhiyin-app
npm run build:h5

3. 部署到 Web 服务器

dist/build/h5/ 目录上传到服务器:

# 使用 scp 上传
scp -r dist/build/h5/* user@your-server:/var/www/zhiyin/

# 或使用 FTP/SSH 上传

4. 配置 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

{
  "mp-weixin": {
    "appid": "your-production-appid"
  }
}

2. 编译小程序

cd zhiyin-app
npm run build:mp-weixin

3. 使用微信开发者工具上传

  1. 打开微信开发者工具
  2. 导入 dist/build/mp-weixin/ 目录
  3. 点击「上传」按钮
  4. 填写版本号和项目备注
  5. 登录微信公众平台提交审核

4. 提交审核前检查

  • 已配置合法域名(在微信公众平台)
  • 已通过 AI 深度合成类目审批
  • 已配置隐私协议和用户协议
  • 已测试所有核心功能

数据库初始化

1. 创建数据库和用户

mongo
> use zhiyin
> db.createUser({
    user: "zhiyin",
    pwd: "strong-password",
    roles: [{ role: "readWrite", db: "zhiyin" }]
  })

2. 创建索引

cd backend
node scripts/create-indexes.js

3. 初始化管理员账号(可选)

node scripts/create-admin.js

监控和日志

1. 日志配置

使用 PM2 查看日志:

pm2 logs zhiyin-backend
pm2 logs zhiyin-backend --lines 100

2. 错误监控

推荐集成:

  • Sentry: 错误追踪
  • PM2 Plus: 进程监控
  • MongoDB Atlas: 数据库监控

3. 性能监控

# 查看进程状态
pm2 monit

# 查看资源占用
pm2 list

常见问题

Q1: MongoDB 连接失败

A: 检查 .env.production 中的 MONGODB_URI 是否正确,确保数据库可访问。

Q2: 微信小程序请求失败

A: 确保在微信公众平台配置了合法域名(必须是 HTTPS)。

Q3: AI 调用失败

A: 检查 AI_PRIMARY_KEYAI_BACKUP_KEY 是否正确,确保 API 额度充足。


安全检查清单

  • 已修改默认 JWT_SECRET
  • 已禁用开发模式的固定验证码
  • 已配置 CORS 白名单
  • 已启用 HTTPS
  • 已配置 MongoDB 访问权限
  • 已移除控制台日志(生产环境)
  • 已配置速率限制(防止滥用)

回滚方案

如果需要回滚到上一个版本:

# 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