1.7 KiB
1.7 KiB
CI/CD Pipeline — SaaS Imobiliária
Fluxo
push main → Build images → Push registry → Deploy Portainer → Health checks HTTPS
Configurar no Forgejo (Settings → Secrets & Variables)
Secrets (valores sensíveis)
| Secret | Descrição |
|---|---|
REGISTRY_USER |
Usuário do registry (ex: gitadmin) |
REGISTRY_PASSWORD |
Senha ou token do registry |
PORTAINER_WEBHOOK_URL |
URL do webhook do stack no Portainer |
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 (valores não-sensíveis)
| Variable | Exemplo |
|---|---|
REGISTRY |
git.matheussouza.com.br/gitadmin |
DOMAIN |
imobiliaria.matheussouza.com.br |
Configurar no Portainer
- Crie um Stack com o arquivo
docker-compose.prod.yml - Ative o webhook do stack (Stack → Webhooks → Enable)
- Copie a URL do webhook → cole em
PORTAINER_WEBHOOK_URL - Certifique-se que a rede
traefik-publicexiste:docker network create traefik-public
Traefik — pré-requisitos
O Traefik deve estar rodando com:
- Entrypoint
web(porta 80) - Entrypoint
websecure(porta 443) - CertResolver
letsencryptconfigurado - Conectado à rede
traefik-public
Exemplo mínimo de configuração do Traefik:
# traefik.yml
entryPoints:
web:
address: ":80"
websecure:
address: ":443"
certificatesResolvers:
letsencrypt:
acme:
email: seu@email.com
storage: /letsencrypt/acme.json
httpChallenge:
entryPoint: web