projeto-aprovacao-pedidos/DEPLOY_PRODUCAO.md
2026-05-18 15:34:10 -03:00

3.1 KiB
Raw Permalink Blame History

🚀 Guia de Deploy em Produção

Configuração para Produção

Este aplicativo foi otimizado para rodar em produção com máxima segurança.

1 Preparar Arquivo .env

Crie um arquivo .env na raiz do projeto com as configurações seguras:

# Django
DEBUG=False
SECRET_KEY=gera-uma-chave-segura-com-32-caracteres-aleatorios-aqui
ALLOWED_HOSTS=seu-dominio.com,www.seu-dominio.com,seu-ip.com

# API Suprimentos
API_SUPRIMENTOS_TOKEN=seu-token-aqui
API_SUPRIMENTOS_DETALHE_URL=https://api.grupoginseng.com.br/api/suprimentos_detalhepedido?limit=50000&status=pendente
API_SUPRIMENTOS_IMPLANTACAO_URL=https://api.grupoginseng.com.br/api/vw_suprimentos_implantacaopedido?limit=50000

# SQL Server (deixe em branco se usar SQLite)
SQL_SERVER_HOST=10.77.77.10
SQL_SERVER_DATABASE=GINSENG
SQL_SERVER_USERNAME=suprimentos
SQL_SERVER_PASSWORD=sua-senha-segura

⚠️ IMPORTANTE:

  • Gere uma SECRET_KEY segura (mínimo 50 caracteres aleatórios)
  • NUNCA commit o arquivo .env em repositórios públicos
  • Está no .gitignore, portanto será automaticamente ignorado

2 Gerar SECRET_KEY Segura

from django.core.management.utils import get_random_secret_key
print(get_random_secret_key())

3 Build e Deploy com Docker

# Build da imagem
docker-compose build

# Iniciar em produção
docker-compose up -d

# Verificar logs
docker-compose logs -f web

# Parar
docker-compose down

4 Verificações de Segurança

Antes de publicar, verifique:

python manage.py check --deploy

Deve exibir:

  • DEBUG=False
  • SECRET_KEY configurada
  • ALLOWED_HOSTS definidos
  • Cookies seguros habilitados

5 Reverse Proxy (Nginx Recomendado)

Para produção, use um reverse proxy (Nginx) na frente do Gunicorn:

upstream aprovacao_pedidos {
    server web:8000;
}

server {
    listen 80;
    server_name seu-dominio.com;

    location / {
        proxy_pass http://aprovacao_pedidos;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location /static/ {
        alias /app/staticfiles/;
    }
}

Mudanças Implementadas

Aspecto Antes Depois
Servidor WSGI python manage.py runserver gunicorn (4x mais rápido)
Modo DEBUG True (inseguro) False (seguro)
SECRET_KEY Hardcoded/exposta Variável de ambiente
ALLOWED_HOSTS ['*'] (inseguro) Domínios específicos
Credenciais Código-fonte Arquivo .env (ignorado)
Cookies HTTPS Não Sim (em produção)
Volumes Docker Expõe código Removido (apenas em dev)

Troubleshooting

Erro: "DisallowedHost"

  • Adicione seu domínio em ALLOWED_HOSTS

Erro: "SECRET_KEY not found"

  • Crie arquivo .env com SECRET_KEY

Erro: "Connection refused"

  • Verifique se Gunicorn está rodando: docker-compose logs web

📝 Próximos passos: Usar HTTPS/SSL, implementar CI/CD, monitorar logs