Comment mettre en place Ghost sur son VPS ?

Dans mon précédent post, on a pu voir comment choisir son VPS et le mettre en place, maintenant que tout cela est prêt, on va regarder comment installer Ghost sur son VPS !

Mais avant tout, réexpliquons ce qu'est Ghost ! Ghost est un CMS (Content Management System) moderne et open-source, conçu principalement pour les créateurs de contenu, les blogueurs et les éditeurs. Contrairement à des plateformes comme WordPress, qui est très polyvalente et permet de construire une grande variété de sites web, Ghost se concentre principalement sur la publication de contenu et la gestion de blogs ou de sites d'édition. Il est possible de monétiser du contenu grâce à ce CMS, mais là n'est pas mon intention 😉

Ghost recommande la configuration suivante afin de l'installer :

  • Ubuntu 20.04 ou Ubuntu 22.04
  • NGINX (minimum 1.9.5 pour SSL)
  • Une version supportée de Node.js
  • MySQL 8
  • Systemd
  • Un serveur avec au moins 1GB de RAM

On va donc s'occuper de tout ça ! On installe NGINX avec la commande sudo apt install nginx, si notre pare-feu est activé, on rentre la commande sudo ufw allow 'Nginx Full', ce qui laisse à Nginx la possibilité d'utiliser le trafic HTTP et HTTPS.

Pour ce qui est de MySQL, nous aurons besoin d'une version supérieur ou égale à MySQL 8. Même histoire, on rentre la commande sudo apt install mysql-server pour installer MySQL. Sur les versions plus récentes d'Ubuntu, l'utilisateur root créé lors de l'installation de MySQL sera configuré par défaut pour utiliser l'authentification basée sur socket, ce qui signifie que seul l'utilisateur root pourra s'authentifier. Ghost ne prend pas en charge ce type d'authentification, on devra donc changer l'utilisateur root MySQL pour avoir un mot de passe. On exécute ces commandes pour donner à l'utilisateur root un mot de passe :

  • sudo mysql Pour rentrer dans la console MySQL
  • ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY '<your-new-root-password>'; Pour mettre à jour les permissions
  • FLUSH PRIVILEGES; Pour relire ces permissions
  • exit Pour quitter MySQL

Pour NodeJS, rien de plus facile, il suffit simplement de rentrer la commande sudo apt install nodejs pour installer la dernière version en date.

Une fois tout cela fait, on peut commencer l'installation de Ghost ! On commence par Ghost-CLI, un outil qui va faciliter l'installation de notre CMS. On l'installe à l'aide de sudo npm install ghost-cli@latest -g (si npm n'est pas installé sur votre machine, vous pouvez le faire avec sudo apt install npm).

Maintenant, on va vraiment passer sur la partie installation du CMS. Avant tout, créons un répertoire qui va accueillir les fichiers de Ghost : sudo mkdir -p /var/www/<nomdurépertoire>
On décide quel utilisateur est l'owner de ce répertoire :sudo chown <user>:<user> /var/www/<nomdurépertoire>
On donne les bonnes permissions : sudo chmod 775 /var/www/<nomdurépertoire>
Et on se met à l'intérieur : cd /var/www/<nomdurépertoire>

Il ne reste plus qu'à lancer ghost install et à suivre les instructions :

  • Blog URL : rentrer l'URL exact sur lequel votre site sera disponible, pour ma part ce sera https://axel.fun
  • MySQL Hostname : Si MySQL est installé sur le même serveur, localhost devra être utilisé, sinon entrer le nom correct
  • MySQL username : Si vous avez déjà un utilisateur MySQL, rentrer ce nom, sinon il faut rentrer root
  • MySQL password : Entrez un mot de passe
  • Ghost database name : Entrer le nom de la base de données, elle sera automatiquement setup.
  • Setup a ghost MySQL user : Ghost-CLI peut créer un utilisateur qui peut seulement modifier la table Ghost, rien d'autre
  • Set up NGINX : Met en place automatiquement NGINX pour que le site soit accessible directement en ligne
  • Set up SSL : Personnellement j'ai décidé de skip cette étape, je préfère le faire moi-même avec certbot, mais vous pouvez le faire automatiquement en choisissant Y
  • Set up systemd : systemd est l'outil de gestion de processus recommandé pour assurer le bon fonctionnement de Ghost. Choisir oui est donc le plus judicieux.
  • Start Ghost : oui pour lancer le site

ET VOILA ! Votre site est désormais en ligne, vous avez désormais la possibilité de créer vos posts, de personnaliser l'affichage de votre site, et donc de vous régaler à créer du contenu. Félicitations, maintenant il ne vous reste plus qu'à profiter de votre site tout neuf !