创建 Compute Engine 虚拟机实例时,将 gcp-compute.sh 用作启动脚本。脚本在首次启动时自动运行。

下载脚本: gcp-compute.sh


第一步 — 填写配置

打开脚本并编辑顶部的 CONFIGURATION 块:

  # --- 必填 ---
PROJECT_ID="rtsurvey"
ADMIN_PASSWORD="admin"                       # 首次登录后更改

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

# --- 内嵌 Keycloak ---
EMBED_KEYCLOAK="true"
KEYCLOAK_ADMIN_PASSWORD="${ADMIN_PASSWORD}"  # 默认为 ADMIN_PASSWORD
  
字段必填描述
PROJECT_ID用作数据库名称和 Keycloak 客户端 ID。小写,无空格。
ADMIN_PASSWORD应用管理员密码和 Keycloak 管理员密码。默认为 admin——首次登录后更改
DOMAINHTTPS 使用的域名。留空以仅使用 HTTP。
LETSENCRYPT_EMAIL是(如设置了 DOMAIN)Let’s Encrypt 通知邮箱。
EMBED_KEYCLOAKtrue 以部署内嵌 Keycloak(需要 4 GB RAM)。

安全提示: 所有密码默认为 admin。首次登录后立即更改它们。


第二步 — 创建虚拟机实例

Google Cloud 控制台

  1. 点击创建实例
  2. 机器配置:
    • 系列:E2
    • 机器类型:e2-medium(4 GB RAM)或更大
  3. 启动磁盘:
    • 操作系统:Ubuntu
    • 版本:Ubuntu 22.04 LTS
    • 大小:40 GB 或更多
  4. 防火墙: 勾选允许 HTTP 流量允许 HTTPS 流量
  5. 高级选项管理自动化启动脚本 → 粘贴完整脚本内容
  6. 点击创建

第三步 — 添加 DNS 记录

虚拟机启动时,在您的 DNS 提供商中添加 A 记录

  类型  : A
名称  : myapp
值    : <vm-external-ip>
TTL   : 300
  

在控制台的虚拟机实例列表中查找外部 IP。


第四步 — 监控进度

使用 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
  

第五步 — 访问应用

设置完成时,日志会显示包含应用 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,虚拟机重启时会改变。要保持稳定的 IP:

  1. 转到 VPC 网络IP 地址
  2. 点击保留外部静态地址
  3. 将其分配给您的虚拟机实例

部署后操作

更改密码

  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
  
此页面有帮助吗?