Cómo instalar el sistema de páginas de estado Cachet en FreeBSD 12

Cachet es un bonito y potente sistema de páginas de estado de código abierto escrito en PHP que te permite comunicar mejor los tiempos de inactividad y los fallos del sistema a tus clientes, equipos y accionistas. La aplicación ofrece muchas funciones, las más importantes de las cuales son: una potente API JSON, informes de eventos, métricas, soporte de transcripción para mensajes de eventos, notificaciones a suscriptores por correo electrónico, autenticación de dos factores. En este tutorial, instalaremos el sistema de páginas de estado Cachet utilizando PHP, Nginx, MariaDB y Composer en el sistema FreeBSD 12.

Requisitos

Para ejecutar Cachet en tu sistema FreeBSD 12 necesitarás un par de cosas:

  • PHP versión 7.1 o superior
  • Servidor HTTP compatible con PHP (por ejemplo: Nginx, Apache, Caddy). Este tutorial utilizará Nginx.
  • Compositor
  • Una base de datos compatible: MySQL/MariaDB, PostgreSQL o SQLite. Este tutorial utilizará MariaDB.
  • Git
  • Acme.sh

Requisitos previos

  • Un sistema operativo FreeBSD 12.
  • Un usuario no root con privilegios sudo.

Pasos iniciales

Comprueba tu versión de FreeBSD:

uname -ro
# FreeBSD 12.0-RELEASE

Configura la zona horaria:

tzsetup

Actualiza los paquetes (software) de tu sistema operativo. Este es un primer paso importante porque te asegura que tienes las últimas actualizaciones y correcciones de seguridad para los paquetes de software por defecto de tu sistema operativo:

freebsd-update fetch install
pkg update && pkg upgrade -y

Instala algunos paquetes esenciales que son necesarios para la administración básica del sistema operativo FreeBSD 12.0:

pkg install -y sudo vim unzip wget bash

Paso 1 – Instalar PHP y las extensiones PHP necesarias

Instala PHP, así como las extensiones PHP necesarias:

sudo pkg install -y php72 php72-ctype php72-curl php72-dom php72-hash php72-iconv php72-gd php72-json php72-mbstring php72-openssl php72-session php72-simplexml php72-xml php72-zip php72-zlib php72-pdo php72-pdo_mysql php72-mysqli php72-pgsql php72-sqlite3 php72-filter php72-ftp php72-tokenizer php72-calendar php72-pecl-APCu php72-opcache php72-pecl-redis php72-phar php72-fileinfo

Comprueba la versión de PHP:

php --version

 

# PHP 7.2.7 (cli) (built: Jul 25 2019 01:28:53) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.7, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.3.7, Copyright (c) 1999-2018, by Zend Technologies

Habilita e inicia el servicio PHP-FPM:

sudo sysrc php_fpm_enable=yes
sudo service php-fpm start

Podemos pasar al siguiente paso, que es obtener certificados SSL gratuitos de Let’s Encrypt CA.

Paso 2 – Instalar MariaDB y crear una base de datos para Cachet

Cachetes compatible con MySQL, MariaDBPostgreSQL y SQLitey SQLite. En este tutorial, utilizaremosMariaDB como servidor de bases de datos.

Instala el servidor de bases de datos MariaDB:

sudo pkg install -y mariadb102-client mariadb102-server

Comprueba la versión de MariaDB:

mysql --version
# mysql Ver 15.1 Distrib 10.2.17-MariaDB, for FreeBSD11.2 (amd64) using readline 5.1

Habilita e inicia el servicio MariaDB:

sudo sysrc mysql_enable="yes"
sudo service mysql-server start

Ejecuta mysql_secure installation script para mejorar la seguridad de MariaDB y establecer la contraseña para MariaDB root usuario:

sudo mysql_secure_installation

Responde a cada una de las preguntas:

Would you like to setup VALIDATE PASSWORD plugin? N
New password: your_secure_password
Re-enter new password: your_secure_password
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Conéctate al shell de MariaDB como usuario root:

sudo mysql -u root -p
# Enter password

Crea una base de datos MariaDB vacía y un usuario para Cachet y recuerda las credenciales:

CREATE DATABASE dbname;
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

Sustituye dbname, username y password por tus nombres.

Sal de MariaDB:

exit

Paso 3 – Instalar el cliente acme.sh y obtener el certificado Let’s Encrypt(opcional)

Asegurar tu sitio web con HTTPS no es necesario, pero es una buena práctica para asegurar el tráfico de tu sitio. Para obtener un certificado TLS de Let’s Encrypt utilizaremos el cliente acme.sh. Acme.sh es un software de shell UNIX puro para obtener certificados TLS de Let’s Encrypt con cero dependencias.

Descarga e instala acme.sh:

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh 
./acme.sh --install --accountemail [email protected]
source ~/.bashrc
cd ~

Comprueba la versión de acme.sh:

acme.sh --version
# v2.8.0

Obtén certificados RSA y ECC/ECDSA para tu dominio/nombre de host:

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256

Si quieres certificados falsos para hacer pruebas, puedes añadir la bandera --staginga los comandos anteriores.

Después de ejecutar los comandos anteriores, tus certificados y claves estarán en:

  • Para RSA: directorio /home/username/example.com.
  • Para ECC/ECDSA: directorio /home/username/example.com_ecc.

Para listar tus certificados emitidos puedes ejecutar:

acme.sh --list

Crea un directorio para almacenar tus certificados. Nosotros utilizaremos el directorio /etc/letsencrypt.

mkdir -p /etc/letsecnrypt/example.com sudo mkdir -p /etc/letsencrypt/example.com_ecc

Instala/copia los certificados en /etc/letsencrypt directorio.

# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

Todos los certificados se renovarán automáticamente cada 60 días.

Después de obtener los certificados sal del usuario root y vuelve al usuario sudo normal:

exit

Paso 4 – Instalar NGINX y configurar NGINX para Matomo

Cachet puede funcionar correctamente con muchos servidores web. En este tutorial, hemos seleccionadoNGINX.Si prefieres el servidor web Apache a NGINX, visita https://docs.cachethq.io/docs/installing-cachet#section-running-cachet-on-apachepara obtener más información.

Descarga e instala la última versión mainline de Nginx desde el repositorio de FreeBSD:

sudo pkg install -y nginx-devel

Comprueba la versión de Nginx:

nginx -v
# nginx version: nginx/1.17.2

Habilita e inicia Nginx:

sudo sysrc nginx_enable=yes
sudo service nginx start

Configura Nginx para Cachet ejecutando:

sudo vim /usr/local/etc/nginx/cachet.conf

Y rellena el archivo con la siguiente configuración:

upstream php {
  server 127.0.0.1:9000;
}

server {
  listen [::]:443 ssl;
  listen 443 ssl;
  listen [::]:80;
  listen 80;

  server_name example.com;

  root /usr/local/www/cachet/public;
  index index.php;

  # RSA
  ssl_certificate /etc/letsencrypt/example.com/fullchain.cer;;
  ssl_certificate_key /etc/letsencrypt/example.com/example.com.key;
  # ECDSA
  ssl_certificate /etc/letsencrypt/sexample.com_ecc/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key;

  location / {
    try_files $uri /index.php$is_args$args;
  }

  location ~ \.php$ {
    include fastcgi_params;
    fastcgi_pass php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_index index.php;
    fastcgi_keep_conn on;
  }
}

Ejecuta sudo vim /usr/local/etc/nginx/nginx.conf y añade la siguiente línea al bloque http {} para incluir la configuración de Cachet.

include cachet.conf;

Comprueba si hay errores de sintaxis en la configuración de Nginx:

sudo nginx -t

Recarga el servicio Nginx:

sudo service nginx reload

Paso 5 – Instalar Composer

Instala Composer, el gestor de dependencias de PHP a nivel global:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'a5c698ffe4b8e849a443b120cd5ba38043260d5c4023dbf93e1558871f1f07f58274fc6f4c93bcfd858c6bd0775cd8d1') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

php composer-setup.php

php -r "unlink('composer-setup.php');"

sudo mv composer.phar /usr/local/bin/composer

Comprueba la versión de Composer:

composer --version
# Composer version 1.9.0 2019-02-11 10:52:10

Paso 6 – Instalar Cachet

Crea un directorio raíz de documentos donde deba residir Cachet:

sudo mkdir -p /usr/local/www/cachet

Cambia la propiedad del directorio /usr/local/www/cachet a your_user:

sudo chown -R your_user:your_user /usr/local/www/cachet

NOTA: Sustituye jour_user por tu nombre de usuario no root creado inicialmente.

Navega hasta el directorio raíz del documento:

cd /usr/local/www/cachet

Descarga el código fuente de Cachet con Git:

git clone -b 2.4 --single-branch https://github.com/cachethq/Cachet.git .

Copia .env.example en .env y configura la base de datos y APP_URL configuración en .env archivo:

cp .env.example .env
vim .env

Instala las dependencias de Cachet con Composer:

composer install --no-dev -o

Configura la clave de la aplicación ejecutando:

php artisan key:generate

Instalar Cachet:

php artisan cachet:install

Proporciona la propiedad adecuada:

sudo chown -R www:www /usr/local/www/cachet

Abre tu sitio en un navegador web y sigue las instrucciones de la pantalla para finalizar la instalación de Cachet.

Paso 7 – Completa la configuración de Cachet

Selecciona los controladores de caché y de sesión y configura las opciones de correo:


Configura los ajustes generales del sitio, como el nombre del sitio, el dominio del sitio, la zona horaria y el idioma:


Crea una cuenta de usuario administrativo:


Después de esto, deberías recibir un mensaje indicando que Cachet se ha configurado correctamente. Puedes abrir el panel de Cachet pulsando el botón «Ir al panel»:


La instalación y configuración de Cachet ha finalizado.

Para acceder al panel de Cachet, añade /dashboard a la URL de tu sitio web.

Enlaces

Scroll al inicio