跳到主要內容

幕後

本站如何打造

這個網站的部署方式,跟我們幫客戶部署專案的方式一模一樣。以下是完整設定。

架構

從一次 push 到網頁上線

推送到 GitHub 的 main 分支後,GitHub Actions 會檢查、測試、建置並稽核網站,再透過 SSH 部署到 Linux 主機。主機把每次發佈放在獨立目錄並切換 current symlink,訪客透過 HTTPS 連線。監控與備份持續看著主機。 開發者 git push main GitHub repository GitHub Actions lint · test · build · audit Linux 主機 releases/ → current 訪客 HTTPS 監控 uptime · backups SSH 部署

應用程式

Laravel 版本、Blade 模板,以及依設計 token 手寫的樣式表。

主機

Ubuntu / AlmaLinux,架在 VPS / AWS EC2,Nginx + PHP-FPM。

交付

GitHub Actions 負責建置、測試,並透過 SSH 部署。

發佈

每次部署放進新的 releases/ 目錄;建置成功後才切換 current symlink。

防護

Let's Encrypt 提供 HTTPS、安全標頭(CSP、HSTS)、每日備份。

部署 pipeline

每次 push,都走同樣六個步驟

任何一個步驟失敗,發佈就會停下來,線上網站繼續跑上一版。

  1. Lint

    用 Laravel Pint 檢查程式碼風格。

  2. Test

    在全新的資料庫上跑測試。

  3. Build

    編譯前端資源並加上版本號。

  4. Audit

    Lighthouse CI 分數低於門檻,就讓建置失敗。

  5. Deploy

    透過 SSH 同步到新的 release 目錄,執行 migration,再切換 symlink。

  6. Verify

    健康檢查確認新版本有回應,否則自動回滾。

實測

數字你可以自己驗證

每個數字都連到量測它的工具。

—Lighthouse 效能分數上線後量測
—安全標頭評等上線後量測
—平均部署時間上線後量測
—近 90 天可用率上線後量測

下一步

有專案要做,或團隊需要多一位工程師?

告訴我們你在做什麼,我們會在一個工作天內回覆。