Inkwell 发布与部署检查清单
本文档用于在正式部署、升级、迁移或长期搁置后重新恢复时,快速检查当前版本是否具备可上线状态。
如果你不确定这次改动到底该补哪些验证,先看:
docs/testing-strategy.md- 本文档
1. 发布前代码检查
至少执行:
bash
npm run type-check
npm run lint
npm run test若改动涉及以下任一内容,建议进一步执行:
bash
npm run test:integration
npm run test:browser适用场景:
- 数据库变更
- 部署链路
- 后台登录/鉴权
- 前台公开交互
- 搜索
- 备份恢复
- 媒体上传
- settings / admin_path
2. 文档同步检查
如果改动涉及以下内容,必须同步文档:
- 新增 CLI 命令
- 环境变量变更
- 部署方式变化
- 备份/恢复流程变化
- 搜索重建流程变化
- 后台路径、登录、HTTPS、反向代理行为变化
- 新增或删除公开能力
- 新增开发者必须了解的工作流
- 变更测试建议、执行边界或扩展方式
重点检查:
README.mddocs/deployment.mddocs/troubleshooting.mddocs/faq.mddocs/architecture.mddocs/development.mddocs/environment.md- 本文档
- 对应专项手册
3. 本地/目标环境配置检查
3.1 环境变量
确认以下变量已配置:
bash
DATABASE_URL=
MEILISEARCH_HOST=
MEILISEARCH_API_KEY=
NEXTAUTH_SECRET=
NEXTAUTH_URL=
INTERNAL_CRON_SECRET=3.2 依赖服务
确认:
- PostgreSQL 可访问
- Meilisearch 可访问
- 应用运行环境已准备好(Node.js 或容器)
3.3 配置归属没有混淆
确认:
- 部署级 secret 仍在
.env/ 环境注入中维护 - DB-backed setting 没被误做成部署环境变量
- route-affecting setting 改动后已同步验证重定向与文档
4. 数据库与初始化检查
按需执行:
bash
npm run db:migrate
npm run db:seed
npm run admin:create -- <email> <username> <displayName> <password>检查点:
- 迁移是否成功
- 是否需要初始化默认 settings
- 是否已有可用管理员账号
5. 专项变更检查
5.1 schema / migration 改动
如果本次改动涉及 schema,至少确认:
- 只修改了
lib/db/schema/** - 使用
npm run db:generate生成迁移 - 没有手改自动生成 migration
lib/db/schema/index.ts的 export / relation 已同步- 若新增业务表,已检查 backup/export/import、搜索、seed、tests
建议参考:docs/schema-and-migrations.md
5.2 settings 系统改动
如果本次改动涉及 setting,至少确认:
- 已判断它应该进
.env还是settings lib/settings-config.ts定义完整- 相关 getter / admin service / form / action 已同步
- 若为 secret,已检查导出/恢复语义
- 若影响路由或公开页面,已检查 revalidation 与 browser 测试
建议参考:docs/settings-system.md
5.3 admin_path / 鉴权 / 登录改动
如果本次改动涉及后台路径、登录或鉴权,至少确认:
NEXTAUTH_SECRET/NEXTAUTH_URL正确- HTTPS 场景可稳定登录
- 登录跳转与受保护页跳转正确
- 浏览器测试或手动 smoke 已覆盖
- 相关文档已同步
5.4 搜索 / 备份 / 定时发布 / 运维脚本改动
如果本次改动涉及这些链路,至少确认:
- CLI 入口没有重新依赖 Web-only 上下文
- internal API 的鉴权边界仍正确
- backup 恢复后的搜索重建路径可用
- 机器可读输出与退出码行为没有退化
建议参考:docs/execution-boundaries.md
5.5 revalidation 范围改动
如果本次改动改变了 mutation 成功后的刷新行为,至少确认:
- 后台页是否被刷新
- 对应公开路由是否被刷新
- sitemap / RSS 是否需要刷新
- layout 级 setting 改动是否刷新首页或公共布局
6. 搜索与备份链路检查
6.1 搜索重建
按需执行:
bash
npm run search:reindex-posts适用场景:
- 首次启用 Meilisearch
- Meilisearch 数据丢失
- 备份恢复后
6.2 备份导出
bash
npm run backup:export -- --output ./backup6.3 备份导入
bash
npm run backup:import -- --input ./backup --force --reindex-search检查点:
- 导出是否成功
- 导入是否按预期拒绝/覆盖
- 恢复后搜索是否能重建
7. 宿主机部署检查
如果使用 Linux VPS 宿主机部署,至少确认:
7.1 build 与 standalone
bash
npm run build构建后确认:
public已复制到.next/standalone.next/static已复制到.next/standalone/.next
7.2 systemd / 环境文件
确认运行进程显式加载了 .env.local,否则可能出现:
DATABASE_URL is not configured
7.3 HTTPS
确认:
- 公网已启用 HTTPS
NEXTAUTH_URL为外部 HTTPS 地址- 后台登录会话可稳定持久化
8. Docker / Compose 部署检查
如果使用 Compose,至少确认:
app + postgres + meilisearch均可启动public/uploads已持久化- PostgreSQL / Meilisearch 数据卷已持久化
- 首次启动后执行过:
bash
npm run db:migrate
npm run admin:create -- <email> <username> <displayName> <password>
npm run search:reindex-posts- 反向代理 / TLS 在容器外处理
9. 上线后 smoke 检查
建议至少覆盖:
9.1 基础访问
- 首页返回 200
- CSS / JS 正常加载
- 关键页面可访问
9.2 后台
- 后台登录页可打开
- 登录成功后会话稳定
- 能进入文章管理页
9.3 内容链路
- 新建/编辑/发布文章成功
- 前台文章页可访问
- sitemap / RSS 更新正常
9.4 运维链路
GET /api/health正常- 定时发布 CLI 或内部 API 可触发
- 搜索可用
- 备份导出/恢复可执行
如果这次是真实发布而不是纯本地验证,完成以上 smoke 后,建议继续看:
docs/monitoring-and-logs.md中的“发布后值班 / 回看建议”
10. 文档站检查
如果本次改动涉及 docs site,还应确认:
本地
bash
npm run docs:build
npm run docs:previewGitHub Pages
- GitHub Actions workflow 成功
- Pages 可访问
- 导航、搜索、链接正常
- 关键开发文档可访问
- 新增手册已能从 sidebar 或索引页找到
11. 长期搁置后重新接手时的恢复顺序
如果项目停了一段时间,再回来时建议按顺序恢复:
README.mddocs/deployment.mddocs/troubleshooting.mddocs/architecture.mddocs/development.mddocs/environment.md- 本文档
这样能最快恢复:
- 部署状态
- 架构认知
- 运行配置
- 发布检查路径