Rayon Sites et blogs

Ghost

Un blog moderne et rapide, avec newsletter.

Ajouter à mon serveurGénérer le docker-composeDocumentation officielle

À quoi ça sert ?

Ghost est une plateforme de blog élégante et rapide, pensée pour l'écriture. Elle intègre newsletter et abonnements payants : idéal pour un média indépendant.

Pour qui ?

Ceux qui veulent écrire et publier, sans se battre avec des extensions.

Après l'installation

  1. Créez le compte administrateur sur https://journal.mondomaine.fr/ghost
  2. Pour envoyer la newsletter, configurez un service d’email (voir la documentation).

Le docker-compose

Exemple derrière Traefik, avec une explication sur chaque ligne. Pour l'adapter à votre cas (Nginx Proxy Manager, port local…), utilisez le générateur.

# docker-compose.yml : Ghost
# Ce fichier décrit les « conteneurs » à lancer : chaque conteneur est une petite
# boîte isolée qui contient un programme. Lancez-le avec : docker compose up -d
services:
  # Conteneur principal : l'application Ghost
  ghost:
    # Le programme à télécharger (l'« image »), avec sa version
    image: ghost:6-alpine
    container_name: ghost
    # Redémarre tout seul après une panne ou un redémarrage du serveur
    restart: unless-stopped
    # Démarre ces conteneurs avant celui-ci
    depends_on:
      - db
    # Réglages de l'application. Les valeurs ${...} viennent du fichier .env
    environment:
      url: https://journal.mondomaine.fr
      NODE_ENV: production
      database__client: mysql
      database__connection__host: db
      database__connection__user: ghost
      database__connection__password: "${DB_PASSWORD}"
      database__connection__database: ghost
      TZ: Europe/Paris
    # Dossiers du serveur partagés avec le conteneur (dossier_serveur:dossier_conteneur).
    # Vos données sont stockées ici : ce sont ces dossiers qu'il faut sauvegarder.
    volumes:
      - ./content:/var/lib/ghost/content
    # Réseau partagé avec le reverse proxy pour qu'il puisse joindre l'application
    networks:
      - traefik
      - default
    # Indique à Traefik de publier l'application sur https://journal.mondomaine.fr avec un certificat HTTPS
    labels:
      - traefik.enable=true
      - traefik.http.routers.ghost.rule=Host(`journal.mondomaine.fr`)
      - traefik.http.routers.ghost.entrypoints=websecure
      - traefik.http.routers.ghost.tls.certresolver=letsencrypt
      - traefik.http.services.ghost.loadbalancer.server.port=2368
      - traefik.docker.network=traefik

  # Conteneur annexe « db » (utilisé par l'application, pas accessible de l'extérieur)
  db:
    # Le programme à télécharger (l'« image »), avec sa version
    image: mysql:8.4
    container_name: ghost-db
    # Redémarre tout seul après une panne ou un redémarrage du serveur
    restart: unless-stopped
    # Réglages de l'application. Les valeurs ${...} viennent du fichier .env
    environment:
      MYSQL_ROOT_PASSWORD: "${DB_ROOT_PASSWORD}"
      MYSQL_DATABASE: ghost
      MYSQL_USER: ghost
      MYSQL_PASSWORD: "${DB_PASSWORD}"
    # Dossiers du serveur partagés avec le conteneur (dossier_serveur:dossier_conteneur).
    # Vos données sont stockées ici : ce sont ces dossiers qu'il faut sauvegarder.
    volumes:
      - ./db:/var/lib/mysql
# Le réseau du reverse proxy existe déjà : on s'y raccroche

networks:
  traefik:
    external: true