Fazer deploy de um app Django
Você pode encontrar o guia passo a passo para fazer deploy aqui.
Build da aplicação Copiar link
A Hostman utiliza o seguinte ambiente ao fazer o build de um app Django:
- Python: 3.10, 3.11, 3.12, 3.13 ou 3.14
pipgunicorn- Bibliotecas do sistema para trabalhar com PostgreSQL e MySQL
A Hostman executa os seguintes comandos durante o build:
apt-get install -y python3 python3-pip gunicorn python3-psycopg2 libpq-dev python-dev default-mysql-client python3-dev default-libmysqlclient-dev python3-mysqldb --fix-missing
pip3 install psycopg2
ln /usr/bin/python3 /usr/bin/python -sf
ln /usr/bin/pip3 /usr/bin/pip -sfPara instalar dependências, adicione a seguinte linha ao comando de build:
pip3 install --upgrade -r requirements.txtVariáveis de ambiente Copiar link
Você também pode definir variáveis de ambiente.
Por exemplo, para especificar os hosts dos quais o Django pode receber requisições, defina a variável DJANGO_ALLOWED_HOSTS com um valor contendo endereços IP ou nomes de host.
Você pode informar vários hosts, separados por vírgulas, sem espaços. Por padrão, essa variável é definida como:
127.0.0.1,localhostPara mais detalhes sobre configuração, consulte a documentação oficial do Django.
Rodando a aplicação Copiar link
O comando de start padrão é:
python3 manage.py runserver 0.0.0.0:8000Requisitos Copiar link
- Certifique-se de que o arquivo
manage.pyestá localizado na raiz do projeto e é usado como ponto de entrada da aplicação. - Certifique-se de definir
DEBUG=Truenas configurações; caso contrário, os arquivos estáticos não serão servidos. - Certifique-se de que a aplicação está escutando em
0.0.0.0e não em127.0.0.1; caso contrário, conexões externas não funcionarão.
Troubleshooting Copiar link
Deploy falhou Copiar link
Se houver problemas no deploy, primeiro confira o log de deploy. Ele ajuda a identificar em qual etapa ocorreu o erro.
Na maioria dos casos, os problemas estão relacionados ao comando de start.
- Certifique-se de que tudo funciona localmente com
gunicorn. - Verifique se todos os módulos necessários estão listados no
requirements.txt.
DisallowedHost at /Invalid HTTP_HOST Copiar link
Esse problema ocorre quando o hostname não está especificado no arquivo settings.py.
Essa configuração é uma medida de segurança para evitar ataques via header HTTP Host.
Para corrigir o problema, faça alterações no arquivo settings.py, especificando seu domínio na diretiva ALLOWED_HOSTS, por exemplo:
ALLOWED_HOSTS = ["your.domain.com"]Você também pode permitir todos os domínios, caso não queira usar essa medida de segurança:
ALLOWED_HOSTS = ["*"]