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
  
CampoObbligatorioDescrizione
PROJECT_IDUsato come nome del database e ID client Keycloak. Minuscolo, senza spazi.
ADMIN_PASSWORDNoPassword admin dell’app e password admin Keycloak. Predefinito a admincambia dopo il primo accesso.
DOMAINNoIl tuo dominio per HTTPS. Lascia vuoto per la modalità solo HTTP.
LETSENCRYPT_EMAILSì (se DOMAIN è impostato)Email per le notifiche di Let’s Encrypt.
EMBED_KEYCLOAKNotrue per distribuire Keycloak integrato (richiede 4 GB di RAM).

Sicurezza: Tutte le password hanno admin come valore predefinito. Cambiale immediatamente dopo il tuo primo accesso.


Passaggio 2 — Avvia un’istanza EC2

Nella console AWS EC2:

  1. Fai clic su Avvia istanza
  2. AMI: Ubuntu Server 22.04 LTS (64 bit x86)
  3. Tipo di istanza: t3.medium (4 GB RAM) o superiore
  4. Coppia di chiavi: Seleziona o crea una per l’accesso SSH
  5. Impostazioni di rete: Crea o seleziona un Security Group (vedi sotto)
  6. Dettagli avanzatiDati utente → incolla il contenuto completo dello script
  7. Fai clic su Avvia istanza

Passaggio 3 — Configura il Security Group

Apri queste porte nel Security Group dell’istanza:

PortaProtocolloOrigineScopo
22TCPIl tuo IPAccesso SSH
80TCP0.0.0.0/0HTTP (reindirizzato a HTTPS da Nginx)
443TCP0.0.0.0/0HTTPS
3838TCP0.0.0.0/0Accesso 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.

Questa pagina è stata utile?