DigitalOcean
Разверните rtCloud на Droplet DigitalOcean с помощью автоматизированных скриптов user-data.
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:
- Нажмите Create → Droplets
- Выберите Ubuntu 22.04 LTS в качестве образа
- Выберите план Basic, 4 ГБ RAM / 2 vCPU или больше
- Прокрутите до Advanced Options → поставьте галочку Add Initialization scripts
- Вставьте полное содержимое скрипта в текстовое поле
- Нажмите 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