Aisle Websites & blogs

Ghost

A modern, fast blog with a newsletter.

Add to my serverdocker-compose generator (French)Compare alternatives (French)Official documentation

What is it for?

Ghost is an elegant, fast blogging platform built for writing. Newsletter and paid subscriptions are built in: ideal for an independent publication.

Who is it for?

People who want to write and publish without fighting plugins.

After installing

  1. Create the administrator account at https://journal.mydomain.com/ghost
  2. To send the newsletter, set up an email service (see the documentation).

The docker-compose

Example behind Traefik. To adapt it (Nginx Proxy Manager, local port…) with a line-by-line explanation, use the generator (in French).

# docker-compose.yml : Ghost
services:
  ghost:
    image: ghost:6-alpine
    container_name: ghost
    restart: unless-stopped
    depends_on:
      - db
    environment:
      url: https://journal.mydomain.com
      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
    volumes:
      - ./content:/var/lib/ghost/content
    networks:
      - traefik
      - default
    labels:
      - traefik.enable=true
      - traefik.http.routers.ghost.rule=Host(`journal.mydomain.com`)
      - 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

  db:
    image: mysql:8.4
    container_name: ghost-db
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: "${DB_ROOT_PASSWORD}"
      MYSQL_DATABASE: ghost
      MYSQL_USER: ghost
      MYSQL_PASSWORD: "${DB_PASSWORD}"
    volumes:
      - ./db:/var/lib/mysql

networks:
  traefik:
    external: true