version: '3.9'

services:

  ghost:
    image: ghost:5.49.0
    container_name: ghost
    depends_on:
    - ghostdb
    restart: unless-stopped
    ports:
      - ${APP_PORT}:2368
    environment:
      # see https://ghost.org/docs/config/#configuration-options
      database__client: mysql
      database__connection__host: ghostdb
      database__connection__user: tipi
      database__connection__password: ${GHOST_DATABASE_PASSWORD}
      database__connection__database: ghosttipi
      url: http://localhost:${APP_PORT}
    volumes:
      - ${APP_DATA_DIR}/content:/var/lib/ghost/content
    networks:
      - tipi_main_network
    labels:
      traefik.enable: ${APP_EXPOSED}
      traefik.http.routers.ghost.rule: Host(`${APP_DOMAIN}`)
      traefik.http.routers.ghost.entrypoints: websecure
      traefik.http.routers.ghost.service: ghost
      traefik.http.routers.ghost.tls.certresolver: myresolver
      traefik.http.services.ghost.loadbalancer.server.port: 2368

  ghostdb:
    container_name: ghostdb
    image: mariadb:latest
    environment:
      MYSQL_ROOT_PASSWORD: ${GHOST_DATABASE_PASSWORD}
      MYSQL_USER: tipi
      MYSQL_PASSWORD: ${GHOST_DATABASE_PASSWORD}
      MYSQL_DATABASE: ghosttipi
    volumes:
      - ${APP_DATA_DIR}/data/db:/var/lib/mysql
    networks:
      - tipi_main_network