# BEGIN CHANGE: fluxo de deploy (OT + portal)

## Visao geral

| Componente | Repo | Clone no servidor | Apos `git push` |
|---|---|---|---|
| **OT** | `pedrominare/otx2_reseted` | `/home/ubuntu/otx2_reseted` | `git pull` manual (voce decide restart/reload) |
| **Portal** | `pedrominare/html` | `/home/ubuntu/www/html` | **GitHub Actions** faz pull + build + publica |

Runtime do portal (Apache) **nao** e o clone Git:

| Ambiente | URL | Runtime |
|---|---|---|
| prod | ot.whiteantidote.com | `/home/ubuntu/portal` |
| dev | dev.whiteantidote.com | `/home/ubuntu/dev-portal` |
| test | ot-test.whiteantidote.com | `/home/ubuntu/test-portal` |
| beta | ot-beta.whiteantidote.com | `/home/ubuntu/beta-portal` |

O script `portal/deploy/deploy.sh` le o codigo em `/home/ubuntu/www/html`, builda e copia `out/` + `api/` para essas pastas.

---

## OT (manual, como voce pediu)

```bash
ssh ot-arm
cd /home/ubuntu/otx2_reseted
git pull --ff-only origin master
# reiniciar ou /reload quando quiser testar
```

Test (`otx2_reseted_2`) usa symlinks de `data/` do prod - o mesmo pull ja atualiza Lua/XML do test.

---

## Portal (automatico)

### Setup inicial (uma vez no servidor)

```bash
ssh ot-arm
bash /home/ubuntu/www/html/portal/deploy/setup-node.sh   # Node 20 via nvm
chmod +x /home/ubuntu/www/html/portal/deploy/deploy.sh
```

### GitHub Actions

Arquivo: `.github/workflows/deploy-portal.yml`

**Secrets** (repo `html` -> Settings -> Secrets and variables -> Actions):

| Secret | Valor |
|---|---|
| `DEPLOY_HOST` | IP ou hostname do servidor (ex: `164.152.58.219`) |
| `DEPLOY_USER` | usuario SSH (ex: `root`) |
| `DEPLOY_SSH_KEY` | chave privada com acesso SSH ao host |

No servidor, o `git pull` usa a chave `/root/.ssh/github_pedro` (config em `/root/.ssh/config`).

**Fluxo:** push em `master` com mudancas em `portal/**` -> Action SSH -> `deploy.sh --pull prod` (espelha test/beta).

Deploy manual pela UI do GitHub: Actions -> Deploy Portal -> Run workflow.

### Deploy manual no servidor (sem Action)

```bash
ssh ot-arm
bash /home/ubuntu/www/html/portal/deploy/deploy.sh --pull prod
bash /home/ubuntu/www/html/portal/deploy/deploy.sh --pull dev
bash /home/ubuntu/www/html/portal/deploy/deploy.sh --pull prod --api-only   # so PHP
```

### Fallback Windows (sem Actions)

Ainda funciona `portal/deploy/deploy.ps1` (build local + rsync). Use se Actions estiver off.

---

## Checklist pos-primeiro deploy automatico

- [ ] Secrets `DEPLOY_HOST`, `DEPLOY_USER`, `DEPLOY_SSH_KEY` no GitHub
- [ ] `setup-node.sh` rodou no servidor (`node -v` >= 20)
- [ ] Push de teste em `portal/` dispara Action verde
- [ ] `https://ot.whiteantidote.com/` mostra a versao nova

<!-- END CHANGE -->
