version: '3.3'

services:
  blog:
    image: ghost:5
    container_name: ghost
    restart: always
    ports:
      - 8080:2368
    volumes:
      - ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/ghost/content:/var/lib/ghost/content
    environment:
      # see https://ghost.org/docs/config/#configuration-options
      database__client: ${DB_CLIENT:-mysql}
      database__connection__host: ${DB_HOST:-database}
      database__connection__user: ${DB_USER:-ghost}
      database__connection__password: ${DB_ROOT_PASS:-DatabasePassword1234}
      database__connection__database: ${DB_NAME:-ghost}
      # url: https://blog.example.com # change this for production
      NODE_ENV: production
      #mail__transport: SMTP
      #mail__options__host: ${SMTP_HOST:-smtp.google.com}
      #mail__options__port: ${SMTP_PORT:-587}
      #mail__options__auth__user: ${SMTP_USER:-ghost@example.com}
      #mail__options__auth__pass: ${SMTP_PASS:-SMTPPassword}
      #mail__from: ${SMTP_MAIL_FROM:-Ghost}
    #networks:
    #  - proxy      
    #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:
      - ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/ghost/mysql:/var/lib/mysql
    expose:
      - 3306
    environment:
      MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASS:-DatabaseRootPassword54321}
      MYSQL_DATABASE: ${DB_NAME:-ghost}
      MYSQL_USER: ${DB_USER:-ghost}
      MYSQL_PASSWORD: ${DB_USER_PASS:-DatabasePassword1234}
    #networks:
    #  - proxy
    
#networks:
#  proxy:
#    external: true