docs: documentação única da stack — deploy/infra/projetos + regras (LEIA-PRIMEIRO)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
VPS 4 Deploy Agent
2026-06-17 17:31:50 +02:00
commit c0ca88c028
14 changed files with 582 additions and 0 deletions
+13
View File
@@ -0,0 +1,13 @@
# Infra — Ambiente de desenvolvimento
> Situação: **como funciona o `dev.<projeto>` e por que dá para testar sem medo.**
- **`dev.<projeto>`** (ex.: `dev.scoreodonto.com`) roda na **VPS4**, servido por uma **imagem buildada** (nginx sobre `vite build`) — **NÃO é hot-reload (HMR)**. Editar o código **exige rebuild + recreate** do container para refletir.
- (Os processos `vite --port 5173/5180` que rodam na VPS4 são de **outros apps**, ex.: o client do RX — não do scoreodonto.)
- **Banco DEV isolado:** o backend de dev usa o container **`pgdev`** (PostGIS na VPS4), banco `<projeto>_dev`**não toca o banco de produção** (VPS3). Pasta: `/home/deploy/stack/pg-dev/`.
- `pg-dev-refresh.sh <projeto>` → repuxa dados da produção (somente leitura) para o `_ref` e recria o `_dev`.
- `pg-dev-reset.sh <projeto>` → volta o `_dev` ao estado limpo em segundos.
- **Por que importa:** testar em dev (criar lixo, rodar migração arriscada) tem **zero impacto** na produção. A produção nunca é alterada por dev.
- Em dev a versão exibida é **`dev`** (ver `../deploy/versionamento.md`).
⚠️ **Atenção:** `vite build` **não bloqueia por erro de tipo** (TypeScript) — um erro de tipo pode passar no build e só estourar em runtime. Sempre exercite a tela que mudou antes de promover.
+16
View File
@@ -0,0 +1,16 @@
# Infra — Máquinas e rede
> Situação: **quem é cada servidor e como se conectam.**
Rede privada **WireGuard** `10.99.0.0/24`.
| VPS | IP | Papel | Docker |
|---|---|---|---|
| VPS1 | 10.99.0.1 | **Produção** (Traefik/TLS + apps) | rootless |
| VPS3 | 10.99.0.3 | **Dados & Controle**: PostgreSQL, Gitea, Registry, Dragonfly, NATS, Temporal | — |
| VPS4 | 10.99.0.4 | **Dev + Builder** (código, runner do CI, banco `pgdev`) | rootless |
- **Código (fonte da verdade):** Gitea na VPS3.
- **Registry de imagens:** Container Registry embutido do Gitea — `git.clube67.com`, namespace `ruicesar/`. Não há `registry:2` separado.
- **Roteamento:** Traefik (VPS1) termina TLS e roteia por host: `<projeto>` → containers de produção locais; `dev.<projeto>``10.99.0.4:<porta>` (VPS4) via WireGuard.
- **Produção é rootless:** comandos `docker` na VPS1 usam `DOCKER_HOST=unix:///run/user/1000/docker.sock`.