Ir para o conteúdo

🐳 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 incluir backend (nome do serviço no compose), senão o Django recusa a chamada interna com 400 Bad Request.
  • DJANGO_DB_DIR / MEDIA_ROOT — apontam para os volumes compartilhados (sqlite_data, media_data) entre frontend e backend.

Dokploy

  1. Criar o compose no Dokploy apontando pro repositório GitHub, branch DEVELOP (por enquanto — promovendo depois pra MAIN e APPSYNCRON em etapas), Compose Path = ./docker-compose.yml.
  2. 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).
  3. Preencher a aba Environment com as variáveis do .env.example.
  4. 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.