Desplegar Aplicación Telegram Bot con React PHP en tu servidor VPS

Total
3
Shares
Desplegar App Telegram Bot servidor VPS
Desplegar App Telegram Bot servidor VPS

Zanzara es una de las muchas bibliotecas PHP para construir bots de Telegram asincrónicos en PHP, apoyado por ReactPHP. Lo de asíncrono es interesante y se refiere a que puede ejecutar múltiples llamadas a la vez, es decir, varias personas consultando al Bot sin esperar que termine la otra consulta. Además, no requiere ningún recurso externo.

Así que aquí se explica cómo alojar e instalar una app de Telegram Bot en un servidor cloud dedicado, o VPS, con Ubuntu 20.04 (no cambia mucho de una distribución de Linux a otra).

Requisitos Previos

  • Servidor (utilizaré Clouding)
  • PHP (> = 7.3)
  • Composer

Paso 1: Crea un servidor en la nube

Primero, inicia sesión en tu servidor elegido. En adictec, utilizamos y recomendamos Clouding.io, por el que puedes recibir 5€ de saldo GRATIS. Los pasos son similares en caso utilices otro servidor.

La configuración del servidor para nuestro ejemplo es la siguiente: (lo que nos da un aproximado de 5,70€ por mes y lo suficiente para poner a prueba nuestro bot)

  • 2 GB RAM
  • 1 vCores
  • 5 GB SSD
  • 2 copias de seguridad con frecuencia semanal
Configuración del servidor VPS
Configuración del servidor VPS

Entonces, creamos un nuevo servidor, eligiendo Ubuntu 20.4 como sistema operativo con al menos 1 GB de RAM. El siguiente paso es conectarse al servidor en la nube a través de SSH e inicie sesión con las credenciales proporcionadas por el servidor.

Credenciales SSH del servidor
Credenciales SSH del servidor

Una de mis herramientas favoritas de conexión remota es MobaXterm. Una vez que hayas iniciado sesión en tu servidor Ubuntu, ejecuta el siguiente comando para actualizar tu sistema base con los últimos paquetes disponibles.

sudo apt-get update
sudo apt-get upgrade
Conexión a través de MobaXterm
Conexión a través de MobaXterm
Actualizar servidor
Actualizar servidor

Paso 2: Preparando los requisitos

Primero, deberás instalar el servidor web NGINX y otros paquetes necesarios en el sistema. Por ejemplo, comenzamos con Nginx, ejecutando el siguiente comando:

sudo apt install nginx
Instalación de NGINX
Instalación de NGINX

Luego, realizamos una verificación para asegurarnos de que el servicio esté en ejecución:

systemctl status nginx

Una vez que todos los paquetes estén instalados, también faltaría instalar Composer con los siguientes comandos:

cd ~
curl -sS https://getcomposer.org/installer -o composer-setup.php
HASH='curl -sS https://composer.github.io/installer.sig'
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

Comprobamos que todo está correcto, con el siguiente comando:

composer
Instalar composer en servidor
Instalar composer en servidor

Paso 3: Configurar la base de datos

A continuación, deberás crear una base de datos y un usuario para tu aplicación (solo en caso deseas almacenar la información del Bot para más adelante). Primero, instala mysql:

sudo apt-get install mysql-server

Luego, inicia sesión en el shell de MySQL con el siguiente comando:

mysql

Una vez que hayas iniciado sesión, crea un usuario y una base de datos con el siguiente comando:

CREATE USER 'adictec'@'localhost' IDENTIFIED BY 'mipassword';
CREATE DATABASE adictecbotdb;

A continuación, otorga todos los privilegios a la base de datos con el siguiente comando:

GRANT ALL ON adictecbotdb.* to 'adictec'@'localhost';

A continuación, vacía los privilegios y hay que salir de la consola con el siguiente comando:

FLUSH PRIVILEGES;
EXIT;

Paso 4: Instalar y Configurar Zanzara

Llegó el turno de usar Zanzara, que cuenta con soporte completo de Telegram Bot Api 5.0 (noviembre de 2020).

Primero, nos dirigimos al directorio raíz web de nginx:

cd /var/www/

Creamos una carpeta para nuestro proyecto Bot de Zanzara.

mkdir zanzara

Y entonces, instalamos Zanzara a través de composer de la siguiente manera:

cd zanzara/
composer require badfarm/zanzara
Instalar Zanzara en servidor
Instalar Zanzara en servidor

Paso 5: Configuración de nuestro Telegram Bot

Hasta este punto, lo que nos queda es pura imaginación para diseñar nuestro Bot en Telegram.

Iniciamos rápidamente la configuración creando un archivo index.php y colocamos lo siguiente:

<?php

use Zanzara\Zanzara;
use Zanzara\Context;

require __DIR__ . '/vendor/autoload.php';

$bot = new Zanzara("BOT-TOKEN");

$bot->onCommand('start', function (Context $ctx) {
    $ctx->sendMessage('Hello');
});

$bot->run();

Ahora, creamos un Token a través de Telegram (puedes revisar esta guía detallada). En resumen, abrimos un chat con @botfather y creamos un Bot (le damos un nombre) y al finalizar obtendremos un token. Ese token lo copiamos y pegamos arriba donde dice “”BOT-TOKEN””

A continuación, realizamos algunas configuraciones

Creación de Telegram Bot con Zanzara
Creación de Telegram Bot con Zanzara

Guardamos y cerramos el archivo y luego comprobamos la utilidad del Bot a través de Telegram. En mi ejemplo descrito anteriormente, mi Bot es llamado Growuz (@growuzbot).

En la siguiente imagen podemos ver un antes (configuración por defecto) y un después (configuración mostrada en la captura anterior) del funcionamiento de nuestro Bot.

Creación de un Bot en Telegram
Creación de un Bot en Telegram

Una vez que hayas terminado, puede continuar con el último paso: configurar las DNS y apuntar la dirección de nuestro dominio/subdominio a la dirección IP del servidor.

Agregamos un registro A en nuestro dominio (subdominio bot.growuz.com para mi ejemplo) apuntando a la IP del servidor (IP proporcionada por Clouding para mi ejemplo).

Registro A en subdominio
Registro A en subdominio

Palabras Finales

¡Felicidades! Has instalado con éxito Zanzara Framework con Nginx en Ubuntu. Para obtener más información sobre cómo utilizar este framework de aplicaciones web PHP, visita la Wiki en Github. ¡Empieza a utilizar Zanzara hoy mismo en Debian 10 VPS con VPS Hosting de Clouding!

Por último, una de las ventajas de utilizar Clouding, es la capacidad de cambiar libremente la configuración de su servidor, agregar o eliminar núcleos de CPU, RAM y almacenamiento SSD para satisfacer todas tus necesidades. Clouding.io ofrece configuraciones de servidor flexibles y además la facturación es por horas, para que sólo pagues por lo que utilizas. Este artículo utiliza Clouding como VPS Cloud de ejemplo, pero las configuraciones se aplican de igual manera en cualquier otro servidor.

¡Gracias por leer y feliz creación de Bots!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Suscríbete a nuestros Newsletters

Recibe notificaciones de los mejores trucos y apps, además muchos regalos.

Puede que también te interese