no stack* Cedar, baseado no Ubuntu 10.04.* o Heroku oferece diferentes stacks - ambientes completos de deploy, incluindo o sistema operacional e bibliotecas associadas.Para criar um ambiente no stack cedar, e necessario executar o comando:heroku create --stack cedare o deploy tambem e feito via git push: Porem, como se ve acima, o push e rejeitado, informando que o Heroku nao consegue detectar nenhuma aplicacao Rails/Rack. Alguns ajustes sao necessarios para conseguir realizar o deploy da aplicacao Django no Heroku.Procfile para rodar aplicacoes Django no HerokuAplicacoes que NAO sao baseadas no Rack podem ser deployadas no Heroku usando o Procfile. No caso de uma aplicacao Django, basta criar um Procfile com o seguinte conteudo:web: python manage.py runserverque a aplicacao passa a ser inicializavel via foreman: Agora que esta tudo rodando localmente, basta apenas fazer o deploy e correr pro abraco, vai dar ate pra sair mais cedo e pegar um cineminha: Oooops... Agora, atraves do Procfile, o Heroku ja e capaz de reconhecer que se trata de uma aplicacao Python, porem continua rejeitando o deploy, com uma enigmatica mensagem "Django app must be in a subdirectory".Ainda bem que o Google e o Stack Overflow existem, e alguem ja havia postado a solucao para este problema: http://stackoverflow.com/questions/7974902/deploying-existing-django-app-on-heroku. Para deployar a aplicacao Django no Heroku, ela precisa estar organizada de tal forma que o Procfile e o requirements.txt fiquem na raiz do repositorio, e o projeto Django deve ser um subdiretorio a partir da raiz do repositorio.Com esta nova organizacao, e importante assegurar que o arquivo settings.py esteja com o valor correto para a propriedade ROOT_URLCONF:ROOT_URLCONF = 'urls'Ajustada a estrutura do projeto, ai sim, esperamos que o deploy seja bem sucedido. Basta agora um heroku open e ver se o navegador abre a pagina e... Ooops. Nada acontece:A essas alturas, cineminha ja era... Neste caso, nem com ajuda de Google e Stack Overflow surgiu alguma pista. Recorrendo ao comandoheroku logse possivel visualizar o log da subida da aplicacao no Heroku, tentando procurar alguma pista sobre o que esta faltando: Voila, nos logs surge a pista: a aplicacao crasheou durante a subida, devido a ausencia do modulo psycopg2. Googleando um pouco mais, surge este blog, com instrucoes simples para instalar localmente este modulo:Pre-requisito: sudo apt-get install libpq-dev python-devInstalacao: adicionar ao requirements.txt a linhapsycopg2==2.4.2Executarpip install -r requirements.txtApos nova subida, e cruzar os dedos e... nada! Eis o novo log: Ao que o erro indica, o Heroku nao faz o binding na porta 8000, e sugere pesquisar a variavel de ambiente PORT. Um tanto enigmatico. Recorrendo mais uma vez ao Google, eis uma pista melhor, nos comentarios deste blog:"Creating a Procfile and adding: "web: play run --http.port=$PORT $PLAY_OPTS" fixed the problem." (Ivar Abrahamsen)o que nos conduz a alterar o Procfile para:web: python manage.py runserver 0.0.0.0:$PORTE finalmente:Deploy de aplicacao Django no Heroku - ResumoO projeto Django deve ser um subdiretorio a partir da raiz que e comitada no GitAlterar o settings.py, fazendoROOT_URLCONF = 'url'Adicionar um Procfile na raiz do projeto contendo:web: python manage.py runserver 0.0.0.0:$PORTInstalar o psycopg2Para deployar no Heroku e suficiente adicionar ao requirements.txt: psycopg2==2.4.2Para instalar localmente, e