====== Cachet ======
Présentation d'installation d'un service de statut Cachet sur //debian// 9.\\
Dans cette présentation, nous allons configurer un site https://status.sleto.net.\\
Nous utiliserons les variables //DBNAME//, //DBUSER// et //DBPASSWD// respectivement pour le nom, l'utilisateur et le mot de passe de base de données.\\
Cachet sera installé dans ///opt/cachet//
===== Dépendances =====
Utilise PHP 7.1 via fpm ainsi qu'un [[Serveur web sécurisé (Nginx / Let's Encrypt)]].\\
sudo apt-get install -y php7.1-fpm php7.1-cli php7.1-curl php7.1-xml php7.1-pgsql php7.1-mbstring php7.1-gd php7.1-mcrypt
Nécessite également les outils :
sudo apt-get install -y postgresql postgresql-contrib git
Vous devrez également ajouter le domaine __status.sleto.net__ dans le [[Serveur DNS (bind9)]]
===== Base de données =====
Nous allons créé une base de donnée PostgreSQL:
sudo -u postgres psql -c "CREATE USER $DBUSER;"
sudo -u postgres psql -c "ALTER USER $DBUSER PASSWORD '$DBPASSWD';"
sudo -u postgres psql -c "CREATE DATABASE $DBNAME OWNER $DBUSER;"
===== Installation =====
Installation de l'outil:
git clone https://github.com/cachethq/Cachet.git /opt/cachet
cd /opt/cachet
git checkout v2.3.18
useradd --home /opt/cachet --shell /bin/bash cachet
chown -R cachet:www-data *
chmod -R o-rwx *
chmod -R g+w *
===== Configuration =====
Écrire le fichier ///opt/cachet/.env// (attention de bien remplacer $DBNAME, $DBUSER et $DBPASSWD):
APP_ENV=production
APP_DEBUG=false
APP_URL=http://status.sleto.net
APP_KEY=2A7E7B1D0F54CE0B
DB_DRIVER=pgsql
DB_HOST=localhost
DB_DATABASE=$DBNAME
DB_USERNAME=$DBUSER
DB_PASSWORD=$DBPASSWD
DB_PORT=5432
DB_PREFIX=null
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
CACHET_EMOJI=false
MAIL_DRIVER=smtp
MAIL_HOST=localhost
MAIL_PORT=25
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ADDRESS=null
MAIL_NAME=null
MAIL_ENCRYPTION=null
REDIS_HOST=null
REDIS_DATABASE=null
REDIS_PORT=null
GITHUB_TOKEN=null
Et lancer la configuration:
cd /opt/cachet
composer install --no-interaction --no-dev -o --no-scripts
php7.1 artisan app:install
rm -rf bootstrap/cache/*
Et finaliser en ajoutant le //crontab// sur l'utilisateur //cachet//:
* * * * * php7.1 /opt/cachet/artisan schedule:run >> /dev/null 2>&1
===== Configuration web =====
Ecrire le fichier ///opt/cachet/nginx-status//:
server {
listen 80;
server_name status.sleto.net;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name status.sleto.net;
access_log /var/log/nginx/cloud.status.net.access.log;
error_log /var/log/nginx/cloud.status.net.error.log;
include /opt/ssl/status.sleto.net.conf;
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
}
}
Notons que ///opt/ssl/status.sleto.net.conf// contiendra les informations relatives aux clefs privé et public HTTPS/SSL (voir [[Serveur web sécurisé (Nginx / Let's Encrypt)]]).
Activer la configuration web par:
ln -sf /opt/cachet/nginx-status /etc/nginx/sites-enabled
===== Rechargement =====
Pour rafraîchir les services fpm, mariadb et nginx
service nginx reload