Використовуйте gcp-compute.sh як Startup script при створенні екземпляру 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. Machine configuration:
    • Серія: E2
    • Тип машини: e2-medium (4 ГБ RAM) або більший
  3. Boot disk:
    • Операційна система: Ubuntu
    • Версія: Ubuntu 22.04 LTS
    • Розмір: 40 ГБ або більше
  4. Firewall: відмітьте 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
  
Чи була ця сторінка корисною?