DigitalOcean 使用用户数据脚本,在首次启动时自动运行。您在脚本顶部填写配置变量,然后在创建 Droplet 时粘贴整个脚本。

与 Linode StackScript 不同,DigitalOcean 没有表单界面——您必须在粘贴前直接编辑脚本。

下载脚本: digitalocean-droplet-keycloak-embed.sh


内嵌 Keycloak(推荐)

使用 digitalocean-droplet-keycloak-embed.sh 进行最简单的内置 SSO 设置。

第一步 — 填写配置

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

  # --- 必填 ---
PROJECT_ID="rtsurvey"                  # 项目唯一标识符(无空格)
ADMIN_PASSWORD="admin"                 # 应用管理员和 Keycloak 密码——首次登录后更改

# --- 域名 + SSL ---
DOMAIN="myapp.example.com"            # 您的域名——DNS A 记录必须指向此处
PROJECT_URL=""                         # 除非在 Cloudflare/代理后面,否则留空
LETSENCRYPT_EMAIL="admin@example.com" # Let's Encrypt 通知邮箱

# --- 可选 ---
STATA_ENABLED="false"
TZ="Asia/Ho_Chi_Minh"
  
字段必填描述
PROJECT_ID用作数据库名称和 Keycloak 客户端 ID。小写,无空格。
ADMIN_PASSWORD应用管理员登录和 Keycloak 管理控制台的密码。默认为 admin——首次登录后更改
DOMAIN您的域名。DNS A 记录必须指向 Droplet IP。
LETSENCRYPT_EMAILLet’s Encrypt 证书通知的邮箱地址。
PROJECT_URL覆盖公共 URL。留空以使用 DOMAIN。在 Cloudflare 后面时很有用。

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

第二步 — 创建 Droplet

DigitalOcean 控制面板

  1. 点击创建Droplets
  2. 选择 Ubuntu 22.04 LTS 作为镜像
  3. 选择 Basic,4 GB RAM / 2 vCPU 或更大
  4. 向下滚动到高级选项 → 勾选添加初始化脚本
  5. 将完整脚本内容粘贴到文本框中
  6. 点击创建 Droplet

第三步 — 添加 DNS 记录

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

  类型  : A
名称  : myapp          (或根域名的 @)
值    : <droplet-ip>
TTL   : 300
  

第四步 — 监控进度

SSH 到 Droplet 并查看日志:

  ssh root@<droplet-ip>
tail -f /var/log/rtcloud-setup.log
  

脚本在开始时会打印您的服务器 IP——看到后立即添加 DNS 记录。

第五步 — 访问应用

设置完成时,日志会显示摘要:

  ============================================================
 rtCloud deployment complete! (Embedded Keycloak)
============================================================
 App URL   : https://myapp.example.com
 Admin     : admin / admin
 Keycloak  : https://myapp.example.com/auth/admin

 !! SECURITY: All passwords default to 'admin'.
    Change them immediately after first login.
============================================================
  

在浏览器中打开 https://myapp.example.com,使用用户名 admin 和密码 admin 登录。

登录后,立即通过右上角菜单中的设置更改密码。


部署后操作

更改密码

SSH 到 Droplet,编辑 .env,然后重启受影响的容器:

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

更新域名

如果在部署后分配了不同的域名,请在 .env 中更新 PROJECT_URL

  nano /opt/rtcloud/.env   # 更新 PROJECT_URL=
docker compose -f /opt/rtcloud/docker-compose.production.yml up -d --force-recreate rtcloud
  

查看所有容器

  docker compose -f /opt/rtcloud/docker-compose.production.yml ps
  
此页面有帮助吗?