AWS EC2
Distribuisci rtCloud su un’istanza AWS EC2 usando lo script user data aws-ec2.sh.
Usa aws-ec2.sh come script User Data quando avvii un’istanza EC2. Lo script viene eseguito automaticamente al primo avvio.
Scarica lo script: aws-ec2.sh
Passaggio 1 — Compila la configurazione
Apri lo script e modifica il blocco CONFIGURATION nella parte superiore:
# --- Obbligatorio ---
PROJECT_ID="rtsurvey"
ADMIN_PASSWORD="admin" # Cambia dopo il primo accesso
# --- Dominio + SSL ---
DOMAIN="myapp.example.com"
LETSENCRYPT_EMAIL="admin@example.com"
# --- Keycloak integrato ---
EMBED_KEYCLOAK="true"
KEYCLOAK_ADMIN_PASSWORD="${ADMIN_PASSWORD}" # Predefinito a ADMIN_PASSWORD
| Campo | Obbligatorio | Descrizione |
|---|---|---|
PROJECT_ID | Sì | Usato come nome del database e ID client Keycloak. Minuscolo, senza spazi. |
ADMIN_PASSWORD | No | Password admin dell’app e password admin Keycloak. Predefinito a admin — cambia dopo il primo accesso. |
DOMAIN | No | Il tuo dominio per HTTPS. Lascia vuoto per la modalità solo HTTP. |
LETSENCRYPT_EMAIL | Sì (se DOMAIN è impostato) | Email per le notifiche di Let’s Encrypt. |
EMBED_KEYCLOAK | No | true per distribuire Keycloak integrato (richiede 4 GB di RAM). |
Sicurezza: Tutte le password hanno
admincome valore predefinito. Cambiale immediatamente dopo il tuo primo accesso.
Passaggio 2 — Avvia un’istanza EC2
Nella console AWS EC2:
- Fai clic su Avvia istanza
- AMI: Ubuntu Server 22.04 LTS (64 bit x86)
- Tipo di istanza:
t3.medium(4 GB RAM) o superiore - Coppia di chiavi: Seleziona o crea una per l’accesso SSH
- Impostazioni di rete: Crea o seleziona un Security Group (vedi sotto)
- Dettagli avanzati → Dati utente → incolla il contenuto completo dello script
- Fai clic su Avvia istanza
Passaggio 3 — Configura il Security Group
Apri queste porte nel Security Group dell’istanza:
| Porta | Protocollo | Origine | Scopo |
|---|---|---|---|
| 22 | TCP | Il tuo IP | Accesso SSH |
| 80 | TCP | 0.0.0.0/0 | HTTP (reindirizzato a HTTPS da Nginx) |
| 443 | TCP | 0.0.0.0/0 | HTTPS |
| 3838 | TCP | 0.0.0.0/0 | Accesso diretto Shiny |
Non aprire la porta 3306 (MySQL) — non deve mai essere accessibile pubblicamente.
Passaggio 4 — Aggiungi il record DNS
Mentre l’istanza si avvia, aggiungi un record A nel tuo provider DNS:
Tipo : A
Nome : myapp
Valore : <instance-public-ip>
TTL : 300
Passaggio 5 — Monitora l’avanzamento
ssh ubuntu@<instance-ip>
tail -f /var/log/rtcloud-setup.log
Passaggio 6 — Accedi all’app
Al completamento della configurazione, il log mostra un riepilogo con l’URL dell’app e le credenziali. Accedi con nome utente admin e password admin, poi cambia subito la tua password.
Dopo il deployment
Cambiare una password
nano /opt/rtcloud/.env
docker compose -f /opt/rtcloud/docker-compose.production.yml up -d --force-recreate rtcloud
Visualizza tutti i container
docker compose -f /opt/rtcloud/docker-compose.production.yml ps
Assegna un Elastic IP (opzionale)
Se fermi e riavvii l’istanza, l’IP pubblico cambia. Per mantenere un IP stabile, alloca un Elastic IP e associalo all’istanza nella console EC2.