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

  • url se 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 doctor pour vérifier)
  • privacy.useUpdateCheck: false si 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 :

  1. Installez Ghost
  2. Configurez immédiatement la section mail
  3. Passez tout en variables d’environnement
  4. Lancez ghost restart

Et votre site sera propre, rapide et prêt à scaler.