O Cachet é um sistema de página de status de código aberto, escrito em PHP, que permite às organizações comunicar tempos de inatividade e interrupções do sistema aos seus clientes, equipas e partes interessadas. Ele fornece uma maneira simples e eficaz de exibir o status de vários serviços, relatar incidentes e agendar manutenções, aumentando a transparência e a confiança. Este guia detalhará o processo de instalação em um ambiente Rocky Linux 9.5.

Objetivos

O objetivo principal deste guia é fornecer um procedimento abrangente e passo a passo para a instalação e configuração do Cache num servidor Rocky Linux 9.5. Ao final deste tutorial, você terá:

  • Um servidor web (Nginx) e PHP-FPM configurados.
  • Um servidor de banco de dados (MariaDB) pronto para uso.
  • O Cachet instalado e funcional.
  • Uma página de status básica pronta para ser personalizada.

Requisitos

Antes de iniciar o processo de instalação, certifique-se de que possui os seguintes pré-requisitos:

  1. Instância do Servidor Rocky Linux 9.5: Você precisará de um servidor virtual ou dedicado executando o Rocky Linux 9.5. Para este guia, assumimos que você está a utilizar uma instância fornecida pela LetsCloud, mas os passos podem ser adaptados para outros provedores de nuvem ou hardware local.
  2. Acesso Root ou Sudo: É necessário ter privilégios administrativos (acesso root ou um usuário com permissões sudo) para instalar pacotes, configurar serviços e modificar arquivos do sistema.
  3. Conhecimento Básico de Linha de Comando Linux: É esperada familiaridade com a navegação no shell, execução de comandos e edição de arquivos de texto (usaremos o nano neste guia, mas sinta-se à vontade para usar seu editor preferido).
  4. (Opcional, mas Recomendado) Nome de Domínio: Embora seja possível aceder ao Cachet usando o endereço IP do servidor, é highly recomendável ter um nome de domínio (ex: status.seusite.com) apontado para o IP do seu servidor, especialmente para um ambiente de produção e para configurar HTTPS/SSL posteriormente.

Passo 1: Atualizar o Sistema

Certifique-se de que seu sistema está totalmente atualizado.

$$

sudo dnf update -y sudo dnf upgrade -y

Passo 2: Instalar Repositórios Adicionais (EPEL e Remi)

Precisamos desses repositórios para obter versões mais recentes do PHP.

$$$$

sudo dnf install -y epel-release sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm sudo dnf module reset php -y sudo dnf module enable php:remi-8.1 -y # Cachet v3.x funciona bem com PHP 8.1

Passo 3: Instalar PHP e Extensões Necessárias

Instale o PHP e todas as extensões que o Cachet requer.

$

sudo dnf install -y php php-fpm php-cli php-json php-mysqlnd php-gd php-mbstring php-xml php-curl php-zip php-bcmath php-opcache php-pdo php-tokenizer php-common

Passo 4: Instalar o Servidor Web Nginx

O Nginx atuará como nosso servidor web.

$

sudo dnf install -y nginx

Passo 5: Instalar o Banco de Dados MariaDB

O Cachet precisa de um banco de dados. Usaremos o MariaDB.

$

sudo dnf install -y mariadb-server

Passo 6: Iniciar e Habilitar MariaDB e Configurar

Inicie o serviço MariaDB, habilite-o para iniciar na inicialização e execute a instalação segura.

$$$

sudo systemctl start mariadb sudo systemctl enable mariadb sudo mysql_secure_installation

Siga as instruções na tela. É recomendado:

  • Definir uma senha root (se ainda não definida).
  • Remover usuários anônimos.
  • Desabilitar o login root remoto.
  • Remover o banco de dados de teste.
  • Recarregar as tabelas de privilégios.

Passo 7: Criar Banco de Dados e Usuário para o Cachet

Faça login no MariaDB e crie o banco de dados e o usuário que o Cachet usará.

$

sudo mysql -u root -p

Digite a senha root que você definiu. Em seguida, execute os seguintes comandos SQL, substituindo your_strong_password por uma senha segura:

mysql>mysql>mysql>mysql>mysql>

CREATE DATABASE cachet DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'cachetuser'@'localhost' IDENTIFIED BY 'your_strong_password'; GRANT ALL PRIVILEGES ON cachet.* TO 'cachetuser'@'localhost'; FLUSH PRIVILEGES; EXIT;

Passo 8: Instalar Git e Composer

Precisamos do Git para clonar o Cachet e do Composer para gerenciar as dependências do PHP.

$

sudo dnf install -y git

Instalar Composer

$$$$

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php composer-setup.php php -r "unlink('composer-setup.php');" sudo mv composer.phar /usr/local/bin/composer

Passo 9: Configurar PHP-FPM

Edite o arquivo de configuração do PHP-FPM para funcionar com o Nginx.

$

sudo nano /etc/php-fpm.d/www.conf

Encontre as linhas user e group e altere seus valores para nginx:

user = nginx
group = nginx

Salve o arquivo (Ctrl+O) e saia (Ctrl+X). Em seguida, inicie e habilite o PHP-FPM.

$$

sudo systemctl start php-fpm sudo systemctl enable php-fpm

Passo 10: Baixar e Configurar o Cachet

Crie o diretório e clone o Cachet:

$$$$

sudo mkdir -p /var/www/cachet sudo chown -R $USER:$USER /var/www/cachet cd /var/www/cachet git clone -b 3.x https://github.com/cachethq/cachet.git .

Ajuste as permissões:

$$$

sudo chown -R nginx:nginx /var/www/cachet sudo chmod -R 755 /var/www/cachet sudo chmod -R 775 /var/www/cachet/storage /var/www/cachet/bootstrap/cache

Instale as dependências com o Composer:

$$

cd /var/www/cachet sudo -u nginx composer install --no-dev -o

Configure o arquivo de ambiente .env:

$$$

sudo -u nginx cp .env.example .env sudo -u nginx php artisan key:generate sudo nano .env

Atualize as seguintes seções no arquivo .env com suas configurações:

.env

APP_URL: Defina para o URL que você usará para acessar o Cachet (ex: http://seu_dominio_ou_ip). DB_CONNECTION: mysql. DB_HOST: 127.0.0.1. DB_PORT: 3306. DB_DATABASE: cachet. DB_USERNAME: cachetuser. DB_PASSWORD: your_strong_password.

Configure também as seções MAIL_* se desejar enviar e-mails. Execute as migrações do banco de dados:

$

sudo -u nginx php artisan migrate

Responda yes quando solicitado.

Crie o primeiro usuário:

$

sudo -u nginx php artisan cachet:make:user

Siga as instruções para criar seu usuário administrador.

Passo 11: Configurar o Nginx

Crie um novo arquivo de configuração do Nginx para o Cachet.

$

sudo nano /etc/nginx/conf.d/cachet.conf

Cole a seguinte configuração, substituindo seu_dominio_ou_ip pelo seu domínio ou endereço IP.

cachet.conf

server {
    listen 80;
    server_name seu_dominio_ou_ip;
    root /var/www/cachet/public;

    index index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?<span class="math-inline">query\_string;
\}
location \= /favicon\.<18\>ico \{ access\_log off; log\_not\_found off; \}
location \= /robots\.txt</17\>  \{ access\_log off; log\_not\_found off; \}
access\_log  /var/log/nginx/cachet\.access\.log;
error\_log   /var/log/nginx/cachet\.error\.log;
sendfile off;
location \~ \\\.php</span> {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php-fpm/www.sock; # Verifique se este caminho está correto
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_intercept_errors off;
        fastcgi_buffer_size 16k;
        fastcgi_buffers 4 16k;
    }

    location ~ /\.ht {
        deny all;
    }
}

Verifique a configuração do Nginx e reinicie o serviço.

$$$

sudo nginx -t sudo systemctl restart nginx sudo systemctl enable nginx

Passo 12: Configurar o Firewall

Permita o tráfego HTTP (e HTTPS se você planeja configurá-lo) através do firewall.

$$$

sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload

Passo 13: Configurar o SELinux

O Rocky Linux usa o SELinux, que pode impedir o Nginx e o PHP de acessarem arquivos ou a rede. Execute estes comandos para permitir o acesso necessário.

$$$$$$

sudo dnf install -y policycoreutils-python-utils sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/cachet/storage(/.)?" sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/cachet/bootstrap/cache(/.)?" sudo restorecon -Rv /var/www/cachet sudo setsebool -P httpd_can_network_connect_db on #sudo setsebool -P httpd_can_sendmail on # Se precisar enviar e-mails

Passo 14: Configurar o Cron Job

O Cachet precisa de uma tarefa agendada para executar certas funções. Edite o crontab para o usuário nginx.

sudo crontab -e -u nginx

Adicione a seguinte linha no final do arquivo:

* * * * * php /var/www/cachet/artisan schedule:run >> /dev/null 2>&1

Salve e feche o arquivo.

Passo 15: Acessar o Cachet

Abra seu navegador e navegue até http://seu_ip. Você deverá ver a página de login do Cachet. Faça login com o usuário administrador que você criou no Passo 10.

Conclusão

Parabéns! Se seguiu todos os passos deste guia, você instalou e configurou com sucesso o Cachet no seu servidor Rocky Linux 9.5. Agora possui uma poderosa plataforma de página de status de código aberto pronta para ser utilizada.

Com o Nginx servindo o site, o PHP processando a aplicação e o MariaDB armazenando os dados, o seu sistema Cachet está pronto para ajudá-lo a comunicar de forma transparente o estado dos seus serviços, incidentes e manutenções programadas aos seus utilizadores e equipa.

Read more about: Operating SystemPT-BR