AWS EC2
Разгърнете rtCloud на инстанс AWS EC2 с помощта на скрипт за потребителски данни aws-ec2.sh.
Използвайте 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 инстанс
- Кликнете Стартиране на инстанс
- AMI: Ubuntu Server 22.04 LTS (64-bit x86)
- Тип инстанс:
t3.medium(4 GB RAM) или по-голям - Двойка ключове: Изберете или създайте такава за SSH достъп
- Мрежови настройки: Създайте или изберете Security Group (вижте по-долу)
- Разширени детайли → Потребителски данни → поставете пълното съдържание на скрипта
- Кликнете Стартиране на инстанс
Стъпка 3 — Конфигурирайте Security Group
Отворете тези портове в Security Group на инстанса:
| Порт | Протокол | Източник | Предназначение |
|---|---|---|---|
| 22 | TCP | Вашият IP | SSH достъп |
| 80 | TCP | 0.0.0.0/0 | HTTP (пренасочен към HTTPS от Nginx) |
| 443 | TCP | 0.0.0.0/0 | HTTPS |
| 3838 | TCP | 0.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.