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

1.6 KiB

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).
# 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.