version: '3.3'

services:
  blog:
    image: ghost:5
    container_name: ghost
    restart: always
    ports:
      - 8080:2368
    volumes:
      - /mnt/docker-volumes/ghost/content:/var/lib/ghost/content
    environment:
      # see https://ghost.org/docs/config/#configuration-options
      database__client: mysql
      database__connection__host: database
      database__connection__user: root
      database__connection__password: MyStrongDatabasePassword
      database__connection__database: ghost
      url: https://blog.example.com # change this
      NODE_ENV: production
      #mail__transport: SMTP
      #mail__options__host: smtp.gmail.com
      #mail__options__port: 587
      #mail__options__auth__user: blog@example.com
      #mail__options__auth__pass: MyStrongSmtpLoginPassword
      #mail__from: Ghost Blog <blog@example.com>
    #labels:
    #  - traefik.enable=true
    #  - traefik.http.routers.ghost.rule=Host(`blog.example.com`)
    #  - traefik.http.services.ghost.loadbalancer.server.port=2368
    #  - traefik.docker.network=proxy
    #  # Part for local lan services only
    #  #- traefik.http.routers.ghost.middlewares=external-secure@file

  database:
    image: mysql:8
    container_name: ghost_db
    restart: always
    volumes:
      - /mnt/docker-volumes/ghost/mysql:/var/lib/mysql
    #ports:
    #  - "13928:3306"
    environment:
      MYSQL_ROOT_PASSWORD: AnotherStrongDatabasePasswordForRootUser
      MYSQL_DATABASE: ghost
      MYSQL_USER: user
      MYSQL_PASSWORD: MyStrongDatabasePassword