# Deploy de DOME Ventures

- Repositório `FCJ-VB/dome-ventures`; projeto Lovable `dome-ventures.lovable.app`.
- Checkout: `/var/www/html/domeventures/dome-ventures`, dono `deploy`.
- Serviço systemd: `domeventures.service`; Node em `127.0.0.1:3015`.
- Domínios: `dome.ventures` e alias `www.dome.ventures`; DNS público aponta à VM `54.89.68.19` (confirmado em 2026-10-27 nos resolvers 1.1.1.1 e 8.8.8.8).
- O checkout, serviço e vhosts HTTP/HTTPS estão instalados. Let's Encrypt emitiu o certificado `dome.ventures` para os dois nomes, válido até 2027-01-25. HTTP redireciona para HTTPS; `certbot.timer` está ativo.

## Build e validação

```bash
npm ci --no-audit --no-fund
npm run build
bash scripts/verify-static-assets.sh
```

O build executa a verificação de presença de assets automaticamente. O bundle
Nitro deve usar `node-server` e incluir `.output/server/index.mjs`.

## Deploy

Para provisionar novamente a unidade e o vhost HTTP após mudança nos arquivos `ops/` (execute como `ubuntu`):

```bash
sudo -n bash /var/www/html/domeventures/dome-ventures/ops/install-vm-config.sh
```

O vhost HTTP usa proxy para a porta reservada. Certificado HTTPS ainda depende de DNS apontado para a VM e de instrução explícita.

Com a unidade systemd provisionada, execute como `deploy`:

```bash
bash /var/www/html/domeventures/dome-ventures/deploy.sh
```

O script recusa checkout sujo, atualiza `main` sem reescrever histórico, instala
dependências com `npm ci`, compila e confere resposta local em `127.0.0.1:3015`.
O workflow `.github/workflows/deploy.yml` só publica se
`ENABLE_EC2_DEPLOY=true` estiver habilitado no repositório. Como o repositório
é privado e a VM não tem credencial GitHub, o workflow transfere um Git bundle
completo para `/var/www/html/domeventures/dome-ventures.bundle`; o remote
`origin` do checkout aponta para esse bundle local e o workflow o atualiza a
cada deploy. A VM não recebe chaves de GitHub. Mudanças de systemd ou Apache
exigem executar `ops/install-vm-config.sh` como `ubuntu`; o deploy automático
atualiza o app e reinicia apenas `domeventures.service`.

## Certificado

Para verificar a configuração e o fluxo de renovação sem emitir outro
certificado:

```bash
sudo certbot certificates --cert-name dome.ventures
sudo certbot renew --dry-run --cert-name dome.ventures
```
