🐳 Deploy (Docker / Dokploy)¶
Containers¶
O docker-compose.yml define três serviços:
| Serviço | Build | Porta interna | Healthcheck |
|---|---|---|---|
backend |
Dockerfile.backend |
8001 | GET /admin/login/ |
frontend |
Dockerfile.frontend |
8080 | — (espera backend saudável) |
docs |
Dockerfile.docs |
80 | — |
docker compose up -d --build
Variáveis de ambiente¶
Ver .env.example no repositório — é o template completo.
Específicas de deploy com containers separados:
API_BASE_URL— usada pelo frontend para chamadas servidor-a-servidor. Em Docker Compose:http://backend:8001/api.API_PUBLIC_URL— usada pelo frontend em links abertos direto no navegador (gráficos, exportações). Precisa ser o domínio público do backend.ALLOWED_HOSTS— precisa incluirbackend(nome do serviço no compose), senão o Django recusa a chamada interna com400 Bad Request.DJANGO_DB_DIR/MEDIA_ROOT— apontam para os volumes compartilhados (sqlite_data,media_data) entrefrontendebackend.
Dokploy¶
- Criar o compose no Dokploy apontando pro repositório GitHub, branch
DEVELOP(por enquanto — promovendo depois praMAINeAPPSYNCRONem etapas),Compose Path=./docker-compose.yml. - Conectar o GitHub via Dokploy → Git → Create Github App (não criar o GitHub App manualmente — o Dokploy gera o manifest e configura tudo, incluindo o webhook de auto-deploy).
- Preencher a aba Environment com as variáveis do
.env.example. - Associar domínios na aba Domains:
| Serviço | Domínio | Porta interna |
|---|---|---|
frontend (Flet) |
appciaimper.syncronnet.com.br |
8080 |
backend (API Django) |
api-ciaimper.syncronnet.com.br |
8001 |
docs (MkDocs) |
docs-ciaimper.syncronnet.com.br |
80 |
O domínio do backend é o mesmo valor usado em API_PUBLIC_URL (ver Arquitetura → Duas categorias de URL).
Auto-deploy
Por padrão, o Dokploy faz deploy automático a cada push na branch configurada. Push em outra branch não dispara nada.