1.9 KiB
1.9 KiB
CI/CD Pipeline — SaaS Imobiliária
Fluxo
push main → Build images → Push registry → SSH no servidor → docker compose up → Health checks HTTPS
Configurar no Forgejo (Settings → Secrets & Variables)
Secrets
| Secret | Descrição |
|---|---|
REGISTRY_USER |
Usuário do registry (ex: gitadmin) |
REGISTRY_PASSWORD |
Senha ou token do registry |
SSH_PRIVATE_KEY |
Chave privada SSH para acessar o servidor |
POSTGRES_DB |
Nome do banco de dados |
POSTGRES_USER |
Usuário do PostgreSQL |
POSTGRES_PASSWORD |
Senha do PostgreSQL |
SECRET_KEY |
Flask SECRET_KEY |
JWT_SECRET_KEY |
Chave JWT (mín. 32 chars) |
Variables
| Variable | Exemplo |
|---|---|
REGISTRY |
git.matheussouza.com.br/gitadmin |
DOMAIN |
imobiliaria.matheussouza.com.br |
SSH_HOST |
IP ou hostname do servidor |
SSH_USER |
Usuário SSH (ex: root ou deploy) |
SSH_PORT |
Porta SSH (padrão: 22) |
Gerar chave SSH para o deploy
No seu computador:
ssh-keygen -t ed25519 -C "forgejo-deploy" -f ~/.ssh/forgejo_deploy -N ""
- Conteúdo de
~/.ssh/forgejo_deploy→ cole emSSH_PRIVATE_KEY(secret) - Conteúdo de
~/.ssh/forgejo_deploy.pub→ adicione em~/.ssh/authorized_keysno servidor
Pré-requisitos no servidor
- Docker + Docker Compose instalados
- Rede Traefik criada:
docker network create traefik-public - Traefik rodando com entrypoints
web(80),websecure(443) e certresolverletsencrypt - Usuário SSH com permissão para rodar
docker
Traefik — configuração mínima
# /opt/traefik/traefik.yml
entryPoints:
web:
address: ":80"
websecure:
address: ":443"
certificatesResolvers:
letsencrypt:
acme:
email: seu@email.com
storage: /letsencrypt/acme.json
httpChallenge:
entryPoint: web
providers:
docker:
exposedByDefault: false
network: traefik-public