11.1 部署 Checklist
概述
生产上线前逐项核对:安全基线(密钥/万能码/错误信息)、依赖服务(MySQL/Redis)、配置核对、静态资源、验证步骤。本清单可直接用于发布评审。
上线前 Checklist
安全基线(必须)
text
□ jwt.secret 已更换为高强度随机值(与环境隔离)
□ captcha.bypassCode 已留空(万能验证码禁止上线)
□ app.demo = false
□ app.errorMsg = false(不返回详细错误信息)
□ server.errorStack = false
□ database.default.debug = false
□ redis.default.pass 强密码
□ database 使用独立账号(非 root,最小权限)
□ api.proxyIps 只列真实反代出口
□ file.fileExt 按业务收紧(公网上传场景)
□ rateLimit.enable = true(authLimit 不调大)依赖服务
text
□ MySQL 已建库并导入 document/mysql/ 定稿脚本(含种子数据)
□ 13 个 uk_* 唯一索引齐全(对照 4.9 数据库设计)
□ Redis 可用(/api/cache/info mode 应为 redis)
□ 数据库/Redis 内网可达,不暴露公网
□ 磁盘空间(上传目录/日志/备份分区)
□ 服务器时区与 app.timezone 一致后端
text
□ go build 编译通过(目标平台交叉编译注意 GOOS/GOARCH)
□ config.yaml 生产配置核对(database/redis/jwt/file/cors)
□ file.uploadDir 挂持久卷(容器场景)/独立分区
□ manifest/data/ip2region.xdb 存在(归属地功能)
□ resource/static、resource/swagger 随二进制部署
□ 优雅重启已启用(server.graceful)
□ 进程守护(systemd/supervisor)与开机自启
□ 日志目录可写(logger.path)前端
text
□ pnpm build 构建产物 dist/
□ Nginx 托管静态 + try_files SPA 回退
□ /api 与 /upload 反代后端
□ VITE 环境变量与后端域名一致(子路径部署核对 PUBLIC_PATH)
□ HTTPS 证书(前置代理终止)验证
text
□ GET /api/health → {"code":0,...,"data":{"status":"up"}}
□ /swagger 页面可访问(OpenAPI)
□ admin 登录成功 → 首页菜单正常
□ 登录日志/操作日志正常落库
□ /api/cache/info mode=redis
□ /api/server/info 全项正常(磁盘/DB/调度器)
□ 限流生效(快速刷新触发 429)
□ 上传→预览→保存→转正 全链路
□ 定时任务挂载(daemonStatus / Scheduler.mounted)发布顺序(推荐)
text
1. 备份数据库与旧版本二进制
2. 停旧服务(或优雅重启)
3. 部署新二进制 + 配置
4. 启动 → health 检查
5. 冒烟(登录/核心接口)
6. 观察日志(启动告警/错误)
7. 出现问题回滚(旧二进制 + 备份库)回滚预案
text
□ 旧二进制可一键切回
□ 数据库变更已评估可回滚性(新增表/列可保留;破坏性变更需还原备份)
□ 前端旧 dist 保留可切回
□ 回滚演练记录