在建立 Compute Engine VM 實例時,使用 gcp-compute.sh 作為啟動腳本。該腳本在首次啟動時自動執行。

下載腳本: gcp-compute.sh


步驟 1 — 填寫設定

開啟腳本並編輯頂部的 CONFIGURATION 區塊:

  # --- Required ---
PROJECT_ID="rtsurvey"
ADMIN_PASSWORD="admin"                       # Change after first login

# --- Domain + SSL ---
DOMAIN="myapp.example.com"
LETSENCRYPT_EMAIL="admin@example.com"

# --- Embedded Keycloak ---
EMBED_KEYCLOAK="true"
KEYCLOAK_ADMIN_PASSWORD="${ADMIN_PASSWORD}"  # Defaults to ADMIN_PASSWORD
  
欄位必填說明
PROJECT_ID用作資料庫名稱和 Keycloak 客戶端 ID。小寫,無空格。
ADMIN_PASSWORD應用程式管理員密碼和 Keycloak 管理員密碼。預設為 admin——首次登入後請更改
DOMAIN用於 HTTPS 的域名。留空以僅使用 HTTP 模式。
LETSENCRYPT_EMAIL是(如果設定了 DOMAIN)Let’s Encrypt 通知的電子郵件。
EMBED_KEYCLOAKtrue 以部署嵌入式 Keycloak(需要 4 GB RAM)。

安全性: 所有密碼預設為 admin。首次登入後請立即更改。


步驟 2 — 建立 VM 實例

Google Cloud Console

  1. 點選建立實例
  2. 機器設定:
    • 系列:E2
    • 機器類型:e2-medium(4 GB RAM)或更大
  3. 開機磁碟:
    • 作業系統:Ubuntu
    • 版本:Ubuntu 22.04 LTS
    • 大小:40 GB 或更多
  4. 防火牆: 勾選允許 HTTP 流量允許 HTTPS 流量
  5. 進階選項管理自動化啟動腳本 → 貼上完整腳本內容
  6. 點選建立

步驟 3 — 新增 DNS 記錄

VM 啟動時,在您的 DNS 提供商中新增一個 A 記錄

  Type  : A
Name  : myapp
Value : <vm-external-ip>
TTL   : 300
  

在控制台的 VM 實例清單中找到外部 IP。


步驟 4 — 監控進度

使用 gcloud CLI:

  gcloud compute ssh <instance-name> -- tail -f /var/log/rtcloud-setup.log
  

或直接 SSH:

  ssh <username>@<vm-external-ip>
tail -f /var/log/rtcloud-setup.log
  

步驟 5 — 存取應用程式

設定完成後,日誌顯示包含您的應用程式 URL 和憑證的摘要。使用使用者名稱 admin 和密碼 admin 登入,然後立即更改您的密碼。


防火牆規則

GCP 的允許 HTTP/HTTPS 核取方塊開啟連接埠 80 和 443。若要在連接埠 3838 上也允許直接 Shiny 存取,請新增防火牆規則:

  gcloud compute firewall-rules create allow-shiny \
  --allow tcp:3838 \
  --target-tags http-server
  

或透過控制台新增:VPC 網路防火牆建立規則

請勿開啟連接埠 3306(MySQL)——它絕不應公開存取。


靜態 IP(選用)

預設情況下,GCP 分配的臨時外部 IP 在 VM 重啟時會更改。要保持穩定的 IP:

  1. 前往 VPC 網路IP 位址
  2. 點選保留外部靜態位址
  3. 將其指派給您的 VM 實例

部署後

更改密碼

  nano /opt/rtcloud/.env
docker compose -f /opt/rtcloud/docker-compose.production.yml up -d --force-recreate rtcloud
  

查看所有容器

  docker compose -f /opt/rtcloud/docker-compose.production.yml ps
  
此頁面有幫助嗎?