Используйте gcp-compute.sh как стартовый скрипт при создании VM-экземпляра Compute Engine. Скрипт запускается автоматически при первой загрузке.

Скачать скрипт: gcp-compute.sh


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

Откройте скрипт и отредактируйте блок 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. Строчные буквы, без пробелов.
ADMIN_PASSWORDНетПароль администратора приложения и Keycloak. По умолчанию adminсмените после первого входа.
DOMAINНетВаш домен для HTTPS. Оставьте пустым для режима только HTTP.
LETSENCRYPT_EMAILДа (если задан DOMAIN)Email для уведомлений Let’s Encrypt.
EMBED_KEYCLOAKНетtrue для развёртывания встроенного Keycloak (требует 4 ГБ RAM).

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


Шаг 2 — Создайте VM-экземпляр

В Google Cloud Console:

  1. Нажмите Create instance
  2. Конфигурация машины:
    • Серия: E2
    • Тип машины: e2-medium (4 ГБ RAM) или больше
  3. Загрузочный диск:
    • Операционная система: Ubuntu
    • Версия: Ubuntu 22.04 LTS
    • Размер: 40 ГБ или больше
  4. Брандмауэр: отметьте Allow HTTP traffic и Allow HTTPS traffic
  5. Advanced optionsManagementAutomationStartup script → вставьте полное содержимое скрипта
  6. Нажмите Create

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

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

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

Внешний IP можно найти в списке VM-экземпляров в консоли.


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

Используя CLI gcloud:

  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 Allow HTTP/HTTPS открывают порты 80 и 443. Для прямого доступа к Shiny на порту 3838 добавьте правило брандмауэра:

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

Или добавьте через консоль: VPC NetworkFirewallCreate rule.

Не открывайте порт 3306 (MySQL) — он никогда не должен быть публично доступен.


Статический IP (опционально)

По умолчанию GCP назначает временный внешний IP, который меняется при перезапуске VM. Для сохранения стабильного IP:

  1. Перейдите в VPC NetworkIP addresses
  2. Нажмите Reserve external static address
  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
  
Была ли эта страница полезной?