Você pode encontrar o guia passo a passo para fazer deploy aqui.
A Hostman utiliza o seguinte ambiente ao fazer o build de um app Django:
pipgunicornA 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 -sf
Para instalar dependências, adicione a seguinte linha ao comando de build:
pip3 install --upgrade -r requirements.txt
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,localhost
Para mais detalhes sobre configuração, consulte a documentação oficial do Django.
O comando de start padrão é:
python3 manage.py runserver 0.0.0.0:8000
manage.py está localizado na raiz do projeto e é usado como ponto de entrada da aplicação.DEBUG=True nas configurações; caso contrário, os arquivos estáticos não serão servidos.0.0.0.0 e não em 127.0.0.1; caso contrário, conexões externas não funcionarão.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.
gunicorn.requirements.txt.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 = ["*"]