À 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
- Créez le compte administrateur sur https://journal.mondomaine.fr/ghost
- 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