📚職涯停看聽・知識庫← 總部儀表板
知識庫/操作 SOP/系統部署與回滾 SOP

系統部署與回滾 SOP

狀態:有效 | 最後更新:2026-04-11 執行時機:任何系統有功能更新、修復或緊急回滾時 負責部門:開發部(DEV)


各系統部署方式

系統 部署平台 觸發方式 部署時間
官網 Vercel git push to main ~1 分鐘
診斷 Vercel git push to main ~2 分鐘
儀表板 Vercel git push to main ~2 分鐘
預約 Render git push to main ~3-5 分鐘(含冷啟動)
看板 本機 Node.js 手動重啟 即時

標準部署流程(功能更新)

第一步:上線前確認(三層清單)

執行 /上線確認 [系統名稱] 或手動核對:

第一層:功能確認

  • 功能在本機正常運作?
  • 邊界情況(空值、長文字、特殊字元)測試過?
  • 桌機瀏覽器測試通過?
  • 手機瀏覽器測試通過?

第二層:跨系統影響

  • 不影響其他系統的 API 介面?
  • 不影響共用環境變數?
  • 不影響用戶現有操作流程?

第三層:風險確認

  • 知道如何回滾(見下方回滾流程)?
  • 部署期間有無影響服務可用性?

三層全部通過 → 執行部署。任一層有疑慮 → 先解決。

第二步:執行部署

Vercel 系統(官網 / 診斷 / 儀表板):

git add -A
git commit -m "說明這次改了什麼"
git push origin main

→ Vercel 自動偵測 push,開始部署 → 約 1-2 分鐘後上線

Render 系統(預約):

git add -A
git commit -m "說明這次改了什麼"
git push origin main

→ Render 自動偵測 push,開始部署 → 約 3-5 分鐘後上線(有冷啟動延遲)

看板(本機):

  1. 停止現有 Node.js 進程(Ctrl+C)
  2. 執行更新的程式碼
  3. node server.js 重新啟動

第三步:部署後驗證

  1. 開啟實際網址確認頁面正常載入
  2. 測試剛才修改的功能
  3. 快速掃描其他主要功能沒有受影響
  4. 手機版也確認一次

第四步:更新記錄

dev/tasks.md → 將對應任務移至「已完成」
hr/inventory.json → 更新 last_updated、health_score(如有變化)
projects/SYS-XX.md → 新增變更記錄一行

緊急回滾流程

Vercel 系統回滾(官網 / 診斷 / 儀表板)

方法 A:透過 Vercel 控制台(最快)

  1. 開啟 vercel.com → 進入對應專案
  2. 點選「Deployments」→ 找到上一個正常的部署(Promote to Production)
  3. 點「...」→「Promote to Production」
  4. 約 30 秒生效

方法 B:透過 Git 回滾

git revert HEAD          # 建立新 commit 反轉上一次更改
git push origin main     # 推送,觸發重新部署

Render 系統回滾(預約)

方法:透過 Render 控制台

  1. 開啟 render.com → 進入預約系統服務
  2. 點選「Deploys」→ 找到上一個正常的部署
  3. 點「Rollback to this deploy」
  4. 約 3-5 分鐘生效

注意:預約系統回滾不影響 MongoDB 資料(資料庫獨立於程式碼)

看板回滾(本機)

git log --oneline      # 找到上一個正常版本的 commit hash
git checkout [hash]    # 切換到該版本
node server.js         # 重新啟動

環境變數管理

各系統的環境變數記錄在: tzlth-hq/security/security-log.md

加入或修改環境變數的流程:

Vercel(官網/診斷/儀表板):

  1. vercel.com → 專案 → Settings → Environment Variables
  2. 新增/修改後,需重新部署才生效(觸發一次 git push 或在 Vercel 手動 Redeploy)

Render(預約):

  1. render.com → 服務 → Environment
  2. 修改後 Render 自動重新部署

修改後記得更新 security-log.md(只記錄變數名稱和用途,不記錄實際值)


各系統緊急聯絡資訊

系統 部署控制台 監控方式
官網 / 診斷 / 儀表板 vercel.com Vercel 自動告警
預約 render.com UptimeRobot(已設定)
看板 本機 手動確認 localhost:3939

常見問題

Q:Vercel 部署卡住或失敗怎麼辦? → vercel.com → Deployments → 查看 Build Logs 找錯誤訊息 → 告訴 Claude 錯誤內容

Q:Render 每次都要等很久才能訪問? → Render 免費方案有「冷啟動」機制(閒置 15 分鐘後休眠),第一次請求需要 20-30 秒等待。UptimeRobot 每 14 分鐘 ping 一次防止休眠,已設定中。

Q:部署後發現功能壞了,要趕快回滾嗎? → 評估影響範圍:

  • 影響用戶(診斷/預約/官網)→ 立即回滾
  • 只影響自用工具(看板/儀表板)→ 可以先修復再重新部署
← 返回 操作 SOP