# cd /var/www/ # git clone https://github.com/cachethq/Cachet.git status.chapril.org Clonage dans 'status.chapril.org'... # cd status.chapril.org
On liste les versions disponibles :
# git tag -l [...] v2.3.9
Et on prend la dernière stable :
# git checkout v2.3.9
La doc officielle de Cachet fait passer par composer
pour la résolution des dépendances. Et vu la liste du bouzin, c'est bienvenu. On l'installe donc :
# apt install composer
On installe aussi php-mbstring :
# apt install php-mbstring
Puis on lance le bouzin :
# composer install --no-plugins --no-scripts --no-dev -o
Les bibliothèques téléchargées vont dans le fichier vendor/
Pour la base de données :
# mysql MariaDB [(none)]> CREATE USER 'cachet' IDENTIFIED BY 'secret';Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> CREATE DATABASE cachet; MariaDB [(none)]> GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, CREATE, ALTER, INDEX, EXECUTE ON cachet.* TO 'cachet';
Ensuite la configuration du logiciel :
APP_ENV=production APP_DEBUG=false APP_URL=https://status.chapril.org/ APP_KEY=secret DB_DRIVER=mysql DB_HOST=localhost DB_DATABASE=cachet DB_USERNAME=cachet DB_PASSWORD=secret CACHE_DRIVER=file SESSION_DRIVER=file QUEUE_DRIVER=sync CACHET_EMOJI=false MAIL_DRIVER=sendmail MAIL_HOST=localhost MAIL_PORT=25 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ADDRESS=contact@chapril.org MAIL_NAME=Équipe Chapril MAIL_ENCRYPTION=tls
On peut ensuite définir une clé secrète :
php artisan key:generate
Et initialiser la base de données :
php artisan app:install
On place dans /etc/nginx/sites-available/
:
server { listen 80; access_log /var/log/nginx/status.chapril.org-access.log; error_log /var/log/nginx/status.chapril.org-error.log; server_name status.chapril.org; root /var/www/status.chapril.org/public; index index.php; location / { try_files $uri /index.php$is_args$args; } location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_index index.php; fastcgi_keep_conn on; } }
Puis on active le site :
ln -sf /etc/nginx/sites-available/status.chapril.org /etc/nginx/sites-enabled/status.chapril.org
Et on teste la conf NginX :
nginx -t
Avant de restarter :
/etc/init.d/nginx reload
Enfin il faut changer les permissions car on a tout fait ça en root :
chown www-data:www-data /var/www/status.chapril.org
Et enfin on se rend sur http://status.chapril.org pour finir la conf.
Comme d'hab, les webdevs sont des fainéants qui ne rapatrient pas leurs assets, il va donc falloir le faire pour eux.
On a deux occurrences de fonts.googleapis.com dans resources/views/dashboard/partials/head.blade.php (template pour l'interface privée) et dans resources/views/layout/master.blade.php (template pour l'interface publique).
On effectue la requête :
root@admin:/var/www/cachet/Cachet# curl 'https://fonts.googleapis.com/css?family=Open+Sans:300,400,700&subset=latin,latin-ext' @font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 300; src: local('Open Sans Light'), local('OpenSans-Light'), url(https://fonts.gstatic.com/s/opensans/v14/DXI1ORHCpsQm3Vp6mXoaTdqQynqKV_9Plp7mupa0S4g.ttf) format('truetype'); } @font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 400; src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v14/u-WUoqrET9fUeobQW7jkRaCWcynf_cDxXwCLxiixG1c.ttf) format('truetype'); } @font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 700; src: local('Open Sans Bold'), local('OpenSans-Bold'), url(https://fonts.gstatic.com/s/opensans/v14/k3k702ZOKiLJc3WVjuplzNqQynqKV_9Plp7mupa0S4g.ttf) format('truetype'); }
Puis on rapatrie les fontes :
wget https://fonts.gstatic.com/s/opensans/v14/k3k702ZOKiLJc3WVjuplzNqQynqKV_9Plp7mupa0S4g.ttf https://fonts.gstatic.com/s/opensans/v14/u-WUoqrET9fUeobQW7jkRaCWcynf_cDxXwCLxiixG1c.ttf https://fonts.gstatic.com/s/opensans/v14/DXI1ORHCpsQm3Vp6mXoaTdqQynqKV_9Plp7mupa0S4g.ttf
Reste à les héberger et à ajouter les css aux templates.
mv *.ttf public/fonts
Puis on remplace dans les deux templates le code
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,700&subset={{ $font_subset }}" rel="stylesheet" type="text/css">
par le code css qui va bieng :
<style> @font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 300; src: local('Open Sans Light'), local('OpenSans-Light'), url(/fonts/DXI1ORHCpsQm3Vp6mXoaTdqQynqKV_9Plp7mupa0S4g.ttf) format('truetype'); } @font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 400; src: local('Open Sans Regular'), local('OpenSans-Regular'), url(/fonts/u-WUoqrET9fUeobQW7jkRaCWcynf_cDxXwCLxiixG1c.ttf) format('truetype'); } @font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 700; src: local('Open Sans Bold'), local('OpenSans-Bold'), url(/fonts/k3k702ZOKiLJc3WVjuplzNqQynqKV_9Plp7mupa0S4g.ttf) format('truetype'); } </style>
Enfin on efface les caches :
rm -f storage/framework/views/*.php
On constate l'étendue des dégats avec
root@admin:/var/www/status.chapril.org# grep cdnjs * -R
Et il faut rapatrier tout ça. Je ne parle même pas des trucs tiers du dossier vendors
.
mkdir public/mycdn && cd public/mycdn wget https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/2.0.2/zxcvbn.min.js https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.8.0/codemirror.css https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.8.0/codemirror.min.js https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.8.0/mode/twig/twig.min.js
Puis éditer les différents fichiers listés sachant que le chemin d'accès est /mycdn/
.
vi -p public/build/dist/js/all-b2c62d4294.js resources/views/dashboard/templates/edit.blade.php resources/views/dashboard/templates/add.blade.php resources/assets/js/password-strength.js
Enfin on efface le cache :
rm -f /var/www/status.chapril.org/storage/framework/views/*.php
1. Dans app/Models/User.php
, poutrer la définition de
return sprintf('https://www.gravatar.com/avatar/%s?size=%d', md5($this->email), $size);
par exemple remplacer par
return '';
.
2. Dans resources/views/dashboard/user/index.blade.php
, virer
<a href="https://gravatar.com"><img src="{{ $current_user->gravatar }}" class="img-responsive img-thumbnail" title="{{ trans('forms.user.gravatar') }}" data-toggle="tooltip"></a>
Dans resources/views/dashboard/partials/sidebar.blade.php
, virer
<a href="{{ url('dashboard/user') }}"> <span class="avatar"><img src="{{ $current_user->gravatar }}"></span> </a>
Dans resources/views/dashboard/team/index.blade.php
, virer
<img src="{{ $member->gravatar }}">
Et le remplacer par ce que vous voulez.
Encore une fois on vire les caches :
rm -f storage/framework/views/*.php