Inicialmente, crie um ambiente virtual para a sua aplicação usando o Pipenv
$ pipenv --python 3
Instale os pacotes django
, django-heroku
e gunicorn
:
$ pipenv install django django-heroku gunicorn
Se tu tiver sido configurado corretamente, dentro do diretório existirá um arquivo Pipfile
com o seguinte conteúdo:
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true
[dev-packages]
[packages]
gunicorn = "*"
django-heroku = "*"
django = "*"
[requires]
python_version = "3.6"
Gere o boilerplate do projeto usando o django-admin
$ pipenv run django-admin startproject nome_do_projeto
Abra o arquivo settings.py
dentro da pasta com o mesmo nome do seu projeto e adicione o seguinte ao final:
# Django-heroku configuration
import django_heroku
django_heroku.settings(locals())
Protip: Se preferir pode importar o pacote django_heroku no início do arquivo
Crie o arquivo Procfile
(sem extensão) com o seguinte conteúdo:
web: gunicorn nome_do_projeto.wsgi
O próximo passo é colocar a aplicação no Github e dar deploy na heroku, associando o repositório ao app lá criado (embora exista uma maneira de fazer o mesmo com o Heroku CLI, não vamos abordar isso nesse tutorial). Após o processo de build, a aplicação deve rodar normalmente :)
É necessário existirem as pastas static
e media
no repositório para que o deploy seja bem sucedido, bem como suas configurações no settings.py
:
# Staticfiles
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
# Media files
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
Importante: numa aplicação real, são necessários alguns outros passos, como configurar o HTTPS e proteger a chave secreta do django (que pode ser vista no arquivo de configurações) em uma variável de ambiente. Nesse caso, se for criada uma variável com nome SECRET_KEY
, ela será automaticamente utilizada :)