Browse Source

docs: document release workflow

AI-Co-Authored-By: Codex
chendeben 1 month ago
parent
commit
35259f1c17
1 changed files with 21 additions and 0 deletions
  1. 21 0
      AGENTS.md

+ 21 - 0
AGENTS.md

@@ -14,6 +14,27 @@ MailHub 是基于 Node.js ESM 的 Docker 化发信控制面板、SMTP Submission
 
 Node.js 版本需满足 `package.json` 中的 `>=24.0.0`。
 
+## 发布流程
+
+发布前先确认工作区范围,避免把无关变更带上:`git status -sb`、`git log --oneline --decorate -5`。提交或部署前必须运行 `npm run build`、`npm test` 和 `git diff --check`;前端构建会更新 `public/` 下的静态资源,若 hash 变化应与源码一起提交。
+
+生产部署使用远程脚本:
+
+```bash
+MAILHUB_DEPLOY_REMOTE="root@192.227.215.183" MAILHUB_DEPLOY_DIR="/www/wwwroot/mail.ss5.xyz" npm run deploy:remote
+```
+
+部署脚本会让远程服务器从 `git.ss5.xyz` 拉取 `master` 并重建 Docker 服务。部署后需在远程目录检查代码版本、容器健康状态和登录页响应:
+
+```bash
+cd /www/wwwroot/mail.ss5.xyz
+git rev-parse --short HEAD
+docker compose ps
+curl -fsS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:3025/login
+```
+
+预期 `mailhub-app` 与 `mailhub-postfix` 均为 `healthy`,登录页返回 `200`。发布过程不得覆盖远程 `.env`、`data/`、证书私钥或其他运行期数据。
+
 ## 编码风格与命名规范
 
 使用 ES modules,保持文件职责单一、实现直接。默认使用 `const`,仅在需要重新赋值时使用 `let`。遵循现有 JavaScript 风格:两空格缩进、保留分号、变量和函数使用描述性 camelCase,浏览器资源文件名使用 kebab-case。注释应简短且有价值,并与周围代码语言保持一致。