Fazendo Deploy de API em Adonis JS no Heroku

27 de julho de 2022
Ronaldo B.

No último artigo aprendemos a criar uma API usando Adonis JS e PostgreSQL. Você pode acessar esse conteúdo clicando aqui.

Mas, como podemos realizar o deploy desse projeto e disponibilizá-lo publicamente? É o que iremos fazer neste artigo. Iremos realizar o deploy dessa API no Heroku, uma plataforma de serviços em nuvem bem conhecida, usada para hospedar aplicações Web.

Ele oferece muitas vantagens, como um plano gratuito para hospedar nossos projetos. Além disso, ele possui integração com o GitHub, o que facilita bastante o processo de deploy.

Antes de iniciar a configuração do Heroku, vamos precisar realizar algumas adaptações em nosso projeto.

Configurações adicionais em nosso código

A primeira mudança que iremos realizar será no arquivo package.json. Iremos mudar o script de “start”. Isso é necessário pois será esse script que o Heroku irá executar para iniciar nosso projeto. Ele ficará assim:

"start": "ENV_SILENT=true node server.js"

Explicando: uma das configurações primordiais para o bom funcionamento de nossa aplicação Adonis JS são as variáveis de ambiente. Essas variáveis são definidas no arquivo .env. Contudo, esse arquivo não será adicionado ao nosso GitHub. Logo, o Adonis não conseguirá encontrar tais variáveis e retornará um erro. Para evitar que isso ocorra, nós definimos ENV_SILENT como true, para que as variáveis sejam ignoradas e seja levado em conta as credenciais que iremos definir no Heroku daqui a pouco.

O próximo recurso que iremos adicionar ao nosso código é o arquivo “Procfile”. Ele é o arquivo para as configurações do Heroku e define os comandos que serão executados quando nosso servidor iniciar.

Ele ficará na raiz e possuirá o seguinte conteúdo:

release: ENV_SILENT=true node ace migration:run --force
web: ENV_SILENT=true npm start

Com esses recursos adicionados ao nosso projeto, estamos prontos para iniciar nosso projeto no Heroku.

Iniciando configuração no Heroku

Para configurar o nosso projeto, é necessário que tenhamos uma conta criada no Heroku. Daí poderemos acessar a página de console e clicar no botão “New” > “Create new app”:

Opção para criar novo projeto no Heroku

Na próxima página vamos dar um nome para nosso projeto e clicar em “Create app”:

Página para criar um novo projeto no Heroku

A página inicial do projeto será a seguinte:

Página inicial do nosso projeto

A primeira configuração que iremos realizar é instalar o serviço do PostgreSQL em nosso servidor, para que o Adonis possa acessar o Banco de Dados e realizar todas as operações que criamos no último artigo.

Para isso, vamos clicar na segunda opção do menu principal, “Resources”.

Na página a seguir, veremos uma área para os Add-ons de nosso projeto. Eles são como recursos externos, que são necessários para nosso projeto funcionar corretamente.

Iremos clicar na opção “Find more add-ons”:

Opção para selecionar mais add-ons em nosso projeto

Na página seguinte iremos clicar no Add-on “Heroku Postgres”:

Add-on do Postgres no Heroku

Nós seremos redirecionados para a página deste Add-on. Iremos clicar no botão “Install Heroku Postgres”:

Opção de instalação do Heroku Postgres

Para concluir a instalação, iremos preencher o nome de nosso projeto do Heroku no campo input que irá aparecer na página seguinte e então clicar em “Provision add-on”:

Página final para instalação do Heroku Postgres

Seremos redirecionados para a página de Visão Geral do nosso Banco de Dados. Iremos clicar no nome dele e abrir suas informações em uma nova aba:

Abrindo configurações do Banco de Dados em uma nova aba

Essa página irá nos mostrar alguns dados a respeito de nosso Banco de Dados. Iremos clicar na opção Settings:

Visão Geral de nosso Banco de Dados

Nessa próxima aba iremos clicar na opção “View Credentials...”:

Opção de ver as credenciais do Banco de Dados

As credenciais serão exibidas para nós. Elas irão variar de uma conta no Heroku para outra:

Credenciais de nosso Banco de Dados

Agora que sabemos as credenciais, iremos adicioná-las às variáveis de ambiente de nosso projeto no Heroku. Para isso, vamos voltar à página inicial de nosso projeto e clicar em “Settings”:

Página de configurações em nosso projeto do Heroku

Iremos clicar na opção “Reveal Config Vars”, que são as nossas variáveis de ambiente:

Opção para revelar as variáveis de ambiente de nossa aplicação

Agora iremos adicionar as credenciais de nossa aplicação ao Heroku de fato. A primeira configuração é o APP_KEY, que podemos encontrar no arquivo .env de nossa API:

Informação de APP_KEY em nosso arquivo .env

Essa informação também irá variar de uma aplicação para outra. Iremos copiar essa informação e adicioná-la ao Heroku, sempre com o padrão de chave e valor:

Adicionando variável de ambiente ao projeto

Perceba que seguimos o padrão de o nome da configuração estar em letras maiúsculas. Isso se repetirá para as outras configurações. Iremos adicionar também as variáveis de ambiente DB_CONNECTION, DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE e DB_PORT. Nossas variáveis de ambiente ficarão assim:

Configurações de nossa aplicação no Heroku

Com as configurações finalizadas, chegou a hora de conectar nosso projeto ao GitHub. Para isso, iremos criar um repositório no GitHub e então realizar a conexão entre esses dois servidores.

Para realizar essa conexão, vamos selecionar a terceira opção do nosso menu principal, o link de “Deploy”. Daí, vamos selecionar a opção de conectar com o GitHub:

Opção de conectar o projeto com o GitHub

Após realizar a conexão, precisamos saber o nome de nosso repositório no GitHub, que pode ser encontrado até mesmo na URL de nosso navegador:

Como encontrar o nome de nosso repositório por meio da URL do GitHub

Iremos digitar esse nome no campo de busca do Heroku e então clicar em “Search”:

Pesquisando por nosso repositório no GitHub

O nosso repositório será exibido e então clicaremos em “Connect”:

Conectando nosso repositório no GitHub ao Heroku

Algumas opções serão exibidas. Se desejar, poderá clicar no botão “Enable Automatic Deploys”. Assim, sempre que realizarmos uma atualização em nosso GitHub, ela será automaticamente adicionada ao Heroku:

Opção para habilitar os deploys automáticos no Heroku

Contudo, agora iremos realizar o deploy de maneira manual. Para isso, iremos clicar no botão “Deploy Branch”, que estará perto do fim da página:

Opção de deploy manual no Heroku

Neste momento nossas migrations serão executadas no Heroku e o deploy será de fato realizado.

Ao fim do processo, veremos uma mensagem de sucesso, informando que nossa aplicação já está disponível para ser acessada:

Mensagem de sucesso, informando que a aplicação já está disponível

Clicando em “View” seremos direcionados para nossa API em produção.

Da primeira vez talvez não vejamos nenhum dado, pois nossa API estará iniciando na nuvem. Podemos adicionar algumas informações por meio do Insomnia, informando a URL de nossa API:

Adicionando dados à nossa API por meio do Insomnia

Agora, ao acessar a rota que lista todos os cursos em nossa API no navegador, veremos o seguinte resultado:

Lista de cursos em nossa API no Heroku

Excelente, nossa API está funcionando, agora em produção!

Conclusão

Neste artigo vimos como podemos realizar o deploy de uma API em Adonis JS no Heroku. Se você possui algum projeto pessoal e deseja adicioná-lo à produção, o Heroku é uma excelente opção.

Se desejar, você pode conferir esse mesmo conteúdo em vídeo em nosso canal no YouTube.

Você pode enviar sugestões de temas para o nosso Blog clicando aqui.

Esperamos que tenha gostado do conteúdo e até o próximo artigo :)

Hcode: Utilizamos cookies para a personalização de anúncios e experiências de navegação dentro de nosso site. Ao continuar navegando, você concorda com as nossas Política de Privacidade.