DigitalOcean использует скрипты User Data, которые автоматически запускаются при первой загрузке. Вы заполняете переменные конфигурации в начале скрипта, а затем вставляете весь скрипт при создании Droplet.

В отличие от StackScripts Linode, у DigitalOcean нет графического интерфейса формы — вы должны редактировать скрипт напрямую перед вставкой.

Скачать скрипт: digitalocean-droplet-keycloak-embed.sh


Встроенный Keycloak (рекомендуется)

Используйте digitalocean-droplet-keycloak-embed.sh для простейшей настройки со встроенным SSO.

Шаг 1 — Заполните конфигурацию

Откройте скрипт и отредактируйте блок CONFIGURATION в начале:

  # --- Обязательные ---
PROJECT_ID="rtsurvey"                  # Уникальный идентификатор вашего проекта (без пробелов)
ADMIN_PASSWORD="admin"                 # Пароль для администратора приложения и Keycloak — смените после первого входа

# --- Домен + SSL ---
DOMAIN="myapp.example.com"            # Ваш домен — A-запись DNS должна указывать сюда
PROJECT_URL=""                         # Оставьте пустым, если не за Cloudflare/прокси
LETSENCRYPT_EMAIL="admin@example.com" # Email для уведомлений Let's Encrypt

# --- Необязательные ---
STATA_ENABLED="false"
TZ="Asia/Ho_Chi_Minh"
  
ПолеОбязательноеОписание
PROJECT_IDДаИспользуется как имя базы данных и идентификатор клиента Keycloak. Строчные буквы, без пробелов.
ADMIN_PASSWORDНетПароль для входа администратора приложения и консоли администратора Keycloak. По умолчанию adminсмените после первого входа.
DOMAINДаВаше доменное имя. A-запись DNS должна указывать на IP Droplet.
LETSENCRYPT_EMAILДаEmail для уведомлений о сертификате Let’s Encrypt.
PROJECT_URLНетПереопределить публичный URL. Оставьте пустым для использования DOMAIN. Полезно за Cloudflare.

Безопасность: Все пароли по умолчанию равны admin. Немедленно смените их после первого входа.

Шаг 2 — Создайте Droplet

В панели управления DigitalOcean:

  1. Нажмите CreateDroplets
  2. Выберите Ubuntu 22.04 LTS в качестве образа
  3. Выберите план Basic, 4 ГБ RAM / 2 vCPU или больше
  4. Прокрутите до Advanced Options → поставьте галочку Add Initialization scripts
  5. Вставьте полное содержимое скрипта в текстовое поле
  6. Нажмите Create Droplet

Шаг 3 — Добавьте DNS-запись

Пока Droplet загружается, добавьте A-запись у вашего DNS-провайдера:

  Type  : A
Name  : myapp          (или @ для корневого домена)
Value : <droplet-ip>
TTL   : 300
  

Шаг 4 — Отслеживайте прогресс

Подключитесь к Droplet по SSH и наблюдайте за журналом:

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

Скрипт выводит IP сервера в начале — добавьте DNS-запись, как только увидите его.

Шаг 5 — Откройте приложение

Когда настройка завершится, журнал покажет итоговую информацию:

  ============================================================
 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.

Смените пароль немедленно после входа через Настройки в меню верхнего правого угла.


После развёртывания

Смена пароля

Подключитесь к Droplet по SSH, отредактируйте .env и перезапустите затронутый контейнер:

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

Обновление домена

Если после развёртывания вы назначите другой домен, обновите PROJECT_URL в .env:

  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
  
Была ли эта страница полезной?