Installation de Grav CMS sur un serveur Web existant et paramétrage de GitSync.
Grav est un CMS flat file. Flat File O_o ?! Mais encore....
Contrairement à un CMS classique qui repose sur la combinaison base de donnée SQL et PHP, celui n'utilise que des fichiers html qui contiennent toutes les informations (d'ou le nom flat file).
Les avantages sont une performance accrue, une facilité d'installation et de sauvegarde déconcertante.
Grav propose en plus une interface d'administration "à la Wordpress" rendant le tout beaucoup plus user-friendly qu'une solution comme Jekill ainsi qu'une collection de thème de base plutôt intéressante. Le seul inconvénient étant de devoir utiliser PHP, ce qui n'est pas nécessaire avec les autres.
Et voilà....
Les étapes suivantes décrive l'installation de ce site, pour plus de détail je vous renvoie à la doc de Grav.
Pour ce site j'ai choisi d'installer le squelette Open Publishing Space, celui-ci correspond exactement à ce que je veux faire et inclus d'office la possibilité de synchroniser votre contenu avec GithHuB, ce qui permet d'avoir à la fois un outils d'archivage et de versioning fort pratique.
wget --header 'Host: github-production-release-asset-2e65be.s3.amazonaws.com' --user-agent 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0' --header 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' --header 'Accept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3' --referer 'https://getgrav.org/downloads/skeletons' --header 'DNT: 1' --header 'Upgrade-Insecure-Requests: 1' --header 'Sec-GPC: 1' 'https://github-production-release-asset-2e65be.s3.amazonaws.com/100427371/7b59cb80-4f5c-11eb-87c4-c3e93469093b?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20210109%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210109T155833Z&X-Amz-Expires=300&X-Amz-Signature=7fc879550280f34767ce5cd97e6f23bb9d8e9149d870f6457bd4ae7703dd9813&X-Amz-SignedHeaders=host&actor_id=33554413&key_id=0&repo_id=100427371&response-content-disposition=attachment%3B%20filename%3Dgrav-skeleton-open-publishing-space-site.zip&response-content-type=application%2Foctet-stream' --output-document 'grav-skeleton-open-publishing-space-site.zip'
unzip grav-skeleton-open-publishing-space-site.zip
mv grav-skeleton-open-publishing-space-site grav
chown -R www-data:www-data grav
cd grav
find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;
Et voilà!
Bugfix: Actuellement le plugin TNTsearch inclus une petite erreur qui fait que la recherche retourne une page blanche.
Pour résoudre le problème, il suffit d'éditer le fichier user/plugins/tntsearch/tntsearch.php
Et de remplacer la ligne
$this->query = (string)($uri->param('q', null) ?? $uri->query('q') ?: '');
par
$this->query = (string)($uri->param('q', null) ?: $uri->query('q') ?: '');
https://monnouveausite.org/grav/
L'outils GitSync necessite un peu de préparation côté GitHub.
L'identifiant par mot de passe étant une méthode déprecié par GitHub nous alons directement utiliser un Token, de plus ça fonctionne mieux avec la double authentification.
Ensuite vous devez créer un repo dédié à votre site, afin de faciliter la suite, je vous conseille de nommer la branche principale master.
Et voila :)