Table des matières
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