Hop hop le tuto officiel : https://docs.cachethq.io/v1.0/docs/installing-cachet
On clone le dépot dans /var/www/, puis on install php et php-gd
Ensuite, on crée le .env à la racine à partir du .env.example
On crée la bdd mysql :
CREATE DATABASE cachet collate='utf8_general_ci'; CREATE USER 'homestead'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON cachet.* TO 'homestead'@'localhost';
On enregistre les réglages dans le .env concernant la bdd :
APP_ENV=production APP_DEBUG=false APP_URL=http://localhost APP_KEY=secretkey DB_DRIVER=mysql DB_HOST=localhost DB_UNIX_SOCKET=null DB_DATABASE=cachet DB_USERNAME=homestead DB_PASSWORD=WQSPbaOp//PU2 DB_PORT=null DB_PREFIX=null CACHE_DRIVER=apc SESSION_DRIVER=apc QUEUE_DRIVER=null CACHET_BEACON=true CACHET_EMOJI=false CACHET_AUTO_TWITTER=true MAIL_DRIVER=smtp MAIL_HOST=localhost MAIL_PORT=25 MAIL_USERNAME=cachet MAIL_PASSWORD=plopus MAIL_ADDRESS=no-reply@federez.net MAIL_NAME=null MAIL_ENCRYPTION=tls REDIS_HOST=null REDIS_DATABASE=null REDIS_PORT=null GITHUB_TOKEN=null NEXMO_KEY=null NEXMO_SECRET=null NEXMO_SMS_FROM=Cachet
On installe composer et on préconfigure les dépendances :
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer composer install --no-dev -o
On génère la secret key
php artisan key:generate
On installe l'application
php artisan app:install
On écrit le site apache2, on force https :
<VirtualHost *:443> ServerName status.federez.net # Or whatever you want to use ServerAlias federez-wifi.federez.net cachet.federez.net # Make this the same as ServerName DocumentRoot "/var/www/Cachet/public" <Directory "/var/www/Cachet/public"> Require all granted # Used by Apache 2.4 Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> LogLevel warn ErrorLog ${APACHE_LOG_DIR}/cachet-error.log CustomLog ${APACHE_LOG_DIR}/cachet-access.log combined SSLCertificateFile /etc/letsencrypt/live/federez.net/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/federez.net/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf </VirtualHost>
On se connecte sur le site ( status.federez.net) et on configure au clicodrome le compte admin, et le nom du site
On met à jour les services soit via l'interface, soit via l'api.
Plus de doc ici : https://docs.cachethq.io/reference
Exemple d'utilisation en python pour crée un nouveau service :
import requests BASE_URL = "https://status.federez.net/api/v1/components" HEADERS = {"Content-Type": "application/json;", "X-Cachet-Token": SECRET_KEY} url = BASE_URL payload = "{\"name\":\"%s\",\"status\":1,\"description\":\"%s\",\"group_id\":\"%s\"}" % (asso.upper(), asso.upper() + ' ' + ', '.join(ASSOS_NAS_ID[asso]['pool']), group_id) requests.request("POST", url, data=payload, headers=HEADERS)
L'équivalent en shell :
curl --request POST \ --url https://demo.cachethq.io/api/v1/components \ --data '{"name":"Plop","status":1}'
Le script de monitoring federez-wifi post via python.
La secret-key se récupère sur l'interface admin en web.