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”:
En la siguiente página vamos a dar un nombre a nuestro proyecto y hacer clic en “Create app”:
La página inicial del proyecto será la siguiente:
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”:
En la página siguiente haremos clic en el Add-on “Heroku Postgres”:
Seremos redirigidos a la página de este Add-on. Haremos clic en el botón “Install 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”:
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:
Esta página nos mostrará algunos datos sobre nuestra base de datos. Haremos clic en la opción Settings:
En esta pestaña siguiente haremos clic en la opción “View Credentials...”:
Las credenciales se mostrarán para nosotros. Variarán de una cuenta en Heroku a otra:
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”:
Haremos clic en la opción “Reveal Config Vars”, que son nuestras variables de entorno:
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:
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:
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í:
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:
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:
Escribiremos este nombre en el campo de búsqueda de Heroku y luego haremos clic en “Search”:
Nuestro repositorio se mostrará y luego haremos clic en “Connect”:
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:
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:
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:
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:
Ahora, al acceder a la ruta que lista todos los cursos en nuestra API en el navegador, veremos el siguiente resultado:
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 :)