Monter un blog Ghost avec Docker sur Linux

ghost-docker

Vous devez le savoir depuis quelques temps, je suis fan de Docker, – cette technologie de container qui permet de monter  des applications sur son serveur et le tout dans un environnement bien spécifique. Aujourd’hui, nous allons nous intéresser à Ghost, un CMS de blog concurrent de WordPress.

Un blog Ghost en 5 minutes avec Docker

ll y a quelques jours, Pierre-Louis, un ami hébergeant son blog sur Ghost me questionnait au sujet des versions de Node.js et des dépendances des services qu’il hébergeait. En effet en utilisant Ghost sur sa machine, il devait au préalable avoir installé Node.js dans une version compatible avec le moteur de blog. Or, cette version du « runtime » n’est pas forcément compatible avec les nouvelles applications qu’il allait héberger.

Pour faire simple, à part Ghost, il était impossible d’héberger d’autres service javascript sans passer par des « hacks » basés sur nvm, par exemple. La solution que je lui ai proposée est basée sur Docker. En utilisant Docker il pouvait alors se passer de PM2 et éviter des problèmes de compatibilité entre versions.

Installer Docker pour Ghost sur son serveur

Pour les besoins de ce tutoriel nous utiliserons la dernière version en date de Docker. Nous récupérerons Ghost depuis les dépôts officiels (hub.docker.com). Nous utiliserons une configuration de « production » pour le blog et une base de donnée SQLite. Le système hôte est un Ubuntu 14.04.

Avant de monter votre blog, vous devrez installer Docker. Pour cela, je vous redirige vers le site officiel.

Installer Docker sur Linux : https://docs.docker.com/engine/installation/

Maintenant Docker installé, il faut récupérer Ghost. Coup de chance pour nous, il existe un dépôt contenant le moteur de blog pouvant être utilisé développement ou en production.

Pour les besoins de ce tutoriel, nous allons utiliser « docker-compose ». Ce petit outil permet de générer des containers à partir de fichiers de configuration yml.

Installer Docker Compose : https://docs.docker.com/engine/installation/

Configurer et lancer Ghost

Dès que vous avez récupéré Docker et Compose, vous pouvez passer aux choses sérieuses. Concrètement, je suis du genre à héberger mes applications conteneurisées dans le dossier « /srv » de mon système de fichiers Linux.

https://gist.github.com/anonymous/243ad4834578b7195f1282298e4e7aa3

Une fois dans le bon dossier, j’édite donc le fichier « docker-compose.yml » qui va servir à lancer le processus. Vous remarquerez que le port à transférer est le port par défaut, c’est à dire « 2368 ». Si vous utilisez un reverse-proxy, pensez à modifier le port vers lequel celui-ci va pointer.

https://gist.github.com/anonymous/30dee29e16f2bcc4adcf618660a6327a

Avant de déployer votre Ghost en production vous devrez définir la partie « paths » manuellement dans le fichier « data/config.js », dans le cas contraire vous aurez une belle erreur.

Une fois la configuration en place, lancez la commande suivante : « docker-compose up ». Assurez-vous qu’il n’y ait aucune erreur dans la console. Si c’est le cas, vous pouvez lancer le tout dans une configuration de production et commencer à publier vos articles.

En résumé

De nos jours, publier soit même ses articles et monter son blog est très simple. C’est réalisable en quelques minutes seulement et c’est encore plus simple avec Docker. Si vous souhaitez, vous pouvez même voir le résultat en temps réel sur le site de Pierre-Louis, c’est un peu grâce à lui que j’ai rédigé cet article. Je me suis également assigné une tâche Wunderlist afin de vous préparer un article sur la configuration de Nginx, en tant que reverse-proxy pour vos sites web.

Articles recommandés

6 commentaire

  1. […] aussi faire « peur » au robot de Google. Etant donné que j’utilise personnellement Docker pour héberger mes sites derrière NGINX, une mauvaise configuration est vite […]

  2. […] en NodeJS avec Typescript, le backend est disponible en package Docker. Pour le moment le code source est hébergé sur un Gitlab, mais j’attends personnellement la […]

  3. […] programme, qu’il a tout d’abord présenté sur Twitter. Ce petit programme codé en Node.js utilise l’API de la SNCF pour récupérer des informations. Hébergé sur un VPS pour un […]

  4. […] projet peut s’installer avec Docker (ou bien un hébergement classique) et se base sur WordPress pour fonctionner. L’ensemble des […]

  5. […] Resilio Sync me permet personnellement de travailler sur les projets en lien avec Mistergeek. Je l’utilise surtout pour partager les vidéos et projets de montage sur Adobe Premiere. Mais d’autres cas d’usage sont possibles. En version basique la plupart des fonctionnalités sont débloqués. Pour les avoirs toutes, il faut payer. Il reste cependant des alternatives libres, mais je elles sont selon moi, moins performantes et moins stables pour le moment. Bonne nouvelle également, Resilio Sync peut se monter très facilement en utilisant Docker. […]

  6. […] a posté un billet aujourd’hui sur son blog professionnel qui annonce que la société continue de discuter avec TikTok pour éventuel rachat […]

Laisser un commentaire

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