# 01 — Arquitetura Multi-VPS | Servidor | IP (VPN WireGuard) | Função principal | Papel no deploy | |---|---|---|---| | **VPS 1 — App** | `10.99.0.1` | Produção (containers Docker) | Recebe os arquivos da VPS 4 e roda os containers | | **VPS 3 — Data/Git** | `10.99.0.3` | **Gitea** + PostgreSQL | Repositório central + banco | | **VPS 4 — Builder** | `10.99.0.4` | Dev / build | Roda o listener e os scripts de deploy | ## Princípios 1. **A fonte de verdade é o Gitea (VPS3).** O deploy sempre faz `git reset --hard origin/main` antes de buildar — nunca confia em arquivos soltos na VPS de build. 2. **Produção não recebe edição manual.** O `rsync --delete` sobrescreve tudo no próximo deploy. 3. **Docker rootless na VPS 1.** Sempre usar `DOCKER_HOST=unix:///run/user/1000/docker.sock`. O daemon root fica desabilitado de propósito (ver `04-seguranca-deploy.md`). 4. **Comunicação entre VPS é pela VPN** (`10.99.0.x`), via chave SSH do usuário `deploy`. ``` [ VPS 4: Builder ] ──git push──► [ VPS 3: Gitea/DB ] │ ▲ (rsync artefato/fonte) (git fetch/reset) ▼ │ [ VPS 1: Produção ] ◄───────────────────┘ ```