Cómo instalar la página de estado de Cachet en un servidor Ubuntu 24.04
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, incluso informes, métricas, múltiples métodos de notificación y autenticación de Dos Factores.
En este tutorial, aprenderás a instalar y ejecutar Cachet en un servidor Ubuntu 24.04 con Docker. También instalarás y configurarás Nginx como proxy inverso y asegurarás Cachet con HTTPS mediante Certbot y Letsencrypt.
Requisitos previos
Para completar esta guía, asegúrate de que tienes
- Un servidor Ubuntu 24.04.
- Un usuario no root con privilegios de administrador.
- Un nombre de dominio apuntando a la dirección IP del servidor.
Instalación del motor Docker
En esta guía, ejecutarás Cachet como un contenedor utilizando Docker. A continuación, instalarás Docker Engine en tu sistema Ubuntu.
En primer lugar, ejecuta el siguiente comando para instalar los paquetes ca-certificates y curl.
sudo apt install ca-certificates curl
Ahora ejecuta el siguiente comando para añadir la clave GPG para el repositorio Docker.
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ñade el repositorio Docker con lo siguiente:
echo “deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu (. /etc/os-release && echo "VERSION_CODENAME”) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
A continuación, actualiza el índice de paquetes de Ubuntu e instala Docker Engine con el siguiente comando apt. Introduce Y para confirmar la instalación.
sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Después de la instalación, el servicio Docker debería estar funcionando y habilitado en tu sistema Ubuntu.
Ejecuta el siguiente comando para comprobar el servicio Docker.
sudo systemctl is-enabled docker sudo systemctl status docker
Verás una salida similar a la siguiente:
Configurar el usuario para ejecutar Docker
Tras instalar Docker, debes añadir tu usuario al grupo docker. Esto te permitirá ejecutar el contenedor como usuario no root.
Para añadir tu usuario al grupo docker, ejecuta el siguiente comando. Cambia el nombre de usuario por tu usuario.
sudo usermod -aG docker username
Ahora inicia sesión con tu usuario y ejecuta el comando docker para verificar tu configuración.
su - username docker run hello-world
Si tu configuración es correcta, verás el mensaje Hola Mundo de Docker.
Instalar Cachet con Docker
Ahora que has instalado Docker Engine y configurado tu usuario, descargarás el proyecto Cachet, configurarás el archivo docker-compose.yml, crearás imágenes y reconfigurarás el contenedor para Cachet, y luego ejecutarás Cachet como contenedor.
Descarga la versión docker de Cachet en el directorio cachet-docker y desplázate a él.
git clone https://github.com/cachethq/Docker.git cachet-docker cd cachet-docker
Edita el docker-compose.yml utilizando el editor nano.
nano docker-compose.yml
Cambia el puerto por defecto a 8000 tanto para el contenedor como para el host Docker.
ports: - 8000:8000
Guarda el archivo y sal.
Ahora ejecuta el siguiente comando docker para construir la imagen Cachet e iniciar el contenedor Cachet.
docker compose build docker compose up
Durante el proceso de construcción, verás lo siguiente:
Al iniciar el contenedor Cachet, obtendrás una salida como la siguiente:
La primera vez que ejecutes Cachet, generará una nueva APP_KEY como la siguiente – Copia la APP_KEY y pulsa Ctrl+c para finalizar los contenedores Cachet.
A continuación, edita de nuevo el archivo docker-compose.yml y sustituye la APP_KEY como se indica a continuación:
APP_KEY=base64:6ltZ62B69p6oxIVeQtf9jpX5BFvgUXU2qk5eXpw3OIQ=
Guarda el archivo y sal.
Ahora ejecuta el siguiente comando docker para eliminar los contenedores antiguos y los nuevos contenedores Cachet.
docker compose down docker compose up -d
Por último, ejecuta el siguiente comando para comprobar los contenedores o servicios en ejecución.
docker compose ps
A continuación puedes ver que el contenedor Cachet se está ejecutando en el puerto 8000.
Configurar Nginx como proxy inverso
En esta guía, ejecutarás Cachet con Nginx como proxy inverso. Así que ahora instalarás Nginx y un nuevo bloque de servidor para un proxy inverso. Asegúrate de que tienes tu nombre de dominio preparado y apuntando a la dirección IP del servidor.
Para instalar el servidor web Nginx, ejecuta el siguiente comando apt. Introduce Y para proceder a la instalación.
sudo apt install nginx
Una vez completada la instalación, crea un nuevo archivo de bloque del servidor Nginx /etc/nginx/sites-available/cachet.conf con el editor nano.
sudo nano /etc/nginx/sites-available/cachet.conf
Pega la siguiente configuración y asegúrate de cambiar el estado.howtoforge.local por tu nombre de dominio.
server { listen 80; server_name status.howtoforge.local; 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; } }
Cuando hayas terminado, guarda el archivo y sal del editor.
Ahora ejecuta el siguiente comando para activar el archivo de bloqueo del servidor cachet.conf /y verifica la sintaxis de tu Nginx. Si la sintaxis es correcta, verás una prueba de salida – tiene éxito – la sintaxis es correcta.
sudo ln -s /etc/nginx/sites-available/cachet.conf /etc/nginx/sites-enabled/ sudo nginx -t
Por último, ejecuta el siguiente comando systemctl para reiniciar el servicio Nginx y aplicar tus cambios. A continuación, comprueba el estado del servicio Nginx para asegurarte de que se está ejecutando.
sudo systemctl restart nginx sudo systemctl status nginx
A continuación puedes ver que el servicio Nginx se está ejecutando como proxy inverso para la instalación de Cachet.
Asegurar Cachet con HTTPS
En este punto, Cachet se está ejecutando en un contenedor, y has configurado Nginx como proxy inverso para él. Para asegurar Cachet, generarás certificados SSL e implementarás HTTPS a través de Certbot y Letsencrypt.
Instala el plugin Certbot y Certbot Nginx utilizando el siguiente comando apt. Pulsa Y para confirmar la instalación.
sudo apt install certbot python3-certbot-nginx
Ahora ejecuta el siguiente comando certbot para generar certificados SSL y asegurar Cachet con HTTPS. Asegúrate de cambiar el nombre de dominio y la dirección de correo electrónico con tu información.
sudo certbot --nginx
Una vez finalizado el proceso, tus certificados SSL estarán disponibles en el directorio /etc/letsencrypt/live/domain.com y tu instalación de Cachet debería estar asegurada con HTTPS.
Instalación de Cachet
Visita tu nombre de dominio Cachet, como https://status.howtoforge.local/, utilizando tu navegador web preferido. verás el asistente de instalación.
En la sección Configuración del entorno, selecciona por defecto Cachet, Cola y Sesión como Base de datos e introduce tus datos SMTP.
Crea tu primera página de estado y haz clic en Siguiente para continuar.
Introduce el nuevo usuario administrador, la dirección de correo electrónico y la contraseña para tu instalación de Cachet.
Una vez finalizada la instalación, verás un mensaje Cachet se ha configurado correctamente. A continuación, haz clic en Ir al panel de control para acceder a Cachet.
Introduce tu usuario y contraseña de administrador y haz clic en Iniciar sesión.
Si tienes las credenciales correctas, verás el panel de Cachet como el siguiente:
Conclusión
¡Enhorabuena! Has completado la instalación de la página de estado de Cachet en un servidor Ubuntu 24.04 con Docker. Has configurado Nginx como proxy inverso para Cachet y asegurado Cachet con HTTPS mediante Certbot y Letsencrypt. Ahora puedes añadir y supervisar tus sitios web o servicios con Cachet y configurar notificaciones adicionales con direcciones de correo electrónico, etc.