L'hébergement multi-tenant Ghost permet de gérer plusieurs sites clients depuis un seul serveur. Avec Docker et Traefik, chaque instance est isolée, sécurisée, et consomme moins de 150 Mo de RAM. Voici l'architecture complète.

Le concept

Chaque client dispose de sa propre instance Ghost avec :

  • Sa propre base de données MySQL
  • Son propre nom de domaine avec SSL automatique
  • Son propre espace de stockage pour les médias
  • Son propre accès admin isolé

Tout tourne sur un seul VPS, orchestré par Docker Compose et routé par Traefik.

Architecture Docker

Le docker-compose.yml suit un pattern simple : un service Traefik, un MySQL partagé, et un service Ghost par client :

services:
  traefik:
    # ... config reverse proxy
  mysql:
    # ... base partagée
  ghost-client-a:
    image: ghost:5-alpine
    environment:
      url: https://blog.client-a.fr
      database__connection__database: ghost_client_a
    labels:
      - traefik.http.routers.client-a.rule=Host(\`blog.client-a.fr\`)
  ghost-client-b:
    image: ghost:5-alpine
    environment:
      url: https://blog.client-b.fr
      database__connection__database: ghost_client_b
    labels:
      - traefik.http.routers.client-b.rule=Host(\`blog.client-b.fr\`)

Dimensionnement

Sur un VPS typique (6 vCPU, 12 Go RAM) :

  • Traefik : ~20 Mo
  • MySQL : ~400-500 Mo
  • Chaque instance Ghost : ~100-150 Mo

Calcul : 12 Go - 500 Mo (MySQL) - 20 Mo (Traefik) = ~11.5 Go disponibles. Soit environ 75 instances Ghost théoriques, ou confortablement 20-30 en production avec marge.

Ajouter un nouveau client

La procédure est standardisée :

  1. Créer la base de données et l'utilisateur MySQL
  2. Ajouter le service Ghost dans docker-compose.yml
  3. Configurer le DNS (enregistrement A vers le VPS)
  4. Lancer le conteneur : docker compose up -d ghost-nouveau-client
  5. Traefik détecte automatiquement le nouveau service et obtient le certificat SSL

Temps total : environ 5 minutes une fois la procédure rodée.

Isolation et sécurité

Chaque instance Ghost :

  • A sa propre base de données — impossible d'accéder aux données d'un autre client
  • Tourne dans son propre conteneur Docker — isolation des processus
  • A son propre volume pour les fichiers uploadés
  • N'est accessible que via Traefik — aucun port exposé directement

Monitoring

Avec Netdata et Uptime Kuma (eux aussi en Docker), vous surveillez :

  • La RAM et CPU de chaque conteneur
  • La disponibilité de chaque site client
  • Les alertes en cas de panne ou de surcharge

Facturation et modèle économique

Un VPS à 10-15€/mois hébergeant 10 clients Ghost à 15-30€/mois chacun représente une marge confortable. L'auto-hébergement devient un service à valeur ajoutée que vous proposez à vos clients, plutôt qu'un coût.

Conclusion

Le multi-tenant Ghost est une architecture mature et économique. Docker fournit l'isolation, Traefik gère le routage et le SSL, et Ghost offre une interface éditoriale que vos clients peuvent utiliser sans formation. C'est la base d'une offre d'hébergement managé rentable.