x-common:
  database: &db-environment
    # Do not remove the "&db-password" from the end of the line below, it is important
    # for Paymenter functionality.
    MYSQL_PASSWORD: &db-password "CHANGE_ME"
    MYSQL_ROOT_PASSWORD: "CHANGE_ME_TOO"

#
# ------------------------------------------------------------------------------------------
# DANGER ZONE BELOW
#
# The remainder of this file likely does not need to be changed. Please only make modifications
# below if you understand what you are doing.
#
services:
  database:
    image: mariadb:lts
    restart: always
    command: --default-authentication-plugin=mysql_native_password
    volumes:
      - "./database:/var/lib/mysql"
    environment:
      <<: *db-environment
      MYSQL_DATABASE: "paymenter"
      MYSQL_USER: "paymenter"
    networks:
      - paymenter_nw
  cache:
    image: redis:alpine
    restart: always
    networks:
      - paymenter_nw
  paymenter:
    image: ghcr.io/paymenter/paymenter:master
    restart: always
    ports:
      - "80:80"
    volumes:
      - "./:/app/var/"
      - "./storage/logs:/app/storage/logs"
      - "./storage/public:/app/storage/app/public"
      - "./themes:/app/themes"
      - "./extensions:/app/extensions"
    environment:
      DB_PASSWORD: *db-password
      APP_ENV: "production"
      CACHE_STORE: "redis"
      REDIS_HOST: "cache"
      DB_CONNECTION: "mariadb"
      DB_HOST: "database"
      DB_PORT: "3306"
      # Set to "true" to skip renewal of default themes and extensions
      # By default, default themes and extensions are always renewed on startup
      PAYMENTER_SKIP_DEFAULT: "false"
    networks:
      - paymenter_nw
networks:
  paymenter_nw:
    driver: bridge
