Slack es una potente plataforma de mensajería que permite a los equipos colaborar de forma eficiente. Y si esa colaboración también implica ocuparse de varios sitios de WordPress aquí en Kinsta, puedes trasladar algunas tareas comunes de gestión de sitios a Slack con la ayuda de la API de Kinsta.

Integrar un Slackbot en tu flujo de trabajo puede ahorrar tiempo y mejorar la productividad. Este tutorial combina el poder de Slack y la API de Kinsta para construir un Slackbot capaz de gestionar tareas como comprobar el estado del sitio, limpiar la caché de un sitio y reiniciar el motor PHP de un sitio.

Qué Vas a Construir

Aquí vas a construir un Slackbot en Node.js utilizando la API Bolt (la forma más rápida de empezar a programar con la Plataforma Slack). Tu aplicación convierte los comandos de barra de Slack en llamadas a la API Kinsta y retransmite las respuestas para que toda la interacción con el usuario se produzca en Slack.

Demostración del Slackbot de la API Kinsta.
Demostración del Slackbot de la API Kinsta.

Requisitos previos

Para seguir este proyecto, debes tener lo siguiente:

Crear una Aplicación Slack

Un Slackbot es esencialmente una aplicación Slack. Para crear una nueva aplicación Slack, sigue estos pasos:

  1. Navega hasta el panel de control de la API de Slack.
  2. Haz clic en el botón Crear una Aplicación, que abrirá un modal.
  3. Selecciona la opción Desde cero para empezar a crear tu aplicación desde cero.
  4. Dale un nombre a tu aplicación Slack. Por ejemplo, Kinsta Bot.
  5. A continuación, elige el espacio de trabajo donde quieres instalar la app y haz clic en el botón Crear Aplicación.

No dudes en editar la información básica de tu app navegando hasta la opción Información básica de la barra lateral. Desplázate hasta Información de la pantalla para añadir detalles como una imagen, un nombre, una descripción, un color y mucho más.

Información de pantalla de Slackbot.
Información de pantalla de Slackbot.

Configurar OAuth y los permisos

Has creado con éxito un Slackbot. Sin embargo, hay que concederle ciertos permisos para que pueda acceder a los datos y realizar acciones dentro de tu espacio de trabajo de Slack. Para acceder a la configuración necesaria

  1. Ve al panel de control de tu aplicación Slack y busca la opción OAuth y Permisos en la barra lateral izquierda.
  2. Una vez allí, desplázate hasta la sección Scopes.
  3. Concede a tu bot la capacidad de leer mensajes instantáneos de los usuarios y responder a esos mensajes.

A continuación se muestra una captura de pantalla con los ámbitos que debes proporcionar a tu bot:

<strong>Scopes</strong> de la aplicación Slack.
Scopes de la aplicación Slack.

Configurando estos ámbitos, tu bot estará equipado para interactuar sin problemas con los usuarios de Slack y llevar a cabo sus funciones previstas con eficacia.

Instalar Slack Bot en tu espacio de trabajo

Para completar el proceso, debes instalar tu nuevo Slackbot en tu espacio de trabajo de Slack. Navega hasta la barra lateral izquierda y selecciona Instalar aplicaciones. Desde allí, haz clic en Instalar en el espacio de trabajo y especifica el canal en el que deseas añadir el bot.

Tu Slackbot ya está listo. Vamos a configurar un servidor Node.js que se utilizará para recibir y procesar tus solicitudes.

Configurar el Entorno de Desarrollo

Para empezar con tu nuevo proyecto Node.js, crea un nuevo directorio para tu aplicación e inícialo con npm:

mkdir my-express-app 
cd my-express-app 
npm init -y

Tras ejecutar el comando anterior, se creará un nuevo archivo package.json en el directorio que hayas elegido con los valores predeterminados. El archivo package.json es esencial, ya que contiene información sobre tu proyecto y sus dependencias. Estas dependencias permitirán un desarrollo fluido y mejorarán la funcionalidad de tu proyecto:

  1. @slack/bolt: Este framework JavaScript te permite crear rápidamente aplicaciones Slack ricas en funciones, aprovechando las últimas capacidades de la plataforma.
  2. nodemon: Una valiosa herramienta que reinicia automáticamente tu aplicación Node.js cada vez que se detectan cambios de archivo en el directorio, garantizando un flujo de trabajo de desarrollo optimizado.
  3. dotenv: Este módulo de dependencia cero desempeña un papel crucial en la carga de variables de entorno desde el archivo .env a process.env, haciendo que la gestión de la configuración sea pan comido.

Para instalar los paquetes necesarios, ejecuta los siguientes comandos:

npm i @slack/bolt
npm i --save-dev nodemon dotenv

Tras instalar correctamente estas dependencias y las dependencias dev, es hora de añadir un script dev a tu archivo package.json, utilizando nodemon para ejecutar tu archivo JavaScript. Asegúrate de que tu objeto script package.json incluye lo siguiente:

"scripts": {
  "dev": "nodemon app.js"
}

Por último, es importante mencionar que el script dev apunta a un archivo app.js inexistente. Crea este archivo en el directorio de tu proyecto, ya que es aquí donde se manejará la lógica de tu proyecto.

touch app.js

Configurar tus variables de entorno (tokens y secretos)

Necesitarás tokens y secretos específicos para interactuar con tu aplicación Slack desde tu proyecto Node.js. Estas credenciales son sensibles, y para garantizar su protección al utilizar el control de versiones, las almacenaremos en el archivo .env.

Para obtener el Secreto de firma, ve a tu panel de control de Slack, haz clic en Información básica y desplázate hasta Credenciales de la aplicación, donde encontrarás el Secreto de firma. Para el token, haz clic en Instalar App u OAuth & Permisos, y allí encontrarás el Token OAuth. Normalmente, el token empieza por «xoxb».

Crea un archivo llamado .env en el directorio raíz de tu proyecto, y añade el Signing Secret y el Bot Token con el siguiente formato:

SLACK_SIGNING_SECRET="YOUR SIGNING SECRET"
SLACK_BOT_TOKEN="YOUR BOT TOKEN"

Para asegurarte de que esta información sensible no se envía a tu proveedor de Git, crea un archivo .gitignore en el directorio raíz de tu proyecto y añade las siguientes líneas para ignorar el archivo .env y la carpeta node_modules:

/node_modules
.env

Una vez completada esta configuración, ya estás listo para proceder a la configuración del servidor.

Configurar el servidor Node.js

Configurar el servidor Node.js es un paso clave para construir tu Slackbot. Necesitas importar los paquetes y módulos necesarios, inicializarlos y establecer el puerto en el que escuchará tu proyecto. Abre el archivo app.js que has creado antes y añade el siguiente código:

const { App } = require("@slack/bolt");
require("dotenv").config();

// Initializes your app with your bot token and signing secret
const app = new App({
  token: process.env.SLACK_BOT_TOKEN,
  signingSecret: process.env.SLACK_SIGNING_SECRET,
});

(async () => {
    // Start your app
    await app.start(process.env.PORT || 3000);
    console.log(`⚡️ Kinsta Bot app is running on port ${process.env.PORT || 3000}!`);
})();

En el código anterior, importas la clase App de la biblioteca @slack/bolt, un componente crucial para construir aplicaciones Slack. Además, utilizas el paquete dotenv para procesar variables de entorno.

A continuación, se crea la constante app utilizando la clase App, que representa tu aplicación Slack bot. Requiere dos parámetros importantes: token y signingSecret. Estos valores se obtienen del archivo .env.

A continuación, dentro de la función async, se produce la configuración del servidor. La aplicación se inicia llamando a app.start(). Escucha el puerto 3000 localmente y registra un mensaje en la consola, confirmando que la aplicación Kinsta Bot se está ejecutando.

Ahora, cuando ejecutes el script dev que configuraste (npm run dev), obtendrás el mensaje en tu terminal «⚡️ ¡La aplicación Kinsta Bot se está ejecutando en el puerto 3000!»

Comprender el Modo Socket de la API de Slack

En la integración de la API de Slack con servidores Node.js, hay dos métodos principales de conexión: utilizar el punto final HTTP público de tu servidor o emplear el Modo Socket para habilitar WebSockets. Este tutorial se centra en la utilización del Modo Socket, ya que permite la implementación de funciones interactivas como los comandos de barra de Slack con mayor facilidad. Este enfoque permite a Slack conectarse a tu servidor Node.js utilizando WebSockets en lugar del HTTP tradicional.

Sin embargo, si decides utilizar el punto final HTTP localmente, puedes aprovechar ngrok para crear una URL pública que haga proxy a tu host local.

Cómo empezar con el modo socket

Para empezar con el Modo Socket, sigue estos pasos:

  1. Ve a Información Básica en la barra lateral izquierda de tu panel de control de Slack. Desplázate hasta App-Level Tokens y haz clic en el botón Generar Token y Ámbitos.
  2. Dale un nombre a tu token y añade los dos ámbitos disponibles: connections:write y authorizations:read. Haz clic en Generar para crear el token.
  3. Copia el token generado y pégalo en tu archivo .env, asignándolo a una variable llamada APP_TOKEN. Recuerda que las cadenas de tokens a nivel de aplicación empiezan por xapp-.

A continuación, haz clic en Modo Socket en la barra lateral, y activa la opción Activar Modo Socket. Por último, en tu archivo app.js, añade socketMode:true y tu appToken al código que inicializa tu app/servidor:

const app = new App({
  token: process.env.SLACK_BOT_TOKEN,
  signingSecret: process.env.SLACK_SIGNING_SECRET,
  socketMode: true, // enable socket mode
  appToken: process.env.APP_TOKEN,
});

Una vez que hayas completado estos pasos, todas las peticiones a tu servidor de desarrollo se producirán a través de WebSockets en lugar de HTTP. Esta configuración te permite aprovechar al máximo el Modo Socket y mejorar la funcionalidad de tu Slackbot.

Comandos Slash Slack

Los comandos slash son una potente función de Slack que permite activar acciones específicas. Estos activadores pueden detectarse en mensajes de chat a través de canales dentro de Slack. Además, los comandos slash te permiten pasar datos de texto directamente a tu servidor. Por ejemplo, si configuras un comando como /operation_status [operation ID], pasará el operation ID proporcionado a tu servidor y activará el correspondiente oyente del comando operation_status.

Con tu servidor correctamente configurado para interactuar con Slack, el siguiente paso es configurar comandos slash que desencadenen acciones en tu servidor.

Crear Comandos Slash en Slack

Para crear Comandos Slash en Slack, haz clic en la opción de menú Comandos Slash de la barra lateral izquierda y, a continuación, en el botón Crear nuevo comando. Rellena el formulario resultante utilizando la imagen de abajo como guía.

Crear un nuevo comando Slack.
Crear un nuevo comando Slack.

Tras rellenar el formulario, haz clic en el botón Guardar. Slack te pedirá que reinstales la aplicación en tu espacio de trabajo para que los cambios surtan efecto. Sigue las instrucciones para crear algunos comandos de barra, como se muestra en la imagen siguiente:

Comandos slash para interactuar con la API de Kinsta.
Comandos slash para interactuar con la API de Kinsta.

Configurar comandos slash con Node.js

Una vez que hayas creado los comandos slash necesarios, modifica tu aplicación Node.js para que responda a ellos.

Empecemos probando el comando /operation_status. Configura una escucha para los eventos que incluyan el comando /operation_status añadiendo el siguiente código a tu archivo app.js:

const { App } = require('@slack/bolt');
require('dotenv').config();

const app = new App({
    token: process.env.SLACK_BOT_TOKEN,
    signingSecret: process.env.SLACK_SIGNING_SECRET,
    socketMode: true, // enable the following to use socket mode
    appToken: process.env.APP_TOKEN,
});

app.command('/operation_status', async ({ command, ack, say }) => {
    await ack();
    say('Wooah! Iit works!');
});

(async () => {
    // Start your app
    await app.start(process.env.PORT || 3000);
    console.log(`⚡️ Kinsta Bot app is running on port ${process.env.PORT || 3000}!`);
})();

En el código anterior, la atención se centra en la función app.command(), que funciona de forma similar a los escuchadores de eventos en JavaScript. Especifica el comando que deseas escuchar y, a continuación, crea una función de devolución de llamada asíncrona para definir la acción deseada. Esta función recibe tres parámetros:

  • command: Contiene los detalles del comando de barra enviado por el usuario.
  • ack: Acusa recibo de la orden de barra.
  • say: Envía un mensaje de vuelta al canal Slack.

Con el código anterior, el comando /operation_status en Slack generará el mensaje «¡Wooah! ¡funciona!»

Probando el comando slash Kinsta.
Probando el comando slash Kinsta.

Ahora, vamos a añadir los escuchadores de comandos para todos los comandos slash que has creado:

app.command('/environment_id', async ({ command, ack, say }) => {
    await ack();
    // Perform the desired action using the command and then send a response.
});

app.command('/site_id', async ({ command, ack, say }) => {
    await ack();
    // Perform the desired action using the command and then send a response.
});

app.command('/operation_status', async ({ command, ack, say }) => {
    await ack();
    // Perform the desired action using the command and then send a response.
});

app.command('/clear_site_cache', async ({ command, ack, say }) => {
    await ack();
    // Perform the desired action using the command and then send a response.
});

app.command('/restart_php_engine', async ({ command, ack, say }) => {
    await ack();
    // Perform the desired action using the command and then send a response.
});

Tu aplicación ya está lista para escuchar los comandos slash de Slack. Es hora de añadir las acciones que desencadenará cada comando.

Implementar Comandos Slash con la API de Kinsta

Tu aplicación responderá a cada comando slash con una llamada a la API de Kinsta y luego devolverá el resultado de esa acción a Slack. Para utilizar la API de Kinsta, debes tener una cuenta con al menos un sitio, aplicación o base de datos de WordPress en MyKinsta. También necesitarás generar una clave API para autenticarte y acceder a tu cuenta a través de la API.

Cómo crear una clave API de Kinsta

Para generar una clave API:

  1. Ve a tu panel de MyKinsta.
  2. Ve a la página Claves API (Tu nombre > Configuración de la empresa > Claves API).
  3. Haz clic en Crear Clave API.
  4. Elige una fecha de caducidad o establece una fecha de inicio personalizada y un número de horas para que caduque la clave.
  5. Dale a la clave un nombre único.
  6. Haz clic en Generar.

Cuando crees una clave API, cópiala y guárdala en algún lugar seguro, ya que es la única vez que podrás verla. Para este proyecto, guárdala en tu archivo .env como KINSTA_API_KEY.

Interactuar con la API de Kinsta en Node.js

Se puede interactuar con la API de Kinsta utilizando varias bibliotecas Node.js, incluida Axios. Sin embargo, en este tutorial, optaremos por el método JavaScript fetch(), que ahora es compatible y funciona eficazmente en las últimas versiones de Node.js.

Para este Slackbot, se harán muchas peticiones a la API, incluyendo peticiones GET y POST. Para evitar repeticiones, almacena la URL de la API y las cabeceras en variables para que tu código sea fácil de mantener y leer:

// kinsta API utilities
const KinstaAPIUrl = 'https://api.kinsta.com/v2';

const getHeaders = {
    Authorization: `Bearer ${process.env.KINSTA_API_KEY}`,
};

const postHeaders = {
    'Content-Type': 'application/json',
    Authorization: `Bearer ${process.env.KINSTA_API_KEY}`,
};

Antes de empezar a codificar la respuesta de tu aplicación a cada comando slash, deberías copiar el ID de tu empresa Kinsta y almacenarlo en el archivo .env como KINSTA_COMPANY_ID. Será necesario para recuperar tu lista de sitios.

Implementación del comando slash ID de entorno

Cuando utilices el comando slash /environment_id, cualquier valor proporcionado después del comando será recuperado y utilizado en tu servidor Node.js. Para este comando, se ha añadido una pista para indicar que espera un parámetro: el [Site name].

Cada sitio en MyKinsta tiene un nombre de sitio único, pero no existe un punto final directo para solicitar el ID de entorno de un sitio utilizando su nombre. En consecuencia, primero tienes que hacer una solicitud para todos los sitios de tu cuenta de empresa, y luego utilizar el método find() para localizar el sitio cuyo nombre coincida con el pasado con el comando slash.

Para ello, se realizan dos peticiones. En primer lugar, obtienes el ID del sitio y, a continuación, realizas otra solicitud al punto final /environments para recuperar el ID del entorno asociado a ese sitio.

Para mantener la claridad del código y facilitar el mantenimiento, cada solicitud se realiza de forma independiente. Esto significa tener funciones individuales para estas solicitudes y luego llamar a esas funciones en el receptor de comandos.

Empecemos por obtener la lista de todos tus sitios:

async function getAllSites() {
    const query = new URLSearchParams({
        company: process.env.KINSTA_COMPANY_ID,
    }).toString();
    const resp = await fetch(`${KinstaAPIUrl}/sites?${query}`, {
        method: 'GET',
        headers: getHeaders,
    });
    const data = await resp.json();
    return data;
}

El código anterior devolverá una matriz con todos los sitios. En el escuchador de comandos /environment_id, recuperarás la respuesta y la almacenarás en una variable. A continuación, utilizando el método find(), busca un sitio cuyo nombre coincida con el pasado desde Slack. La información de Slack se almacena en command.text.

app.command('/environment_id', async ({ command, ack, say }) => {
    await ack();
    let siteName = command.text;
    let response = await getAllSites();
    if (response) {
        let mySites = response.company.sites;
        let currentSite = mySites.find((site) => site.name === siteName);
        // get environment ID
    }
});

Ahora que tienes el sitio, utiliza su ID para obtener el ID del entorno. De forma similar a cuando consultamos una lista de sitios, crea una función dedicada para hacer una petición HTTP al punto final /environments:

async function getEnvironmentId(siteId) {
    const resp = await fetch(`${KinstaAPIUrl}/sites/${siteId}/environments`, {
        method: 'GET',
        headers: getHeaders,
    });
    const data = await resp.json();
    return data;
}

El código anterior espera que el ID del sitio se pase como argumento al llamar a esta función en el escuchador de comandos /environment_id. Al recibir el ID, se realiza la solicitud a la API, y la respuesta se almacena en una variable. A continuación, puedes emitir el ID del entorno en Slack utilizando el método say():

app.command('/environment_id', async ({ command, ack, say }) => {
    await ack();
    let siteName = command.text;
    let response = await getAllSites();
    if (response) {
        let mySites = response.company.sites;
        let currentSite = mySites.find((site) => site.name === siteName);
        let envIdResponse = await getEnvironmentId(currentSite.id);
        let envId = envIdResponse.site.environments[0].id;
        if (envId) {
            say(`Hey 👋,nnThe environment ID for "${siteName}" is 👉 ${envId}`);
        }
    }
});

En este punto, cuando abras Slack y escribas /environment_id seguido de un nombre de sitio válido, como /environment_id fashionstored, recibirás una respuesta parecida a ésta:

ID de entorno Comando Slash.
ID de entorno Comando Slash.

Implementación de Herramientas del Sitio (Borrar Caché del Sitio, Reiniciar Motor PHP) Comando Slash

Dos tareas que puedes implementar fácilmente a través de la API sin tener que navegar a MyKinsta son las operaciones de herramientas del sitio Borrar caché del sitio y Reiniciar motor PHP.

Para realizar cualquier operación de las herramientas del sitio, todo lo que necesitas es el ID del entorno. Este ID se utiliza para hacer una petición POST a /sites/tools/clear-cache y /sites/tools/restart-php respectivamente. Como hiciste anteriormente, realiza la solicitud API de forma independiente y devuelve la respuesta:

async function clearSiteCache(environmentId) {
    const resp = await fetch(`${KinstaAPIUrl}/sites/tools/clear-cache`, {
        method: 'POST',
        headers: postHeaders,
        body: JSON.stringify({
            environment_id: environmentId,
        }),
    });
    const data = await resp.json();
    return data;
}

async function restartPHPEngine(environmentId) {
    const resp = await fetch(`${KinstaAPIUrl}/sites/tools/restart-php`, {
        method: 'POST',
        headers: postHeaders,
        body: JSON.stringify({
            environment_id: environmentId,
        }),
    });
    const data = await resp.json();
    return data;
}

A continuación, crearás escuchadores de comandos para ambas operaciones en Slack. Estos escuchadores se configurarán para que se activen cada vez que se utilice el comando respectivo:

app.command('/clear_site_cache', async ({ command, ack, say }) => {
    await ack();
    let environmentId = command.text;
    let response = await clearSiteCache(environmentId);
    if (response) {
        say(
            `Hey 👋, nn${response.message} by using the /operation_status slack commmand. nnOperation Id is ${response.operation_id}`
        );
    }
});

app.command('/restart_php_engine', async ({ command, ack, say }) => {
    await ack();
    let environmentId = command.text;
    let response = await restartPHPEngine(environmentId);
    if (response) {
        say(
            `Hey 👋, nn${response.message} by using the /operation_status slack command. nnOperation Id is ${response.operation_id}`
        );
    }
});

En el código anterior, los datos recuperados de las solicitudes de la API se utilizan para construir la respuesta enviada a Slack. La respuesta incluye información sobre la operación, como el mensaje y el ID de la operación.

Reinicia el motor PHP con el comando slash.
Reinicia el motor PHP con el comando slash.

Implementando estos comandos slash y sus correspondientes listeners, harás que tu Slackbot interactúe sin problemas con la API de Kinsta, facilitando más que nunca la gestión de la caché de tu sitio y del motor PHP directamente desde Slack.

Implementar un comandos slash de estado de operación

También sería bueno obtener el estado de tus operaciones desde Slack. Para ello, utilizarás el endpoint /operations junto con el operation_id. Como antes, crea una función para gestionar esta petición y devolver la respuesta a la petición:

async function CheckOperationStatus(operationId) {
    const resp = await fetch(`${KinstaAPIUrl}/operations/${operationId}`, {
        method: 'GET',
        headers: getHeaders,
    });
    const data = await resp.json();
    return data;
}

Definamos el escuchador de comandos para lanzar la solicitud y pasemos el operation ID enviado a través de Slack:

app.command('/operation_status', async ({ command, ack, say }) => {
    await ack();
    let operationId = command.text;
    let response = await CheckOperationStatus(operationId);
    let operationMessage = response.message;
    if (operationMessage) {
        say(`Hey 👋, nn${operationMessage}`);
    }
});

Ahora, cuando utilices el comando /operation_status barra con cualquier operation ID válido, obtendrás el estado del ID devuelto a través de Slack.

Comprueba el estado de la operación con slackbot.
Comprueba el estado de la operación con slackbot.

Además de los comandos que ya has implementado con la API de Kinsta, hay más comandos que pueden integrarse, así como eventos adicionales que pueden ser gestionados por el Slackbot. Por ejemplo, el Slackbot puede responder cuando se le menciona o etiqueta utilizando el símbolo @.

Para activar esta funcionalidad, tienes que suscribirte a los eventos necesarios en Slack. En lugar de utilizar el método app.command(), utilizarás el método app.message(), que toma los parámetros command y say.

Aquí tienes un ejemplo de cómo puedes conseguirlo:

app.message("hey", async ({ command, say }) => {
  say("Woah! It works!");
});

Después de crear tu Slackbot, puede que notes que no puedes enviarle mensajes. Cuando navegas hasta el bot en la pestaña Apps de Slack, podrías encontrarte con un mensaje que dice «Se ha desactivado el envío de mensajes a esta aplicación» Pero no te preocupes, ¡podemos solucionarlo fácilmente!

Para activar el envío de mensajes, sigue estos pasos:

  1. Haz clic en la opción de menú App Home situada en la barra lateral izquierda.
  2. Esta página te permite gestionar todos los ajustes de tu bot. Desplázate hacia abajo hasta que encuentres la casilla «Permitir a los usuarios enviar comandos Slash y mensajes desde la pestaña de mensajes».
  3. Marca la casilla para activar esta funcionalidad.

Una vez que hayas hecho estos cambios, es esencial que recargues tu aplicación Slack para reflejar las actualizaciones. Si utilizas un Mac, puedes recargar Slack pulsando CMD + R. Para otros usuarios de PC, puedes hacerlo pulsando CTRL + R.

Ahora, ¡ya estás listo para enviar mensajes a tu bot! En la aplicación Slack, deberías ver la aplicación Kinsta Bot justo debajo de la sección Tus aplicaciones. Haz clic en ella para empezar a enviar mensajes. No dudes en probar cualquiera de los comandos de barra que hayas configurado, y deberían funcionar a la perfección. ¡Disfruta de la interacción fluida con tu Slackbot!

El código fuente completo de este proyecto está disponible en GitHub.

Desplegar Tu Aplicación Node.js en Kinsta

Cuando construyas tu servidor Node.js, es importante desplegarlo para que tu Slackbot esté siempre disponible, incluso si detienes tu desarrollo local. Puedes desplegarlo en la plataforma de Alojamiento de Aplicaciones de Kinsta si tu código está alojado en los proveedores de Git Bitbucket, GitHub o GitLab.

Para desplegar tu repositorio en Kinsta, sigue estos pasos:

  1. Accede a tu cuenta Kinsta en el panel de control MyKinsta.
  2. Haz clic en Añadir servicio.
  3. Selecciona Aplicación en el menú desplegable.
  4. En el modal que aparece, elige el repositorio que quieres desplegar. Si tienes varias ramas, puedes seleccionar la rama deseada y dar un nombre a tu aplicación.
  5. Selecciona una de las ubicaciones de centros de datos disponibles. Kinsta detectará e instalará las dependencias de tu aplicación a partir de package.json, luego construirá y desplegará.

Por último, no es seguro enviar claves API a hosts públicos como tu proveedor de Git. Cuando alojes en Kinsta, puedes añadirlas como variables de entorno utilizando el mismo nombre de variable y valor especificados en tu archivo .env de desarrollo.

Establece variables de entorno en DevKinsta al desplegar.
Establece variables de entorno en DevKinsta al desplegar.

Una vez que inicies el despliegue de tu aplicación, comenzará el proceso y normalmente se completará en unos minutos. Si algún problema con tus configuraciones de Node.js afecta al despliegue, puedes añadir un buildpack de Node.js en la pestaña de configuración del despliegue.

Resumen

En este artículo, has aprendido cómo construir una aplicación Node.js que conecta Slack con la API de Kinsta y cómo desplegar esa aplicación en Kinsta.

Slackbots y la API de Kinsta te facilitan la monitorización y gestión de tus servicios alojados en Kinsta. Partiendo de lo básico de este tutorial, imagina lo que puedes hacer con un Slackbot y la API. Piensa en comandos más complejos que realicen operaciones como la clonación de sitios WordPress y la creación de sitios directamente desde Slack.

¿Cómo utilizas la API Kinsta? ¿Qué funciones te gustaría que se añadieran/expusieran próximamente?

Joel Olawanle Kinsta

Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 200 technical articles majorly around JavaScript and it's frameworks.