Cómo instalar el sistema de página de estado Cachet en Debian 12

Cachet es un sistema de páginas de estado de código abierto escrito en PHP. Te permite controlar el tiempo de inactividad y los fallos del sistema en tu infraestructura. Cachet proporciona la API JSO, informes uniformes, métricas, múltiples métodos de notificación y autenticación de dos factores.

En el siguiente tutorial, te mostraremos cómo instalar la página de estado de Cachet en un servidor Debian 12. Ejecutarás Cachet como un contenedor Docker con la base de datos PostgreSQL y el servidor web Nginx.

Requisitos previos

Antes de continuar, asegúrate de que tienes lo siguiente:

  • Un servidor Debian 12.
  • Un usuario no root con privilegios sudo.
  • Una UFW instalada y configurada.
  • Un nombre de dominio apuntando a una dirección IP del servidor.

Instalación del motor Docker

En este ejemplo, instalarás Cachet como contenedor a través de Docker. Por tanto, necesitas instalar el motor Docker en tu sistema Debian. En este ejemplo, utilizarás los paquetes oficiales del motor Docker.

En primer lugar, ejecuta el siguiente comando para instalar los paquetes curl y ca-certificates.

sudo apt install ca-certificates curl -y

Ahora añade la clave GPG para el repositorio Docker ejecutando el siguiente comando.

sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

A continuación, añade el repositorio del motor Docker para el sistema Debian utilizando el comando siguiente.

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Una vez añadido el repositorio Docker, actualiza y refresca tu índice de paquetes con el comando siguiente.

sudo apt update

añadir repo

Ahora instala Docker Engine en tu sistema con el siguiente comando. Escribe Y para confirmar la instalación.

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

instalar docker

Una vez completada la instalación, el servicio Docker debería ejecutarse automáticamente. Comprueba el estado del servicio Docker con el comando siguiente.

sudo systemctl status docker

Verás la salida ejecutándose como la siguiente:

cheque docker

Para asegurarte de que tu usuario puede ejecutar y poner en marcha el contenedor, debes añadirlo al grupo docker con el comando siguiente.

sudo usermod -aG sudo alice

Por último, inicia sesión como tu usuario y ejecuta el comando docker que aparece a continuación para ejecutar un contenedor hola-mundo.

su - alice
docker run hello-world

Si tu configuración es correcta, deberías obtener la salida «Hola Docker» como la siguiente:

docker hola-mundo

Ejecutar Cachet con Docker y la base de datos PostgreSQL

Después de haber instalado Docker, tienes que descargar el proyecto Cachet y configurar su instalación. En este caso, instalarás y ejecutarás Cachet como usuario no root con un contenedor Docker.

Descarga el proyecto Cachet en el directorio cachet-docker y entra en él.

git clone https://github.com/cachethq/Docker.git cachet-docker
cd cachet-docker

Abre el archivo docker-compose.yml utilizando el siguiente comando del editor nano.

nano docker-compose.yml

Cambia el puerto host por defecto a 8000 como se indica a continuación. También puedes personalizar los detalles de la base de datos con tu información y dejar la versión por defecto de Cachet como por ahora a 2.4.

 ports:
 - 8000:8000

Guarda el archivo y sal.

Ahora ejecuta los siguientes comandos docker para construir tu imagen Cachet y ejecutar contenedores tanto para Cachet como para PostgreSQL.

docker compose build
docker compose up

A continuación, puedes ver la captura de pantalla de cuando se construye la imagen Docker para Cachet.

docker byuild

A continuación puedes ver la captura de pantalla al ejecutar contenedores/servicios tanto para Cachet como para PostgreSQL.

contenedor en funcionamiento

En los registros verbose del contenedor Cachet, encontrarás un error sobre la configuración de APP_KEY. Copia la APP_KEY generada y pulsa Ctrl+c para terminar los contenedores.

clave

A continuación, vuelve a abrir el archivo docker-compose.yml con el editor nano.

nano docker-compose.yml

Cambia el parámetro APP_KEY por defecto como se indica a continuación. Asegúrate de incluir la cadena base64.

APP_KEY=base64:WfKUhY0wAOyr5hkxoctZUSWPGdXbBUWFvNLCoI7kTU8=

Guarda el archivo y sal.

Ahora ejecuta el siguiente comando docker para terminar los contenedores para Cachet y PostgreSQL, y luego vuelve a iniciarlos.

docker compose down
docker compose up -d

Una vez iniciados los contenedores, comprueba la lista de contenedores en ejecución utilizando el siguiente comando.

docker compose ps

Como puedes ver a continuación, ambos contenedores Cachet y PostgreSQL se están ejecutando. El contenedor Cachet se está ejecutando en el puerto 8000.

reconstruye

Configura Nginx como proxy inverso

Ahora que Cachet se está ejecutando como contenedor en el puerto 8000, instalarás y configurarás Nginx como proxy inverso para Cachet.

Instala Nginx en tu servidor Debian utilizando el siguiente comando.

sudo apt install nginx -y

instalar nginx

Una vez completada la instalación, crea una nueva configuración de bloque de servidor Nginx /etc/nginx/sites-available/cachet utilizando el comando del editor nano que aparece a continuación.

sudo nano /etc/nginx/sites-available/cachet

Introduce la configuración que aparece a continuación y asegúrate de cambiar el parámetro nombre_servidor por el nombre de tu dominio.

server {
 listen 80;
 server_name status.hwdomain.io;
 location / {
 proxy_pass http://127.0.0.1:8000;
 proxy_set_header Host $host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header X-Forwarded-Proto $scheme;
 }
}

Guarda el archivo y sal del editor.

A continuación, ejecuta el siguiente comando Nginx para activar el bloque del servidor Cachet y comprueba tu sintaxis Nginx. Si tu sintaxis es correcta, deberías obtener una salida«la sintaxis es correcta«.

sudo ln -s /etc/nginx/sites-available/cachet /etc/nginx/sites-enabled/
sudo nginx -t

configuración de nginx

Por último, reinicia el servidor web Nginx para aplicar la configuración del bloque de servidor Cachet y verifica el servicio Nginx para asegurarte de que se está ejecutando.

sudo systemctl restart nginx
sudo systemctl status nginx

Si Nginx se está ejecutando, deberías obtener una salida active(running).

comprobar nginx

Configurar el UFW (Cortafuegos sin complicaciones)

Antes de acceder a Cachet, debes asegurarte de que se permiten los puertos HTTP y HTTPS. En Ubuntu, permitirás el tráfico tanto a HTTP como a HTTPS a través de UFW (Uncomplicated Firewall).

Asegúrate de que UFW está habilitado, ahora ejecuta el siguiente comando para habilitar el perfil‘Nginx Full‘ en UFW. Esto permitirá el tráfico de los protocolos HTTP y HTTPS a tu servidor web Nginx.

sudo ufw allow 'Nginx Full'

Ahora verifica tu lista de reglas habilitadas en UFW con el siguiente comando.

sudo ufw status

Verás que el perfil«Nginx Full» está habilitado en UFW.

configuración ufw

Asegurar Cachet con HTTPS

Llegados a este punto, tu Cachet debería ser accesible a través de Nginx. Para asegurar tu instalación, habilitarás HTTPS para Cachet mediante SSL de Letsencrypt.

Así que ejecuta el siguiente comando para instalar Certbot y el plugin Certbot Nginx. Introduce Y para confirmar la instalación.

sudo apt install certbot python3-nginx-certbot

Una vez completada la instalación, ejecuta el comando certbot que aparece a continuación para generar certificados SSL/TLS para tu instalación de Cachet. Asegúrate de cambiar los detalles nombre de dominio y dirección de correo electrónico con tu información.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d status.hwdomain.io

Una vez completado todo, tus certificados SSL/TLS deberían almacenarse en el directorio /etc/lestencrypt/live/status.hwdomain.io. Además, tu Cachet debería estar protegido mediante HTTPS.

Instalación de Cachet

Inicia tu navegador web preferido y visita la página de instalación de Cachet https://status.hwdomain.io/. Si tu instalación se ha realizado correctamente, deberías obtener la siguiente página.

Selecciona por defecto el controlador de caché, el controlador de cola y el controlador de sesión de la base de datos. A continuación, introduce los datos de tu servidor de correo.

Haz clic en Siguiente para continuar.

caché de configuración

Ahora configura el nombre de la página de estado, la zona horaria por defecto y el idioma por defecto. Vuelve a pulsar Siguiente.

idioma de configuración

Ahora crea un nuevo usuario administrador para Cachet escribiendo tu nombre de usuario, correo electrónico y contraseña. A continuación, haz clic en Completar configuración para confirmar.

configuración administrativa

Una vez completada, verás lo siguiente: haz clic en Ir al panel de control.

instalación completa

Accede a Cachet con tu nombre de usuario y contraseña, y haz clic en Iniciar sesión.

inicio de sesión

Si la instalación se ha realizado correctamente, deberías obtener el panel de Cachet como el siguiente:

salpicadero

Conclusión

¡Enhorabuena! Ya has instalado la página de estado de Cachet en el servidor Debian 12 con Docker. Tu instalación de Cachet funciona con una base de datos PostgreSQL y un servidor web Nginx. Ahora puedes supervisar tus sitios utilizando Cachet.

También te podría gustar...