Muita das vezes precisamos testar nossas aplicações em um servidor antes de lançarmos em produção, mas nem todos tem familiaridade com deploy ou possuem um servidor de homologação (testes). Dessa forma, o Heroku pode se tornar uma alternativa, pois é fácil de usar (abstrai muita coisa) e o melhor de tudo, é free! 🎉
Este artigo é para mostrar o passo a passo de como podemos publicar nossos projetos em Laravel utilizando o Heroku e criar um servidor de homologação simples com deploy automatizado usando o Github. Se você não conhece o Heroku, pode saber mais sobre ele clicando aqui.
Instalando o Heroku
Para esse tutorial vou partir da premissa que você já está com o seu projeto no GitHub e com uma conta criada no Heroku (só acessar https://www.heroku.com)
Depois da conta criada, você pode instalar o Heroku CLI acessando https://devcenter.heroku.com/articles/heroku-cli .
No meu caso que uso Linux, instalei via npm rodando o seguinte comando:
npm install -g heroku
Se foi instalado com sucesso você irar conseguir ver a versão rodando o comando:
heroku -v
Configurando o Heroku
Dentro da raiz da sua aplicação Laravel, vamos criar um arquivo chamado "Procfile" (conforme a figura abaixo), nele vamos informar o "perfil" do nosso servidor, que no meu caso vai ser o apache2 (Mas você pode usar o nginx por exemplo).
No arquivo vamos escrever a seguinte linha:
web: vendor/bin/heroku-php-apache2 public/
Criando um novo app no Heroku
Agora vamos criar um app no Heroku rodando o seguinte comando:
heroku create
Você deve ter um resultado parecido com a imagem acima.
Se você acessar https://dashboard.heroku.com/apps irá ver que a aplicação que acabamos de criar está listada. 🙌
Subindo o projeto para o servidor
Antes vamos configurar um script para quando subirmos a nossa aplicação ele dar a permissão na pasta public/
, em seu composer.json
na sessão de scripts adicione o seguinte trecho:
"post-install-cmd": [
"php artisan clear-compiled",
"chmod -R 775 public/"
]
Se você rodar o comando
git remote -v
irá ver que foi criado um novo remote além do origin
com o nome heroku
, é ele que iremos utilizar para dar push em nosso código para disponibilizar no servidor com:
git push heroku master
Pela aba "Overview" em seu dashboard do Heroku, irá ver que sua aplicação já está disponível:
Configurando as variáveis do .env
Para configurar as variáveis do nosso .env, é só acessar a aba "Settings" e ir até "Config Vars". Adicione a KEY e o valor correspondente conforme a imagem:
Criando o banco de dados
Pelo dashboard só que agora na aba Resources
em Add-ons
pesquise por postgres
(você pode escolher o banco de sua preferência) e selecione o Heroku Postgres:
Selecione o plano Hobby Dev - Free
.
Agora, no terminal de sua aplicação vamos obter as credenciais do Banco de Dados que acabamos de criar executando:
heroku pg:credentials:url
Será exibida as credencias para conectar ao banco, o próximo passo é adicionar elas assim como fizemos para as demais do .env
como já foi exemplificado.
Agora podemos rodar nossas migrations
e seeders
executando:
heroku run php artisan migrate --seed
.
Configurando o Deploy automático a partir da master
Com nossa aplicação rodando e tudo funcionando, vamos configurar para que sempre que houver alteração na branch master
o Heroku faça o deploy automático.
Esse passo é bem simples, na aba de deploy
vamos selecionar o Deployment method
GitHub. Irá pedir para você fazer a autenticação na sua conta e em seguida selecionar o repositório. Pronto, só isso e está tudo configurado para o nosso servidor de testes atualizar sozinho quando a master
sofrer alterações.
Caso queira desabilitar essa opção para fazer o deploy de forma manual como fizemos na primeira vez para subir o código, na mesma sessão em App connected to GitHub
clique em disconnect
.
Top comments (0)