Ghost, un petit nouveau dans le monde des CMS

Pour commencer ce blog orienté sur le Raspberry Pi et la domotique, j'avais commencé par écrire quelques articles sur mon blog personnel. Mais le nombre de visites et la volonté de partager plus régulièrement des nouveaux articles m'ont fait réfléchir à une alternative. Au début, j'ai voulu relancer un nouveau blog sous Wordpress, hébergé sur mon espace OVH. Mais en cherchant un peu plus ce qui pourrait me convenir, je suis tombé sur une petite pépite, et c'est pourquoi je voulais vous en faire part.

Un CMS (Content Management System) ou système de gestion de contenu est une famille de logiciels destinés à la conception et à la mise à jour dynamique de sites Web ou d'applications multimédia. Il contient le plus souvent une interface WYSIWYG (What You See Is What You Get - Ce que vous voyez est ce que vous obtenez) qui propose une interface graphique de mise en forme similaire à ce que vous pouvez connaître dans vos logiciels de traitement de texte. Une gestion des utilisateurs et des droits est également présente pour permettre la collaboration de plusieurs personnes à un site, tout en respectant une organisation bien définie. Les CMS les plus connus et dont vous avez surement déjà entendus parler sont Wordpress, Joomla, SPIP, DotClear, Drupal, phpBB ou encore Prestashop.

Ce CMS, ou plutôt plateforme de blogging, se nomme Ghost et est tout nouveau dans le monde déjà bien rempli des systèmes de gestion de contenu. Ghost est un projet qui a été financé sur la plateforme de crowdfounding Kickstarter et qui a récolté plus de 240.000€ pour les 30.000€ demandés.

Mettre en place un blog sous Ghost peut sembler complexe pour ceux qui ne s'y connaissent pas trop, mais vous serez finalement fier de vous et impatient d'attaquer une fois votre blog en ligne.

Pour commencer, vous aurez donc besoin d'un hébergement où vous pourrez installer des paquets. Pour ma part, j'ai un serveur VPS chez OVH, avec Debian 7 installé comme OS.

Connectez-vous en ssh à votre serveur et installez les paquets nécessaires au bon fonctionnement de Ghost.

sudo apt-get update && sudo apt-get -y upgrade

sudo apt-get -y install build-essential python unzip

Pour fonctionner correctement, Ghost s'appuie sur Node.js, une plateforme logicielle ultra performante, taillée pour les applications nécessitant une montée en charge. Node.js contient une bibliothèque de serveur HTTP, ce qui permet d'héberger un site web sans installer un serveur Apache ou lighthttpd, qui peuvent être consommateurs de ressources et ont besoin d'un minimum de configuration.

mkdir -p /var/www/

cd /var/www/

wget http://nodejs.org/dist/v0.10.28/node-v0.10.28-linux-x64.tar.gz

tar -xvf node-v0.10.28-linux-x64.tar.gz

cd node-v0.10.28-linux-x64

./configure --openssl-libpath=/usr/lib/ssl --prefix=/opt/node

make

make install

Pour vérifier la bonne installation de Node.js et de NPM :

node -v devrait vous retourner v0.10.28

npm -v devrait vous retourner 1.4.9

NPM (Node.js Package Manager) est installé par défaut avec Node.js et vous servira pour installer des modules supplémentaires, pour rajouter des fonctionnalités à votre blog.

Placez-vous ensuite dans le répertoire où vous installerez Ghost et téléchargez la dernière version disponible.

curl -L https://ghost.org/zip/ghost-latest.zip -o ghost.zip

unzip -uo ghost.zip -d ghost

cd ghost

npm install --production

Vous pouvez maintenant démarrer Ghost avec npm start.
Vous devrez modifier le fichier config.js pour renseigner votre adresse IP, et ensuite vous connecter sur http://ip-de-ghost:2368.
Rendez-vous sur l'url http://ip-de-ghost:2368/ghost pour créer votre utilisateur (administrateur) et accéder au panneau de gestion de Ghost.

Maintenant que votre blog sous Ghost est en place et fonctionnel, nous allons voir comment le faire tourner en tâche de fond. Vous avez en effet dû remarquer que si vous quittiez votre terminal, votre blog n'était plus accessible. Pour remédier à ce problème, il est possible d'utiliser plusieurs solutions :

- Lancer Ghost avec la commande `nohup` - Installer un gestionnaire de process - Ou simplement installer un package Node.js avec NPM

Dans mon cas, j'ai utilisé le package forever :
npm install forever -g

Pour démarrer Ghost, tapez NODE_ENV=production forever start index.js.
Pour vérifier que Ghost est bien lancé, tapez forever list.
Pour arrêter Ghost tapez forever stop index.js.

Ghost n'en est qu'à ses débuts et est déjà bien prometteur face à des ténors du genre comme Wordpress. Il lui manque encore quelques fonctionnalités qui font hésiter certains, comme la gestion de multiples utilisateurs et des droits, la possibilité d'ajouter des plugins, ...

Plusieurs évolutions qui sont bien prévues et que vous pourrez suivre dans la roadmap disponible sur GitHub.

Si vous voulez changer de thème, vous pouvez choisir parmi ceux proposés sur la Marketplace. Vous devrez ensuite l'uploader dans le dossier /var/www/ghost/content/themes/ puis relancer Ghost avec la commande forever restart index.js depuis le dossier /var/www/ghost/.