====== 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