Héberger Ghost CMS sur Clever-Cloud avec MySQL et Cellar (S3)
Voici un tutoriel complet pour héberger une instance Ghost sur Clever Cloud en utilisant MySQL pour la base de données et Cellar pour le stockage des images

Article publié le 04/06/2025, dernière mise à jour le 04/06/2025
📦 Prérequis
Avant de commencer, assurez-vous d’avoir :
- Un compte Clever Cloud : clever-cloud.com
- Votre compte Github lié à votre compte Clever-Cloud
- Git installé sur votre machine (évidemment)
👻 Créer une instance Ghost locale
Pour commencer, on va créer une instance Ghost directement sur notre machine. Il faut d’abord installer le CLI :
npm install ghost-cli@latest -g
Puis vous allez créer un dossier pour votre projet, et utiliser le CLI pour initialiser Ghost :
mkdir ghost-app
cd ghost-app
ghost install local
📁 Préparer le dépôt GitHub
Créez d’abord un dépôt sur GitHub, et récupérez l’url .git
du dépôt dans l’interface. Ensuite il ne vous reste plus qu’à initialiser Git dans votre dossier local :
git init
git remote add origin https://github.com/...
⚙️ Créer le fichier de configuration
Ghost utilise un fichier config.production.json
. Comme Clever Cloud fournit les secrets via des variables d’environnement, créez un template :
config.production.template.json
{
"url": "${URL}",
"cdn": "https://${CELLAR_ADDON_HOST}/${CELLAR_BUCKET}",
"server": {
"host": "0.0.0.0",
"port": 8080
},
"database": {
"client": "mysql",
"connection": {
"host": "${MYSQL_ADDON_HOST}",
"user": "${MYSQL_ADDON_USER}",
"password": "${MYSQL_ADDON_PASSWORD}",
"database": "${MYSQL_ADDON_DB}"
}
},
"storage": {
"active": "s3",
"s3": {
"accessKeyId": "${CELLAR_ADDON_KEY_ID}",
"secretAccessKey": "${CELLAR_ADDON_KEY_SECRET}",
"region": "us-east-1",
"bucket": "${CELLAR_BUCKET}",
"endpoint": "https://${CELLAR_ADDON_HOST}",
"assetHost": "https://${CELLAR_ADDON_HOST}/${CELLAR_BUCKET}",
"forcePathStyle": true
}
},
"paths": {
"contentPath": "content/"
}
}
Ajoutez un script dans package.json
"postinstall": "cd current && npm install --legacy-peer-deps && cd .. && envsubst < config.production.template.json > config.production.json"
La commande
postinstall
est exécutée directement après npm install
Ici elle va permettre d’installer toutes les dépendances nécessaires à ghost (non installées à partir du package.json
à la racine), et de générer le fichier de configuration à partir du template précédent et des variables d’environnement !
🧩 Installer l’adaptateur S3
Dans le répertoire du projet, installez l’adaptateur S3 compatible Ghost :
npm install ghost-storage-adapter-s3 --save
Créez le fichier content/adapters/storage/s3.js
:
const S3Storage = require('ghost-storage-adapter-s3');
module.exports = S3Storage;
🛠️ Créer l'application sur Clever Cloud
- Connectez vous à votre console Clever Cloud.
- Créez une nouvelle application à partir d’un dépôt Github
- Sélectionnez votre dépôt Github dans la liste
- Donnez un nom à l'application (ex:
ghost-app
).
🗄️ Ajouter les add-ons
Dans la section Add-ons :
- Ajoutez un add-on MySQL.
- Ajoutez un add-on Cellar (stockage S3-compatible).
Une fois ajoutés, vous aurez accès aux variables d’environnement suivantes :
MYSQL_ADDON_HOST
,MYSQL_ADDON_USER
, etc.CELLAR_ADDON_KEY_ID
,CELLAR_ADDON_HOST
, etc.
Une fois l’add-on Cellar déployé, il faudra créer un bucket avec le nom que vous souhaitez.
Ensuite, il faudra ajouter le nom de votre bucket directement dans les variables d’environnement de votre application, en l’appelant CELLAR_BUCKET
!
Il faudra également ajouter le domaine de votre application dans une variable URL
!
🚀 Déployer
Il ne vous reste plus qu’à ajouter tous vos fichiers à votre dépôt Git, à commit et push tout ça :
git add .
git commit -m "Initial Ghost setup for Clever Cloud"
git push origin main
Clever Cloud exécutera automatiquement le build et lancera Ghost sur le port 8080.
✅ Vérification
- Accédez à votre URL Clever Cloud (ou domaine personnalisé).
- Uploadez une image via l’admin Ghost.
- Vérifiez que l’URL de l’image pointe bien vers Cellar, pas AWS.
Aucun commentaire pour l'instant