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
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
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:
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:
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.
A continuación puedes ver la captura de pantalla al ejecutar contenedores/servicios tanto para Cachet como para PostgreSQL.
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.
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.
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
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
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).
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.
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.
Ahora configura el nombre de la página de estado, la zona horaria por defecto y el idioma por defecto. Vuelve a pulsar Siguiente.
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.
Una vez completada, verás lo siguiente: haz clic en Ir al panel de control.
Accede a Cachet con tu nombre de usuario y contraseña, y haz clic en Iniciar sesión.
Si la instalación se ha realizado correctamente, deberías obtener el panel de Cachet como el siguiente:
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.