Haciendo Deploy de API en Adonis JS en Heroku

Ronaldo B.27 de julio de 20225 min de lectura

En este artículo

En el último artículo aprendimos a crear una API usando Adonis JS y PostgreSQL. Puedes acceder a este contenido haciendo clic aquí.

Pero, ¿cómo podemos realizar el despliegue de este proyecto y hacerlo disponible públicamente? Eso es lo que haremos en este artículo. Realizaremos el despliegue de esta API en Heroku, una plataforma de servicios en la nube bien conocida, utilizada para alojar aplicaciones web.

Ofrece muchas ventajas, como un plan gratuito para alojar nuestros proyectos. Además, tiene integración con GitHub, lo que facilita bastante el proceso de despliegue.

Antes de comenzar la configuración de Heroku, necesitaremos realizar algunas adaptaciones en nuestro proyecto.

Configuraciones adicionales en nuestro código

El primer cambio que realizaremos será en el archivo package.json. Cambiaremos el script de “start”. Esto es necesario porque será este script que Heroku ejecutará para iniciar nuestro proyecto. Quedará así:

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

Explicando: una de las configuraciones primordiales para el buen funcionamiento de nuestra aplicación Adonis JS son las variables de entorno. Estas variables se definen en el archivo .env. No obstante, este archivo no se añadirá a nuestro GitHub. Por lo tanto, Adonis no podrá encontrar tales variables y devolverá un error. Para evitar que esto ocurra, definimos ENV_SILENT como true, para que las variables sean ignoradas y se tomen en cuenta las credenciales que definiremos en Heroku en un momento.

El próximo recurso que añadiremos a nuestro código es el archivo “Procfile”. Es el archivo para las configuraciones de Heroku y define los comandos que se ejecutarán cuando nuestro servidor inicie.

Quedará en la raíz y tendrá el siguiente contenido:

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

Con estos recursos añadidos a nuestro proyecto, estamos listos para iniciar nuestro proyecto en Heroku.

Iniciando configuración en Heroku

Para configurar nuestro proyecto, es necesario que tengamos una cuenta creada en Heroku. Luego podremos acceder a la página de consola y hacer clic en el botón “New” > “Create new app”:

Opción para crear nuevo proyecto en Heroku

En la siguiente página vamos a dar un nombre a nuestro proyecto y hacer clic en “Create app”:

Página para crear un nuevo proyecto en Heroku

La página inicial del proyecto será la siguiente:

Página inicial de nuestro proyecto

La primera configuración que realizaremos es instalar el servicio de PostgreSQL en nuestro servidor, para que Adonis pueda acceder a la base de datos y realizar todas las operaciones que creamos en el último artículo.

Para ello, haremos clic en la segunda opción del menú principal, “Resources”.

En la página siguiente, veremos un área para los Add-ons de nuestro proyecto. Son como recursos externos que son necesarios para que nuestro proyecto funcione correctamente.

Haremos clic en la opción “Find more add-ons”:

Opción para seleccionar más add-ons en nuestro proyecto

En la página siguiente haremos clic en el Add-on “Heroku Postgres”:

Add-on de Postgres en Heroku

Seremos redirigidos a la página de este Add-on. Haremos clic en el botón “Install Heroku Postgres”:

Opción de instalación del Heroku Postgres

Para concluir la instalación, llenaremos el nombre de nuestro proyecto de Heroku en el campo de entrada que aparecerá en la página siguiente y luego haremos clic en “Provision add-on”:

Página final para la instalación del Heroku Postgres

Seremos redirigidos a la página de Visión General de nuestra base de datos. Haremos clic en su nombre y abriremos su información en una nueva pestaña:

Abriendo configuraciones de la base de datos en una nueva pestaña

Esta página nos mostrará algunos datos sobre nuestra base de datos. Haremos clic en la opción Settings:

Visión General de nuestra base de datos

En esta pestaña siguiente haremos clic en la opción “View Credentials...”:

Opción para ver las credenciales de la base de datos

Las credenciales se mostrarán para nosotros. Variarán de una cuenta en Heroku a otra:

Credenciales de nuestra base de datos

Ahora que sabemos las credenciales, las añadiremos a las variables de entorno de nuestro proyecto en Heroku. Para ello, volveremos a la página inicial de nuestro proyecto y haremos clic en “Settings”:

Página de configuraciones en nuestro proyecto de Heroku

Haremos clic en la opción “Reveal Config Vars”, que son nuestras variables de entorno:

Opción para revelar las variables de entorno de nuestra aplicación

Ahora iremos a añadir las credenciales de nuestra aplicación a Heroku de hecho. La primera configuración es el APP_KEY, que podemos encontrar en el archivo .env de nuestra API:

Información de APP\_KEY en nuestro archivo .env

Esta información también variará de una aplicación a otra. Copiaremos esta información y la añadiremos a Heroku, siempre siguiendo el patrón de clave y valor:

Añadiendo variable de entorno al proyecto

Ten en cuenta que seguimos el patrón de que el nombre de la configuración está en letras mayúsculas. Esto se repetirá para las otras configuraciones. También añadiremos las variables de entorno DB_CONNECTION, DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE y DB_PORT. Nuestras variables de entorno quedarán así:

Configuraciones de nuestra aplicación en Heroku

Con las configuraciones finalizadas, ha llegado el momento de conectar nuestro proyecto a GitHub. Para ello, crearemos un repositorio en GitHub y luego realizaremos la conexión entre estos dos servidores.

Para realizar esta conexión, seleccionaremos la tercera opción de nuestro menú principal, el enlace de “Deploy”. Luego, seleccionaremos la opción de conectar con GitHub:

Opción de conectar el proyecto con GitHub

Después de realizar la conexión, necesitamos saber el nombre de nuestro repositorio en GitHub, que puede encontrarse incluso en la URL de nuestro navegador:

Cómo encontrar el nombre de nuestro repositorio a través de la URL de GitHub

Escribiremos este nombre en el campo de búsqueda de Heroku y luego haremos clic en “Search”:

Buscando nuestro repositorio en GitHub

Nuestro repositorio se mostrará y luego haremos clic en “Connect”:

Conectando nuestro repositorio en GitHub a Heroku

Se mostrarán algunas opciones. Si lo deseas, puedes hacer clic en el botón “Enable Automatic Deploys”. Así, siempre que realicemos una actualización en nuestro GitHub, se añadirá automáticamente a Heroku:

Opción para habilitar despliegues automáticos en Heroku

Sin embargo, ahora realizaremos el despliegue de manera manual. Para eso, haremos clic en el botón “Deploy Branch”, que estará cerca del final de la página:

Opción de despliegue manual en Heroku

En este momento nuestras migraciones se ejecutarán en Heroku y el despliegue se realizará de hecho.

Al final del proceso, veremos un mensaje de éxito, informando que nuestra aplicación ya está disponible para ser accedida:

Mensaje de éxito, informando que la aplicación ya está disponible

Al hacer clic en “View” seremos dirigidos a nuestra API en producción.

La primera vez quizás no veamos ningún dato, ya que nuestra API estará iniciando en la nube. Podemos añadir alguna información a través de Insomnia, informando la URL de nuestra API:

Añadiendo datos a nuestra API a través de Insomnia

Ahora, al acceder a la ruta que lista todos los cursos en nuestra API en el navegador, veremos el siguiente resultado:

Lista de cursos en nuestra API en Heroku

Excelente, ¡nuestra API está funcionando, ahora en producción!

Conclusión

En este artículo vimos cómo podemos realizar el despliegue de una API en Adonis JS en Heroku. Si tienes algún proyecto personal y deseas añadirlo a producción, Heroku es una excelente opción.

Si lo deseas, puedes revisar este mismo contenido en video en nuestro canal de YouTube.

Puedes enviar sugerencias de temas para nuestro Blog haciendo clic aquí.

Esperamos que te haya gustado el contenido y hasta el próximo artículo :)

Sigue aprendiendo con Hcode

Regístrate en la plataforma de cursos y sigue las próximas guías del blog.