Use aws-ec2.sh como script de User Data ao iniciar uma instância EC2. O script é executado automaticamente na primeira inicialização.

Baixar script: aws-ec2.sh


Etapa 1 — Preencha a configuração

Abra o script e edite o bloco CONFIGURATION no início:

  # --- Obrigatório ---
PROJECT_ID="rtsurvey"
ADMIN_PASSWORD="admin"                       # Altere após o primeiro login

# --- Domínio + SSL ---
DOMAIN="meuapp.exemplo.com.br"
LETSENCRYPT_EMAIL="admin@exemplo.com.br"

# --- Keycloak integrado ---
EMBED_KEYCLOAK="true"
KEYCLOAK_ADMIN_PASSWORD="${ADMIN_PASSWORD}"  # Padrão para ADMIN_PASSWORD
  
CampoObrigatórioDescrição
PROJECT_IDSimUsado como nome do banco de dados e ID do cliente Keycloak. Letras minúsculas, sem espaços.
ADMIN_PASSWORDNãoSenha do admin do aplicativo e do Keycloak. O padrão é adminaltere após o primeiro login.
DOMAINNãoSeu domínio para HTTPS. Deixe em branco para modo somente HTTP.
LETSENCRYPT_EMAILSim (se DOMAIN definido)E-mail para notificações do Let’s Encrypt.
EMBED_KEYCLOAKNãotrue para implantar o Keycloak integrado (requer 4 GB de RAM).

Segurança: Todas as senhas têm admin como padrão. Altere-as imediatamente após o primeiro login.


Etapa 2 — Inicie uma instância EC2

No console EC2 da AWS:

  1. Clique em Iniciar instância
  2. AMI: Ubuntu Server 22.04 LTS (64 bits x86)
  3. Tipo de instância: t3.medium (4 GB de RAM) ou maior
  4. Par de chaves: Selecione ou crie um para acesso SSH
  5. Configurações de rede: Crie ou selecione um Grupo de segurança (veja abaixo)
  6. Detalhes avançadosDados do usuário → cole o conteúdo completo do script
  7. Clique em Iniciar instância

Etapa 3 — Configure o Grupo de segurança

Abra estas portas no Grupo de segurança da instância:

PortaProtocoloOrigemFinalidade
22TCPSeu IPAcesso SSH
80TCP0.0.0.0/0HTTP (redirecionado para HTTPS pelo Nginx)
443TCP0.0.0.0/0HTTPS
3838TCP0.0.0.0/0Acesso direto ao Shiny

Não abra a porta 3306 (MySQL) — ela nunca deve ser acessível publicamente.


Etapa 4 — Adicione o registro DNS

Enquanto a instância inicializa, adicione um registro A no seu provedor de DNS:

  Tipo  : A
Nome  : meuapp
Valor : <ip-público-da-instância>
TTL   : 300
  

Etapa 5 — Monitore o progresso

  ssh ubuntu@<ip-da-instância>
tail -f /var/log/rtcloud-setup.log
  

Etapa 6 — Acesse o aplicativo

Quando a configuração estiver concluída, o log exibe um resumo com a URL do seu aplicativo e as credenciais. Entre com o nome de usuário admin e a senha admin, depois altere sua senha imediatamente.


Após a implantação

Alterar uma senha

  nano /opt/rtcloud/.env
docker compose -f /opt/rtcloud/docker-compose.production.yml up -d --force-recreate rtcloud
  

Ver todos os contêineres

  docker compose -f /opt/rtcloud/docker-compose.production.yml ps
  

Atribuir um IP elástico (opcional)

Se você parar e iniciar a instância, o IP público muda. Para manter um IP estável, aloque um IP elástico e associe-o à instância no console EC2.

Esta página foi útil?