⚙️ Execução, Arquitetura e Deploy
Este documento detalha a arquitetura de infraestrutura, os serviços gerenciados pelo Docker Compose, as variáveis de ambiente e o funcionamento da ferramenta de linha de comando prosel.
🏗️ Estrutura dos Serviços
O sistema é composto por 3 contêineres e serviços principais:
Serviço |
Tecnologia |
Função |
|---|---|---|
web |
Django 5 + Celery Worker |
Servidor de aplicação web, APIs REST, painel administrativo e processamento de filas de tarefas assíncronas. |
db |
PostgreSQL 16+ |
Banco de dados relacional para persistência de dados de usuários, processos seletivos, inscrições e avaliações. |
cache / redis |
Redis |
Broker de mensagens para o Celery e camada de armazenamento de sessão/cache. |
🔑 Variáveis de Ambiente
As variáveis de ambiente customizam o comportamento da aplicação em dev e produção.
Configuração Geral e Banco de Dados
SECRET_KEY: Chave secreta única do Django.DEBUG:Truepara desenvolvimento ouFalsepara produção.ALLOWED_HOSTS: Lista de domínios ou IPs permitidos (ex:"localhost,127.0.0.1,seusistema.gov.br").DB_ENGINE: Backend de banco de dados (ex:django.db.backends.postgresql).DB_NAME: Nome do banco de dados PostgreSQL.DB_USER: Usuário do banco de dados.DB_PASSWORD: Senha do banco de dados.DB_HOST: Host do banco de dados (ex:dbno Docker Compose).DB_PORT: Porta do banco de dados (padrão:5432).TIME_ZONE: Fuso horário da aplicação (ex:America/Sao_Paulo).
Celery & Redis
CELERY_BROKER_URL: URL de conexão com Redis (ex:redis://cache:6379/0).CELERY_RESULT_BACKEND: Backend de resultados do Celery.
Autenticação Gov.BR (OAuth2)
GOVBR_CLIENT_ID: Client ID registrado na plataforma gov.br.GOVBR_CLIENT_SECRET: Client Secret do gov.br.GOVBR_AUTHORIZATION_URL: URL de autorização OAuth2.GOVBR_TOKEN_URL: URL para obtenção de token de acesso.GOVBR_USERINFO_URL: URL para consulta de dados do usuário autenticado.GOVBR_REDIRECT_URI: URI de redirecionamento autorizada.
Integração SUAP
SUAP_BASE_URL: URL base da API do SUAP.SUAP_API_TOKEN: Token de autenticação da API SUAP.SUAP_OAUTH_CLIENT_ID: Client ID OAuth2 do SUAP.SUAP_OAUTH_CLIENT_SECRET: Client Secret OAuth2 do SUAP.
Observabilidade e E-mail
SENTRY_DSN: DSN para envio de relatórios de erros ao Sentry (opcional).EMAIL_BACKEND: Backend de envio de e-mail do Django.EMAIL_HOST: Host SMTP.EMAIL_PORT: Porta SMTP.DEFAULT_FROM_EMAIL: Endereço de e-mail do remetente do sistema.
🛠️ Utilitário de Linha de Comando (CLI prosel)
O projeto fornece o script ./prosel para facilitar a execução de comandos administrativos no ambiente Docker.
Comandos Frequentes:
Iniciar ambiente em segundo plano:
./prosel deployReiniciar serviços:
./prosel relaunch web
Acompanhar logs:
./prosel launch web
Executar migrações do banco:
./prosel migrate web
Criar novas migrações:
./prosel makemigrations web
Criar superusuário:
./prosel manage web createsuperuser
Executar testes e cobertura:
./prosel test web
Rodar linter de código:
./prosel lint web
Derrubar ambiente e limpar volumes:
./prosel undeploy