O Heroku é um serviço de hospedagem na nuvem muito interessante pela facilidade de escalar a sua aplicação tanto em termos de processamento quanto de banco de dados. Como a configuração mais simples de aplicação no Heroku é gratuita, ele se torna mais interessante ainda, por permitir que projetos sejam colocados no ar inicialmente sem custo algum e à medida que crescerem passam a pagar por mais recursos do servidor.
O objetivo desse tutorial é indicar passo-a-passo como dar deploy de uma aplicação Ruby on Rails no Heroku utilizando o mecanismo de repositório remoto do Git. Antes de iniciarmos, você precisa fazer um cadastro no Heroku.
Considerarei que você tem seu ambiente Ruby on Rails configurado e, dessa forma, você só precisa instalar a gem do Heroku.
Depois disso, vá para a pasta do seu projeto existente ou crie um novo projeto.
cd [nome do projeto]
O deploy para o heroku é feito dando push para um repositório remoto do Git, então precisamos antes criar um repositório local do Git para o projeto. Estando na pasta do projeto, execute:
Para adicionar os arquivos do projeto ao controle de versão:
E depois dar commit:
Antes de começarmos a interagir com o Heroku, precisamos criar uma chave SSH, executando o seguinte comando:
Agora, vamos criar uma aplicação no Heroku. Após executar o comando abaixo, serão solicitados o seu email e a senha utilizados no cadastro do Heroku.
A aplicação é criada com um nome aleatório, então provavelmente você gostará de renomear a aplicação usando:
Antes de darmos deploy da aplicação, precisamos adicionar nossa chave SSH no Heroku com o seguinte comando:
Feito isso, enfim podemos dar deploy de nossa aplicação:
Caso o comando acima dê o erro “Agent admitted failure to sign using the key. Permission denied (publickey). fatal: The remote end hung up unexpectedly”, execute o seguinte comando e tente o anterior novamente:
Nesse momento, basta acessar o endereço http://[nome da sua aplicação].heroku.com/ para visitá-la. Infelizmente, ainda precisamos fazer algumas configurações relativas à banco de dados para seguir desenvolvendo nossas aplicações. O Heroku disponibiliza automaticamente um banco de dados PostgreSQL para cada aplicação, então precisamos acrescentar ao nosso arquivo Gemfile a dependência da gem ‘pg’ para conexão com esse banco de dados. Então, se for utilizar o PostgreSQL em todos os ambientes do seu projeto, altere a linha abaixo pela seguinte.
Instale o banco PostgreSQL na máquina local:
Depois instale a gem do PostgreSQL:
Caso receba o erro “ERROR: Error installing pg: ERROR: Failed to build gem native extension.” ao executar o comando acima, tente instalar os seguintes pacotes e volte a rodar o comando anterior:
E por último atualize o seu projeto:
Mas se preferir utilizar outro banco localmente, você precisará configurar diferentes gems para cada ambiente da seguinte forma:
gem 'sqlite3'
end
group :production do
gem 'pg'
end
E quando for atualizar seu projeto deverá utilizar o seguinte comando:
Pronto! Agora sua aplicação está pronta para ser executada no Heroku. A cada deploy novo que for dar é necessário executar o comando git push anteriormente utilizado e depois para executar as migrates no banco do Heroku é só usar:
Se tiver algum problema na aplicação, basta executar o comando abaixo para acessar os logs do servidor:
Para verificar o estado dos processos no servidor, use:
E caso precise executar algum código no ambiente Rails do servidor, executa um terminal remoto do Rails da seguinte forma: