Ruby: 部署到正式環境

如何在幾分鐘內將您的 Ruby 程式碼部署到正式環境

👋 歡迎來到 Stackhero 文檔!

Stackhero 提供一個即用型的 Ruby cloud 解決方案,帶來多項好處,包括:

  • 只需一個簡單的 git push,即可在幾秒鐘內部署您的應用程式。
  • 使用您自己的域名,並享受 HTTPS 證書的自動配置以增強安全性。
  • 享受自動備份一鍵更新,以及簡單、透明且可預測的定價,讓您安心無憂。
  • 憑藉專用的私人 VM,獲得最佳的性能和強大的安全性

節省時間簡化您的生活:只需 5 分鐘即可嘗試 Stackhero 的 Ruby cloud hosting 解決方案!

Stackhero 的 Ruby 雲端代管服務 讓您能在短短幾分鐘內,輕鬆將 Ruby 專案部署到正式環境,結合強大的平台與直覺的使用體驗。

您將獲得以下優勢:

  • 只需一行 git push 指令即可部署您的程式碼。
  • 可使用自訂網域,並自動管理 TLS 憑證(HTTPS)。
  • 您的應用程式運行於專屬、私有的 VM,確保最高等級的安全性與隱私。
  • 支援 HTTP/2、TLS 1.3(HTTPS)、WebSockets、GZIP 與 Brotli 壓縮、ETag、TCP 與 UDP 埠存取等多項功能。

您只需要在電腦上安裝 Git,就可以開始在 Stackhero 上部署您的專案。

如果您想節省時間,或不想設定複雜的本地開發環境,建議您可以參考 Stackhero 的 Code-Hero

Code-Hero 是一個可直接在瀏覽器上使用的即時開發平台,無論是電腦、平板還是手機都能存取。它基於 VSCode fork,預先安裝並設定好所有必要工具,讓您無需任何安裝或設定即可立即開始撰寫程式碼。

<!-- ![Example of a Code-Hero instance running directly on the browser](/images/docs/ruby/040_deploy/rubyInCodeHero.png) -->

將您的 Ruby 應用程式部署到 Stackhero 非常簡單。以下是您需要執行的步驟,我們將逐一說明:

  1. 在 Stackhero 上建立 Ruby 服務。
  2. 將您的 SSH 公鑰加入 Ruby 服務的設定中。
  3. 在您的開發平台上設定 git push 指令。
  4. 在專案中新增 Makefile。
  5. 將您的程式碼部署到正式環境。

如果您在部署過程中遇到任何問題,疑難排解 文件可以協助您快速找到解決方案。建議您優先查閱,以節省時間並減少挫折感。

如果您尚未建立 Stackhero for Ruby 服務,可以在 Stackhero 控制台中於幾分鐘內完成。

當您的 Ruby 服務啟動後,下一步是新增您的 SSH 公鑰。您可以透過以下指令找到您的公鑰:

cat ~/.ssh/id_*.pub

還沒有 SSH 金鑰嗎?

您可以使用以下指令產生:

ssh-keygen -t ed25519

要新增 SSH 金鑰,請前往 Stackhero 控制台,選擇您的 Ruby 服務,點選「設定」,並將您的公鑰貼到「SSH 公鑰」欄位。

<!-- ![Example of a Ruby service configuration](/images/docs/ruby/040_deploy/rubyStackheroPublicKey.png) -->

小提示:想要未來節省設定時間嗎?您可以將 SSH 公鑰加入個人檔案,這樣日後新建立的服務都會自動包含該金鑰。

只需點擊控制台右上角的大頭貼,選擇「個人檔案」,然後新增您的 SSH 公鑰即可。

部署到 Stackhero 僅需使用 Git CLI 及 git push 指令,無需安裝其他工具。

您可以從 Stackhero 控制台服務主頁複製 git remote 指令。通常格式如下:

git remote add stackhero ssh://stackhero@<XXXXXX>.stackhero-network.com:222/project.git
<!-- ![Ruby Git remote command on Stackhero's dashboard](/images/docs/ruby/040_deploy/rubyStackheroGitRemote.png) -->

為了讓 Stackhero 知道如何執行您的應用程式,您需要在專案根目錄建立一個 Makefile。這個檔案會定義 Stackhero 部署時要執行的指令。

如果您不熟悉 Makefile 或 make 指令,請不用擔心,以下步驟會詳細說明。

請建立一個 Makefile,內容如下:

run:
	rake assets:precompile
	rake db:migrate RAILS_ENV=production
	RAILS_ENV=production bundle exec puma -C config/puma.rb

這個 Makefile 的說明如下:

  1. run 規則是必要的,Stackhero 會在部署時自動執行它。請務必保留這個名稱,因為它是進入點。
  2. 指令中使用了 rakebundle,但您可以根據應用程式需求自行調整。
  3. 請確保每一行指令前面都是 Tab 字元,而不是空格。如果出現 *** missing separator 這類錯誤,請檢查格式。

在上述範例中,部署流程會:

  1. 將 JavaScript 與 CSS 等資產預先編譯到 public/assets 目錄。
  2. 執行所需的資料庫遷移。
  3. 啟動 Puma 伺服器來服務您的應用程式。

一切就緒。要將您的程式碼部署到 Stackhero,只需執行:

git push stackhero main

第一次執行時,系統會要求您確認 SSH 金鑰指紋。請輸入「yes」繼續。

稍待片刻,您的應用程式就會上線。

<!-- ![Example of deploying Ruby code to Stackhero using the `git push` command](/images/docs/ruby/040_deploy/rubyDeployGitPush.png) -->

您可以透過 Stackhero 控制台顯示的網站網址存取已部署的應用程式,通常格式為 https://<XXXXXX>.stackhero-network.com

恭喜您,您的應用程式現在已經在正式環境上線。

部署遇到問題嗎?

請務必參考 疑難排解 區段,快速找到解決方法。

您已經學會如何透過 Stackhero,使用簡單又強大的流程將 Ruby 程式碼部署到正式環境。

如果您想進一步了解,請參考 進階部署用法 文件,內容涵蓋如何部署不同的 git 分支、特定標籤或 commit,以及如何管理多個環境(如 staging 與 production)。您也會找到有關環境變數等進階技巧。

請記得,若在部署過程中遇到任何問題,疑難排解 文件是協助您高效解決問題、保持順暢工作流程的最佳資源。