Използвайте aws-ec2.sh като скрипт за потребителски данни (User Data) при стартиране на EC2 инстанс. Скриптът се изпълнява автоматично при първото стартиране.

Изтеглете скрипта: aws-ec2.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 client ID. Малки букви, без интервали.
ADMIN_PASSWORDНеПарола на администратора на приложението и на Keycloak. По подразбиране е adminсменете след първото влизане.
DOMAINНеВашият домейн за HTTPS. Оставете празно за режим само с HTTP.
LETSENCRYPT_EMAILДа (ако е зададен DOMAIN)Имейл за известия от Let’s Encrypt.
EMBED_KEYCLOAKНеtrue за разгръщане на вграден Keycloak (изисква 4 GB RAM).

Сигурност: Всички пароли по подразбиране са admin. Сменете ги незабавно след първото влизане.


Стъпка 2 — Стартирайте EC2 инстанс

В конзолата на AWS EC2:

  1. Кликнете Стартиране на инстанс
  2. AMI: Ubuntu Server 22.04 LTS (64-bit x86)
  3. Тип инстанс: t3.medium (4 GB RAM) или по-голям
  4. Двойка ключове: Изберете или създайте такава за SSH достъп
  5. Мрежови настройки: Създайте или изберете Security Group (вижте по-долу)
  6. Разширени детайлиПотребителски данни → поставете пълното съдържание на скрипта
  7. Кликнете Стартиране на инстанс

Стъпка 3 — Конфигурирайте Security Group

Отворете тези портове в Security Group на инстанса:

ПортПротоколИзточникПредназначение
22TCPВашият IPSSH достъп
80TCP0.0.0.0/0HTTP (пренасочен към HTTPS от Nginx)
443TCP0.0.0.0/0HTTPS
3838TCP0.0.0.0/0Директен достъп до Shiny

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


Стъпка 4 — Добавете DNS запис

Докато инстансът стартира, добавете A запис при вашия DNS доставчик:

  Type  : A
Name  : myapp
Value : <instance-public-ip>
TTL   : 300
  

Стъпка 5 — Наблюдавайте напредъка

  ssh ubuntu@<instance-ip>
tail -f /var/log/rtcloud-setup.log
  

Стъпка 6 — Достъп до приложението

Когато настройката завърши, дневникът показва обобщение с URL адреса на приложението и идентификационните данни. Влезте с потребителско име admin и парола admin, след което незабавно сменете паролата.


След разгръщането

Промяна на парола

  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
  

Присвояване на Elastic IP (незадължително)

Ако спрете и стартирате инстанса, публичният IP адрес се променя. За поддържане на стабилен IP, разпределете Elastic IP и го асоциирайте с инстанса в конзолата на EC2.

Беше ли полезна тази страница?