Architecture Ghost 2025
Architecture Ghost 2025 : Config, Variables d’environnement et Logos Officiels
Ghost est construit différemment de la plupart des CMS traditionnels. Comprendre son architecture et sa configuration dès le début vous évitera 90 % des problèmes que rencontrent les nouveaux utilisateurs. Voici tout ce qu’il faut savoir, simplement et sans détour.
1. L’architecture de Ghost en quelques lignes
Ghost repose sur seulement quatre briques principales :
- Node.js comme moteur d’exécution (JavaScript côté serveur)
- Express.js comme framework web léger
- Handlebars comme moteur de templates (.hbs)
- SQLite par défaut en local, MySQL (ou MariaDB) en production
Il n’y a ni PHP, ni Apache/Nginx obligatoire, ni multitude de plugins qui ralentissent le site. Tout est dans un seul répertoire et un seul processus Node.
Résultat concret pour vous :
- un site qui charge en moins de 300 ms même avec beaucoup de trafic
- une consommation mémoire très basse (souvent < 150 Mo)
- des mises à jour en une seule commande
2. Le fichier de configuration : config.production.json
Quand vous installez Ghost (via Ghost-CLI ou manuellement), un fichier config.production.json est créé à la racine de votre installation.
Exemple minimal réel (2025) :
{
"url": "https://votre-site.fr",
"server": {
"port": 2368,
"host": "127.0.0.1"
},
"database": {
"client": "mysql",
"connection": {
"host": "localhost",
"user": "ghost",
"password": "votre-mot-de-passe-securise",
"database": "ghost_prod"
}
},
"mail": {
"transport": "SMTP",
"options": {
"service": "Mailgun",
"host": "smtp.eu.mailgun.org",
"port": 587,
"auth": {
"user": "[email protected]",
"pass": "votre-cle-mailgun"
}
}
},
"privacy": {
"useUpdateCheck": false
},
"paths": {
"contentPath": "/var/www/ghost/content"
}
}
Les sections les plus importantes pour un débutant ou une startup :
| Section | À quoi ça sert | Valeur recommandée en prod |
|---|---|---|
url |
URL publique complète de votre site | https://votre-site.fr (avec https obligatoire) |
| `database | Connexion MySQL | MySQL 8 ou MariaDB 10.6+ |
mail |
Envoi des emails (inscription, newsletters, etc.) | Mailgun, SendGrid, Amazon SES ou SMTP custom |
privacy |
Désactiver la télémétrie (recommandé RGPD) | "useUpdateCheck": false |
3. Variables d’environnement : la méthode moderne et sécurisée
Depuis Ghost 4+, il est fortement recommandé de ne plus mettre les mots de passe directement dans le json, mais d’utiliser des variables d’environnement.
Exemple avec systemd (méthode la plus courante sur un VPS) :
# /etc/systemd/system/ghost.service
[Service]
Environment=NODE_ENV=production
Environment=URL=https://votre-site.fr
Environment=database__client=mysql
Environment=database__connection__host=localhost
Environment=database__connection__user=ghost
Environment=database__connection__password=SuperSecret123!
Environment=database__connection__database=ghost_prod
Environment=mail__transport=SMTP
Environment=mail__options__service=Mailgun
Environment=mail__options__auth__user=postmaster@mg.votre-site.fr
Environment=mail__options__auth__pass=clé-mailgun
Ghost lit automatiquement toutes les variables qui commencent par database__, mail__, etc. C’est plus propre et surtout plus sécurisé (aucun mot de passe en clair dans le repo git).
4. Configuration email : la partie qui bloque 80 % des nouveaux sites
Ghost a besoin d’envoyer des emails pour :
- confirmer l’inscription des membres
- envoyer les newsletters
- réinitialiser les mots de passe staff
Si la section mail n’est pas correcte, tout fonctionne… sauf les emails.
Solutions qui marchent à coup sûr en 2025 :
| Service | Prix de départ | Configuration en 2 clics ? | Recommandé pour |
|---|---|---|---|
| Mailgun | 0 € jusqu’à 5 000 emails/mois | Oui | Startups & SMB |
| Amazon SES | 0,10 € / 1 000 emails | Oui (après sortie sandbox) | Gros volume |
| SendGrid | 0 € jusqu’à 100 emails/jour | Oui | Petits sites |
| Brevo (ex-Sendinblue) | 0 € jusqu’à 300 emails/jour | Oui | Europe / RGPD |
Exemple Mailgun fonctionnel (copier-coller) :
"mail": {
"transport": "SMTP",
"options": {
"host": "smtp.eu.mailgun.org",
"port": 587,
"secure": false,
"auth": {
"user": "[email protected]",
"pass": "votre-cle-ici"
}
}
}
5. Logos et branding officiel Ghost
Ghost met à disposition tous ses logos et guidelines gratuitement ici :
https://docs.ghost.org/logos
Ce que vous avez le droit d’utiliser :
- Logo principal (noir, blanc, couleur)
- Icône « G » seule
- Badge « Powered by Ghost »
Ce que vous ne devez pas faire :
- modifier les couleurs ou les proportions
- utiliser le logo comme si Ghost vous sponsorisait
Astuce : si vous faites un site client ou une startup, mettez simplement le petit badge « Powered by Ghost » en pied de page → ça passe partout et c’est bien vu par la communauté.
6. Checklist rapide pour une config propre en production
urlse termine par / (https://votre-site.fr/)- Base MySQL en UTF8MB4
- Variables d’environnement pour tous les mots de passe
- Service email externe configuré et testé (
ghost doctorpour vérifier) privacy.useUpdateCheck: falsesi vous êtes en Europe- Droits fichier : le dossier
content/appartient à l’utilisateur qui lance Ghost - Redémarrage automatique avec systemd ou PM2
En résumé
Ghost est volontairement minimaliste : un seul fichier de config, quatre dépendances principales, zéro bloat.
Une fois que vous avez compris que tout passe par config.production.json (ou les variables d’environnement) et que l’email est obligatoire, vous avez 95 % du travail technique derrière vous.
La plupart des utilisateurs qui galèrent pendant des jours le font parce qu’ils laissent la config par défaut ou qu’ils oublient la partie email.
Faites les choses dans cet ordre :
- Installez Ghost
- Configurez immédiatement la section
mail - Passez tout en variables d’environnement
- Lancez
ghost restart
Et votre site sera propre, rapide et prêt à scaler.