Ghost est une jolie alternative à WordPress, qui permet comme son homologue de publier du contenu sur un blog. Vous pouvez transformer ce blog en blog personnel, en magazine, en espace documentation, etc...

Nous avons, au sein de l'équipe de YubiGeek, récemment décidé de migrer tout le contenu vers Ghost, une tâche fastidieuse expliquée ici. L'installation, elle, s'est déroulée assez rapidement, mais n'est pas une mince affaire pour tout le monde.

Voici, donc, comment héberger, et installer un blog avec Ghost sur un serveur dédiée, ou un VPS, avec Ubuntu 18.04 (cela ne change pas grand chose d'une distribution Linux à l'autre).

Configuration du serveur

Avant d'installer Ghost sur votre machine, pensez à faire les mises à jour !

# Mise à jour de la liste des paquets
sudo apt-get update

# Mise à jour des paquets installés
sudo apt-get upgrade

Ensuite, connectez-vous à la machine en SSH (Secure Shell) si ce n'est pas déjà fait.

Conditions préalables d'installation de Ghost :

  • Ubuntu 16.04 ou Ubuntu 18.04
  • NGINX (minimum de 1.9.5 pour SSL)
  • Une version prise en charge de NodeJS
  • MySQL 5.5, 5.6 ou 5.7 (la version 8.0 n'est pas prise en charge)
  • Systemd
  • Un serveur avec au moins 1 Go de mémoire
  • Un nom de domaine enregistré

Avant de continuer, vous devez définir un enregistrement CNAME ou A sur le nom de domaine que vous prévoyez d'utiliser, en pointant l'adresse IP du serveur et vous assurer qu'il se résout correctement (vous pouvez le vérifier ici).

Ceci doit être fait à l'avance pour que Let's Encrypt puisse installer le certificat SSL (utile pour que votre blog soit disponible en "https") lors de l'installation de Ghost.

Créer un nouvel utilisateur sur votre machine

Ouvrez votre terminal et connectez-vous à votre nouveau serveur en tant qu'utilisateur "root" :

# Connexion en SSH à partir du terminal
ssh [email protected]<ip_de_la_machine>

# Ajout d'un nouvel utilisateur
adduser <utilisateur>

# Ajouter ce nouvel utilisateur aux super-utilisateurs (sudo)
usermod -aG sudo <utilisateur>

# Connectez-vous avec ce nouvel utilisateur
su - <utilisateur>

Installer NGINX

Ghost utilise un serveur NGINX comme proxy, pour faire la liaison entre l'instance NodeJS lancée, et le nom de domaine, et il permet d'utiliser un certificat SSL sur l'application. Installez-le avec la commande suivante :

# Installer NGINX
sudo apt-get install nginx

Si vous utilisez un pare-feu tel que UFW (Uncomplicated Firewall) sur votre machine, pensez à autoriser le port utilisé par NGINX (80 et 443, pour le http, et le https).

# Ajout des ports de NGINX au pare-feu
sudo ufw allow 'Nginx Full'

Installer MySQL

# Installer MySQL
sudo apt-get install mysql-server

Après l'installation de MySQL, pensez à changer le mot de passe du compte principal (à savoir "root"), afin de sécuriser au mieux l'accès à MySQL.

# Connectez-vous à MySQL en ligne de commande
sudo mysql

# Remplacez 'password' par le nouveau mot de passe
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

# Quittez MySQL
quit

# Reconnectez-vous à votre compte sur Ubuntu
su - <user>

Installer NodeJS

Ghost préconise d'installer certaines version de NodeJS, vous pouvez consulter la liste ici. Pour installer NodeJS sur votre machine, saisissez ces commandes dans le terminal :

# Ajout du dépôt de NodeJS en version 12.x
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash

# Installer NodeJS
sudo apt-get install -y nodejs

Installer Ghost CLI

Ghost-CLI est un outil en ligne de commande pour vous aider à installer et à configurer Ghost rapidement et facilement. Le module NPM (Node Package Manager) peut être installé avec npmou yarn.

sudo npm install [email protected] -g

Une fois installé, vous pouvez toujours exécuter ghost help pour voir une liste des commandes disponibles sur Ghost. Parmi elles, vous retrouverez les commandes pour démarrer ou arrêter Ghost, pour importer ou exporter les paramètres du blog, etc...

Installer Ghost

Nous arrivons à l'étape la plus importante de cet article, à savoir, l'installation de Ghost sur votre machine dédiée ou votre VPS. L'installation est facile mais, comme je vous l'ai dit au début de l'article, pour en arriver ici, ce n'est pas donné à tout le monde.

# Créez le répertoire de votre blog Ghost dans /var/www/
sudo mkdir -p /var/www/ghost

# Donnez les droits d'accès au répertoire à votre utilisateur
sudo chown <utilisateur>:<utilisateur> /var/www/ghost

# Donnez les droits de lecture/écriture au répertoire
sudo chmod 775 /var/www/ghost

# Rendez-vous dans ce répertoire
cd /var/www/ghost

Enfin, on y arrive ! Pour installer Ghost, vérifiez que vous êtes dans le répertoire créé précédemment et lancez cette commande :

ghost install

Répondez aux questions qui vous sont posées :

  • URL du blog
  • Nom d'hôte MySQL (localhost)
  • Nom d'utilisateur MySQL (root)
  • Mot de passe "root" MySQL
  • Nom de la base de données MySQL

Il est conseillé d'utiliser le générateur de nom d'utilisateur MySQL. Cela permettra de générer un nom d'utilisateur et un mot de passe MySQL pour votre nouvelle installation de Ghost. Laissez l'installateur configurer NGINX et le certificat SSL (il vous sera demandé votre email pour la certification), puis laissez également la configuration automatique de Systemd.

Pour terminer, choisissez si Ghost doit être démarré ou non. Vous pourrez démarrer Ghost plus tard avec cette commande :

ghost start

Rendez-vous maintenant sur l'URL de votre blog, vous accéderez à une page avec des articles pré-écrits sur un thème qui s'appelle Casper (vous avez la référence ?). Pour supprimer ces articles, et partir sur de bonnes bases, ajoutez "/ghost" à la fin de l'URL. Vous accéderez à l'interface d'administration qui vous demandera de créer un compte (le premier compte créé devient administrateur du blog).


Ceci est une synthèse du tutoriel d'installation écrit par l'équipe de Ghost, dans le but de vous faire découvrir les joies de l'installation de Ghost sur votre serveur dédiée ou votre VPS. Si vous l'avez aimé, n'hésitez pas à partager l'article sur les réseaux sociaux, cela fait toujours plaisir !