25 lines
1.3 KiB
Markdown
25 lines
1.3 KiB
Markdown
# 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 ] ◄───────────────────┘
|
|
```
|