# Deploy de CEO's Club Ventures

- Repositório `FCJ-VB/ceo-ventures`; branch `main`; Lovable
  `ceo-ventures.lovable.app`.
- Checkout: `/var/www/html/ceosclubventures/ceo-ventures`, dono `deploy`.
- Serviço systemd: `ceosclubventures.service`; Node em `127.0.0.1:3017`.
- Domínio principal `ceosclub.ventures`; domínios `.com` e `.com.br`
  redirecionam para ele.
- DNS foi virado para a VM `54.89.68.19` (os domínios e aliases `www` foram
- Certbot `ceosclub.ventures` cobre os três domínios e seus aliases `www`; válido
  até 2027-01-27, com renovação pelo `certbot.timer`.

## Build e validação

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

O build valida os arquivos do manifesto em `.output/public/`, referências
locais, preset Nitro `node-server` e o entrypoint
`.output/server/index.mjs`.

## Primeiro deploy na VM

Confirme novamente que a porta 3017 está livre. Como `ubuntu`, prepare o diretório
para o checkout `deploy`, copie/clone a branch `main` nele e execute após o build:

```bash
sudo -n install -d -o deploy -g deploy /var/www/html/ceosclubventures
sudo -n bash /var/www/html/ceosclubventures/ceo-ventures/ops/install-vm-config.sh
```

O script exige o certificado Certbot `ceosclub.ventures`, instala a unidade e
os vhosts HTTP/HTTPS e valida o serviço, o vhost primário e os redirecionamentos.

## Certificado TLS

O certificado `ceosclub.ventures` inclui os seis nomes de domínio, com os
aliases `www`. A renovação está automatizada pelo `certbot.timer`.

```bash
sudo -n certbot certificates --cert-name ceosclub.ventures
sudo -n certbot renew --dry-run --cert-name ceosclub.ventures
curl -fI https://ceosclub.ventures/
curl -I 'https://ceosclubventures.com/path?x=1'
```

## Atualizações

```bash
sudo -n -u deploy bash /var/www/html/ceosclubventures/ceo-ventures/deploy.sh
```

O deploy recusa checkout sujo, atualiza `main` por fast-forward, instala com
`npm ci`, compila e reinicia apenas `ceosclubventures.service`. O workflow
GitHub Actions compila em PR e push; deploy automático exige
`ENABLE_EC2_DEPLOY=true` e os segredos VPN/SSH do padrão Aduela.
