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:
- 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.
- Acesso Root ou Sudo: É necessário ter privilégios administrativos (acesso
root
ou um usuário com permissõessudo
) para instalar pacotes, configurar serviços e modificar arquivos do sistema. - 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). - (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.
0 COMMENTS