1.6 KiB
1.6 KiB
04 — Segurança do Deploy
Segredos
- Nunca commitar tokens, senhas, JWT ou secrets. Use
.env(no.gitignore) eEnvironmentFile=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
deploysem passphrase para automação, com acesso restrito (produção + push no Gitea). - Usar
-o BatchMode=yesnos 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.socknos comandos remotos. - Se o daemon root for reativado e
deployestiver no grupodocker, umdocker compose upsemDOCKER_HOSTcria containers root paralelos, invisíveis aodocker psrootless e ao Traefik, e pode prender portas (docker-proxyzumbi).
# 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 --harde 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.loge o status do commit no Gitea após cada deploy.