Comment s’auto-héberger et installer Ghost sur votre serveur Linux

Comment s’auto-héberger et installer Ghost sur votre serveur Linux

Ghost est un programme de gestion de contenu open source qui vous permet de créer facilement un blog et un service de newsletter. Vous pouvez choisir de vous abonner au service Ghost(Pro) pour utiliser le CMS, ou, si vous êtes plus techniquement enclin, de l’auto-héberger sur votre serveur. Ici, nous vous montrons ce dernier : auto-héberger Ghost sur votre serveur Linux.

Pourquoi devriez-vous auto-héberger Ghost sur votre serveur

L’un des avantages d’un blog Ghost est qu’il fournit une plate-forme intégrée et riche en fonctionnalités qui fonctionne immédiatement. Cela inclut la possibilité de suivre les analyses, de monétiser les publications et de créer des newsletters automatiques pour vos abonnés.

Une capture d'écran du tableau de bord Ghost.

Installer Ghost sur votre serveur vous permet d’être éditeur sans dépendre d’un tiers pour gérer vos données. Cela peut être utile si vous êtes un journaliste qui publie des articles critiques sur des sujets controversés.

Enfin, Ghost est facile à déployer et à maintenir, même pour les utilisateurs non techniques. Contrairement aux plates-formes CMS traditionnelles, Ghost fournit une solution tout-en-un que vous pouvez « configurer et oublier » sur votre machine d’hébergement.

Installer Ghost sur votre serveur

Hypothèse : Avant de commencer, nous supposons que vous disposez déjà d’un serveur Linux disponible et d’un nom de domaine pour héberger votre installation Ghost. Si vous devez louer un serveur Linux, nous vous recommandons DigitalOcean ou Linode .

Puisque nous utiliserons Docker, nous devrons d’abord installer Docker sur le serveur.

1. Installez la clé publique du référentiel du projet Docker :

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

2. Créez un nouveau fichier de référentiel dans le répertoire apt config de votre machine :

sudo nano /etc/apt/sources.list.d/docker.list

3. Collez la ligne de code suivante dans votre nouveau fichier de référentiel :

deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable

4. Actualisez les listes de référentiels de votre système et mettez à niveau les binaires existants sur votre machine :

sudo apt updatesudo apt upgrade

5. Installez Docker et Docker Compose avec leurs dépendances :

sudo apt install wget docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin

6. Ajoutez votre utilisateur au groupe Docker

sudo usermod -aG docker $USER

7. Configurez le service Docker pour qu’il s’exécute au démarrage :

sudo systemctl enable docker.service

8. Redémarrez le serveur.

sudo reboot

Configuration de Gmail pour la livraison SMTP

Ghost n’est pas livré avec son propre client de livraison de courrier électronique, nous devons donc le connecter à Gmail pour la livraison de courrier électronique.

1. Ouvrez un navigateur Web et connectez-vous au compte Gmail que vous souhaitez associer à votre instance Ghost.

2. Cliquez sur l’icône de profil de votre compte, puis cliquez sur « Gérer votre compte Google ».

3. Sélectionnez la catégorie « Sécurité », puis cliquez sur l’option « Vérification en 2 étapes » sous la sous-catégorie « Comment vous connecter à Google ».

Une capture d'écran mettant en évidence le processus de vérification en deux étapes pour les comptes Gmail.

4. Vérifiez votre numéro de téléphone et activez la vérification en 2 étapes .

5. Revenez à la catégorie « Sécurité », puis cliquez à nouveau sur l’option « Vérification en 2 étapes ». Cela ouvrira un nouvel écran de menu où vous pourrez définir de nouvelles clés secondaires pour votre compte. Faites défiler vers le bas de la page, puis cliquez sur « Mots de passe des applications ».

Une capture d'écran montrant le

6. Sélectionnez « Mail » pour la première liste déroulante, puis sélectionnez « Autre » dans la seconde.

7. Écrivez « Gmail pour Ghost » dans la zone de texte, puis cliquez sur « Générer ». Cela ouvrira une fenêtre avec une zone de texte jaune contenant votre mot de passe d’application personnalisé.

Une capture d'écran montrant le mot de passe d'application généré pour Ghost.

Construire le conteneur Docker

1. Créez un nouveau répertoire pour les fichiers docker de votre installation Ghost :

mkdir ~/ghost
cd ~/ghost

2. Créez un nouveau fichier docker-compose.yml à l’aide de votre éditeur de texte préféré :

nano. /docker-compose.yml

3. Collez le bloc de code suivant dans votre nouveau fichier docker-compose.yml et enregistrez-le.

---
version: "3"
services:
ghost:
image: ghost:latest
restart: always
ports:
- 8080:2368
environment:
database__client: mysql
database__connection__host: db
database__connection__database: ghost
database__connection__user: ghost
database__connection__password: ghost
url: ${GHOST_URL}
mail__transport: ${MAIL_TRANSPORT}
mail__options__host: ${MAIL_HOST}
mail__options__port: ${MAIL_PORT}
mail__options__secureConnection: ${MAIL_SECURE_CONNECTION}
mail__options__auth__user: ${MAIL_USER}
mail__options__auth__pass: ${MAIL_PASSWORD}
volumes:
- ghost-data:/var/lib/ghost/content
links:
- db
db:
image: mysql:8.0
restart: always
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ghost
MYSQL_USER: ghost
MYSQL_PASSWORD: ghost
cap_add:
- SYS_NICE
volumes:
- ghost-db:/var/lib/mysql
volumes:
ghost-data: null
ghost-db: null

4. Créez un fichier « .env » dans votre répertoire Docker Ghost :

nano. /.env

5. Collez le bloc de code suivant dans votre nouveau. fichier env :

# URLGHOST_URL="#REPLACE_ME_WITH_DOMAIN_NAME#"# DatabaseMYSQL_ROOT_PASSWORD="#REPLACE_ME_WITH_SECURE_PASSWORD#"# SMTP variablesMAIL_SERVICE="Gmail"MAIL_TRANSPORT="SMTP"MAIL_USER="#REPLACE_ME_WITH_YOUR_GMAIL_ADDRESS#"MAIL_PASSWORD="#REPLACE_ME_WITH_YOUR_APP_PASSWORD#"MAIL_HOST="smtp.gmail.com"MAIL_PORT="465"MAIL_SECURE_CONNECTION="true"

  • Modifiez la valeur de la variable « GHOST_URL » de « #REPLACE_ME_WITH_DOMAIN_NAME# » par votre nom de domaine complet.
Un terminal affichant l'URL d'une instance Ghost distante.
  • Remplacez la valeur de « MYSQL_ROOT_PASSWORD » par un mot de passe suffisamment aléatoire.
  • Modifiez la valeur de « MAIL_USER » et « MAIL_PASSWORD » avec l’adresse e-mail de votre compte Gmail et son mot de passe d’application.

6. Créez le conteneur Ghost Docker en exécutant la commande suivante :

sudo docker compose up -d

Configuration d’un proxy inverse

Avec Ghost exécuté dans le backend, nous devons configurer un proxy inverse pour pouvoir accéder publiquement à Ghost. Dans ce cas, nous utiliserons le proxy inverse de Nginx .

1. Installez le package du serveur Web Nginx. Cela servira de démon de proxy inverse qui prendra les connexions depuis Internet et les redirigera vers Ghost.

sudo apt install nginx

2. Créez un nouveau fichier de configuration de site Nginx à l’aide de votre éditeur de texte préféré :

sudo nano /etc/nginx/sites-available/ghost

3. Collez le bloc de code suivant dans votre nouveau fichier de configuration de site :

server {
listen 80;
listen [::]:80;

root /var/www/html;
server_name ghost.myvpsserver.top;


location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:8080;
}}

4. Créez un lien symbolique pour la configuration de votre site Ghost :

sudo ln -s /etc/nginx/sites-available/ghost /etc/nginx/sites-enabled/

5. Activez le service du serveur Web Nginx à l’aide de systemctl :

sudo systemctl enable --now nginx.service

Activation de SSL sur votre proxy inverse Nginx

1. Assurez-vous que le package snap « core » est présent sur votre machine :

sudo snap install core

2. Installez le package snap certbot :

sudo snap install certbot --classic

3. Enregistrez votre installation certbot sur votre adresse e-mail en exécutant la commande suivante :

sudo certbot register --agree-tos --email ramces@email.invalid

4. Demandez un nouveau certificat SSL pour votre blog Ghost :

sudo certbot --nginx -d ghost.myvpsserver.top

5. Testez si votre nouvelle instance Ghost est accessible via SSL en ouvrant un navigateur Web et en chargeant votre nom de domaine.

Une capture d'écran montrant une instance Ghost fonctionnelle à partir d'un serveur distant.

Exécuter Ghost sur une machine locale

Si vous n’avez pas de serveur et souhaitez installer Ghost sur votre ordinateur local, vous pouvez également le faire. De plus, vous pouvez utiliser Tailscale pour y accéder partout sur votre navigateur.

1. Installez le démon Tailscale VPN sur votre machine et associez-le à votre compte Tailscale. Accédez à votre console d’administration Tailscale et cliquez sur l’onglet « DNS » dans la barre supérieure de la console.

Une capture d'écran mettant en évidence l'onglet DNS sur la console d'administration Tailscale.

2. Cliquez sur le bouton « Renommer tailnet… » sous la sous-catégorie « Tailnet name ».

Une capture d'écran mettant en évidence le

3. Définissez le nom d’hôte de votre machine sur « fantôme » suivi du nouveau sous-domaine de votre réseau Tailscale :

sudo hostnamectl set-hostname ghost.your-tailnet.ts.net

Activation de l’entonnoir Tailscale

1. Ouvrez la console d’administration de Tailscale et cliquez sur l’onglet « DNS ».

2. Faites défiler vers le bas de la page puis cliquez sur « Activer HTTPS… »

Une capture d'écran montrant l'option HTTPS pour les hôtes Tailscale.

3. Revenez en haut de la page, puis cliquez sur l’onglet « Contrôle d’accès ».

Une capture d'écran mettant en évidence le

4. Cliquez sur le bouton « Ajouter un entonnoir à la stratégie ».

Une capture d'écran mettant en évidence le

5. Exécutez la commande suivante pour créer un proxy inverse entre Tailscale et votre conteneur Docker local :

sudo tailscale serve https / http://127.0.0.1:8080

6. Activez l’entonnoir Tailscale pour votre proxy inverse en exécutant la commande suivante :

sudo tailscale funnel 443 on

7. Testez si votre nouvelle instance Ghost est accessible via votre entonnoir Tailscale en ouvrant un navigateur Web et en chargeant votre adresse Tailscale.

Une capture d'écran montrant une installation Ghost fonctionnelle sur Tailscale.

Utiliser Ghost pour la première fois

1. Ouvrez un navigateur Web et accédez à l’URL de votre installation Ghost suivie du sous-répertoire « /ghost ».

Une capture d'écran de la barre d'adresse d'un navigateur Web affichant l'URL correcte de la page de configuration de Ghost.

2. Cliquez sur le premier champ et indiquez un nom pour votre nouveau blog Ghost. Remplissez le reste des champs avec des détails sur votre utilisateur administrateur, puis cliquez sur « Créer un compte et commencer la publication ».

Une capture d'écran montrant le

Créer votre premier message dans Ghost

1. Cliquez sur le bouton « Écrivez votre premier message » sur la page d’intégration de Ghost.

Une capture d'écran montrant la page d'intégration des premiers pas pour Ghost.

2. Cela fera apparaître un éditeur de texte brut dans lequel vous pourrez rédiger un simple message texte. Cliquez sur « Publier » une fois que vous avez terminé pour créer une nouvelle publication de test.

3. Vérifiez la page d’accueil de votre Ghost pour voir si le nouveau message a été publié.

Ajouter un nouvel utilisateur à Ghost

1. Revenez à votre console d’administrateur Ghost, puis cliquez sur « Membres » dans la barre latérale gauche de la page.

2. Cliquez sur le bouton « Nouveau membre » dans le coin supérieur droit de la page.

Une capture d'écran montrant la liste des membres sur l'instance Ghost actuelle.

3. Remplissez les coordonnées de votre nouveau membre, puis cliquez sur « Enregistrer » pour l’ajouter au fil de la newsletter du blog.

Questions fréquemment posées

L’entonnoir Tailscale a-t-il des restrictions ?

Oui. Par défaut, vous ne pouvez exposer le trafic sur Tailscale que via trois ports : 443, 8443 et 10000 et uniquement en utilisant TCP. Cela signifie que vous ne pourrez exposer aucun service en ligne en temps réel tel que la VoIP et les serveurs de jeux.

Puis-je personnaliser le nom de domaine Tailscale ?

Non. En effet, chaque adresse DNS Tailscale est adaptée à votre compte spécifique. Cela permet au service d’identifier vos machines parmi les autres au sein du plus grand réseau Tailscale.

Mon blog Ghost cessera-t-il de fonctionner lorsque mon ordinateur est hors ligne ?

Oui. L’un des inconvénients de l’hébergement sur votre propre matériel est que la disponibilité de votre site Web dépend de la disponibilité de votre machine. Cela signifie que chaque fois que votre machine hôte tombe en panne, votre blog Ghost tombe également en panne.

Crédit d’image : PERSONNES DE COMMUNICATION DE BUREAU DE TRAVAIL UTILISANT LE CONCEPT DE BLOG INFORMATIQUE et biscuit fantôme d’Halloween traditionnel par 123RF.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *