Table des matières

Status - Cachethq

Hop hop le tuto officiel : https://docs.cachethq.io/v1.0/docs/installing-cachet

Installation

Début

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

Installation des composantes

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

Fin de l'installation

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>

Configuration

On se connecte sur le site ( status.federez.net) et on configure au clicodrome le compte admin, et le nom du site

Utilisation

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.