Files
Deploy-Automatico/docs/04-seguranca-deploy.md
T

33 lines
1.6 KiB
Markdown

# 04 — Segurança do Deploy
## Segredos
- **Nunca** commitar tokens, senhas, JWT ou secrets. Use `.env` (no `.gitignore`) e
`EnvironmentFile=` no systemd.
- Tokens distintos por projeto: **WEBHOOK_TOKEN** (Gitea → listener) e **GITEA_TOKEN** (listener → API).
- Rotacionar tokens periodicamente.
## SSH
- Comunicação VPS↔VPS só pela VPN (`10.99.0.x`).
- Chave do usuário `deploy` sem passphrase para automação, com acesso restrito (produção + push no Gitea).
- Usar `-o BatchMode=yes` nos scripts (falha rápido em vez de pedir senha).
## Docker rootless na VPS 1 (⚠️ crítico)
- A VPS 1 roda **Docker rootless**. O `docker.service` (root) fica **desabilitado de propósito**.
- Sempre exportar `DOCKER_HOST=unix:///run/user/1000/docker.sock` nos comandos remotos.
- Se o daemon root for reativado e `deploy` estiver no grupo `docker`, um `docker compose up` sem
`DOCKER_HOST` cria containers **root paralelos**, invisíveis ao `docker ps` rootless e ao Traefik,
e pode prender portas (`docker-proxy` zumbi).
```bash
# Estado correto da VPS 1:
sudo systemctl status docker # deve estar: inactive (dead)
groups deploy # NÃO deve conter "docker"
DOCKER_HOST=unix:///run/user/1000/docker.sock docker ps
```
## Boas práticas
- **Commite antes de buildar**: o deploy faz `git reset --hard` e descarta mudanças locais.
- **Nunca edite arquivos direto na VPS 1**: serão sobrescritos pelo `rsync --delete`.
- Trava de concorrência (lock file / `isBuilding`) sempre ativa.
- Acompanhar o `deploy.log` e o status do commit no Gitea após cada deploy.