Blog It Yourself - Ghost
Cet article fait partie de la série "Blog It Yourself"
Je l’évoquais dans mon article relatif au choix d’un blog, le premier choix pour créer le blog RoxTheCasbah s’est porté sur Ghost.
C’est ainsi que je vous propose un retour d’expérience sur l’installation, le paramétrage et l’utilisation de Ghost, qui se présente comme une alternative à WordPress, plus simple, plus légère et plus moderne.
L’hébergement
Laissons de côté la version payante de Ghost qui propose un hébergement par l’entreprise, et donc un minimum de paramétrage pour l’utilisateur. Concentrons-nous sur la version gratuite et open-source de l’outil, à héberger soi-même.
Parce qu’il n’y a jamais de mauvaise occasion d’apprendre quelque chose, nous avons choisi d’héberger le blog sur une instance AWS gratuite pour ne pas engendrer le moindre coût alors jugé inutile dans l’attente de connaître la fréquentation du site.
AWS propose en effet une version gratuite pendant un an d’une des plus petites machines sur son service EC2.
Les spécifications de cette machine répondent globalement aux prérequis recommandés par Ghost dans sa documentation, nous ne sommes pas allés plus loin !
L’installation
Là encore, le but est d’aller au plus simple et rapide, grâce à la documentation assez exhaustive de Ghost décrivant l’installation manuelle sur différents OS et dans différentes configurations. Nous nous sommes dirigés vers le guide 'Ubuntu'.
À noter que Ghost fournit un petit utilitaire pour gérer son site, de l’installation à la mise à jour : Ghost CLI.
Avec cet outil installé (npm i -g ghost-cli
), il ne reste plus qu’à lancer la commande ghost install
, répondre à quelques questions (nom du site, URL, etc.) et le tour est joué :
$ ghost install
✔ Checking system Node.js version
✔ Checking logged in user
✔ Checking current folder permissions
✔ Checking memory availability
✔ Checking free space
✔ Checking for latest Ghost version
✔ Setting up install directory
✔ Downloading and installing Ghost v4.2.2
✔ Finishing install process
? Enter your blog URL: https://myblog.com
? Enter your MySQL hostname: localhost
? Enter your MySQL username: mycoolname
? Enter your MySQL password: [hidden]
? Enter your Ghost database name: ghost_prod
Le lancement
Une fois le site lancé (ghost start
), une rapide navigation nous assure que tout semble fonctionner comme attendu.
Il est désormais possible de créer un compte administrateur et un ou plusieurs compte(s) "rédacteur(s)", depuis l’interface du site.
La rédaction d’articles peut démarrer sans soucis !
Soyons clairs : c’est top ! Sans trop d’effort on se retrouve avec un site opérationnel, un back office exhaustif et un éditeur de texte sympathique.
J’insiste sur l’éditeur de texte, il est du niveau de ce que l’on peut trouver sur Medium, et largement supérieur à ce que propose WordPress. Et on peut même rédiger ses articles en Markdown !
Je parlais justement de Markdown dans une série d’articles au sujet de la "Documentation as Code".
Les améliorations
Si le site obtenu au premier lancement est pleinement opérationnel, il faut noter que de nombreuses optimisations sont à réaliser presque obligatoirement pour obtenir un blog rapide et bien référencé.
NGINX, performances et référencement
Avoir un blog, c’est bien, avoir un blog référencé par les moteurs de recherche, c’est mieux !
En suivant le processus d’installation, Ghost utilise Nginx comme reverse proxy. En modifiant sa configuration par défaut, on peut obtenir des performances plus élevées que celles déjà correctes au premier lancement. Ces optimisations de performances concernent notamment les images et la mise en cache côté navigateur.
Commentaires et contact
Une fois le blog en ligne et les premiers articles rédigés, c’est assez naturellement que de nouveaux besoins se font sentir.
Par exemple, comment obtenir un module de commentaires sous les articles pour échanger avec sa communauté naissante ? Une solution nous est apparue assez simplement : Disqus, même si d’autres outils existent aussi. L’intégration de cet outil est prévu presque nativement dans la documentation de Ghost, le setup se fait donc très rapidement.
Une autre fonctionnalité assez courante est la page de contact pour permettre aux visiteurs de contacter l’auteur du blog de manière plus "privée". Là aussi, plusieurs services tiers peuvent faire l’affaire. Nous avons choisi Formspree, qui permet de gérer plusieurs types de formulaires. Une nouvelle fois, une page lui est dédiée dans la documentation.
À noter que de nombreuses intégrations sont documentées par Ghost, la plupart des besoins semblent couverts !
Les nombreuses fonctionnalités
Ghost propose la liste de fonctionnalités de son outil sur une page dédiée. Et le moins que l’on puisse dire c’est qu’elles sont très nombreuses.
Dans un premier temps, c’est extrêmement excitant : le blog que je suis en train de mettre en place va savoir faire énormément de choses à ma place, c’est génial. Et puis dans un second temps, on peut commencer à se dire qu’il n’est pas si léger et simple que ce qui était promis au début…
Parmi les fonctionnalités qui mettent WordPress au placard, je citerai la gestion d’un workflow de publication, avec une notion de relecture et d’auteurs multiples. C’est très intéressant, notamment pour un blog semi-professionnel où les publications doivent être les plus réussies possibles dès leur mise en ligne.
Et dans les fonctionnalités qui viennent presque en trop, citons la gestion des membres gratuits et payants : cela ne s’adresse qu’à une frange des auteurs en ligne, tout le monde n’a pas besoin d’un système digne d’un quotidien national.
Franchement, vous payeriez pour me lire ?
(Si la réponse est "oui", envoyez-moi un chèque, pas de souci !)
Allez, à la limite la mise en place d’une newsletter pour être prévenu des nouvelles publications, pourquoi pas.
La conclusion
Ghost est une bonne solution pour monter son blog rapidement, et vite se concentrer sur la rédaction d’articles.
J’ai été convaincu, puisqu’en quelques clics et lignes de commande, j’ai obtenu un blog très complet.
Néanmoins, dans sa version autohébergée, Ghost n’est pas sans soulever des difficultés :
Il faut assurer la sécurité de son instance AWS, de Nginx et Ghost en lui-même
Le paramétrage par défaut n’est pas suffisamment optimisé
Les mises à jour sont nombreuses (55 en 2021, dont une version majeure, heureusement très bien documentée)
Il est un peu lourd pour l’instance gratuite AWS EC2
Notons aussi ses (trop) nombreuses fonctionnalités qui vont au-delà de son slogan d’origine : "Just a blogging platform".
Dans le prochain article, je vous raconte comment je suis passé de Ghost à Hugo, avec un changement de philosophie radical.