Deploying Meteor no Heroku
Publicação: | Tags: Meteor
Recentemente, a equipe do Meteor, publicou em sua newsletter que vai descontinuar os servidores free que são fornecidos através do comando meteor deploy. Com isso, acabei migrando alguns dos meus pequenos projetos para o Heroku, e com isso resolvi criar esse post explicando passo-a-passo como fazer deploy para o Heroku.
Setup do Heroku
Em primeiro lugar, crie uma conta no heroku.com e em seguida instale seu CLI (veja nesse link toolbelt.heroku.com) para liberar o comando heroku em seu terminal.
Setup da aplicação
Agora com o ambiente heroku configurado em sua máquina, execute o comando:
heroku create nome-da-aplicacao
Em seguida, instale o buildpack do Meteor para configurar os scripts de deploy necessários para uma aplicação Meteor compilar e gerar uma versão Node.js pronta para os servidores do Heroku, para isso, rode o comando:
heroku buildpacks:set https://github.com/AdmitHub/meteor-buildpack-horse.git
Agora, instale o MongoLabs, que é um serviço PaaS para o MongoDB, ele tem uma versão free que oferece até 500MB de persistência de dados, para isso rode o comando:
heroku addons:create mongolab
Para finalizar a configuração do ambiente, configure a variável de ambiente ROOT_URL com o endereço da sua aplicação heroku:
heroku config:set ROOT_URL=https://nome-da-aplicacao.herokuapp.com
Obs.: O Heroku já fornece suporte gratuito ao protocolo HTTPS.
Configuração extra
Como dica adicional, caso no futuro você tenha a necessidade de incluir novos dynos, que são servidores dentro do load balancer do Heroku, você provavelmente sofrerá um problema de sua aplicação Meteor não garantir sessão correta entre usuários, para resolver esse problema de sticky session, você pode instalar esse plugin adicional gratuitamente:
heroku labs:enable http-session-affinity
Deploying
Para realizar o primeiro deploy do seu projeto para o Heroku, basta fazer um git push no remote heroku, que foi configurado automaticamente quando você criou uma aplicação pelo comando heroku create, ou seja, rode o comando:
git push heroku master
Pronto! Servidor configurado e ready for production.