3.1 KiB
3.1 KiB
🚀 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
.envem 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
.envcomSECRET_KEY
Erro: "Connection refused"
- Verifique se Gunicorn está rodando:
docker-compose logs web
📝 Próximos passos: Usar HTTPS/SSL, implementar CI/CD, monitorar logs