version: "3.8"

x-testing-host: &testing-host-base
  build:
    dockerfile: Dockerfile
    context: ./docker/testing-host
  networks:
    - coolify
  init: true

services:
  coolify:
    build:
      context: .
      dockerfile: ./docker/dev-ssu/Dockerfile
    ports:
      - "${APP_PORT:-8000}:80"
    environment:
      PUID: "${USERID:-1000}"
      PGID: "${GROUPID:-1000}"
      SSL_MODE: "off"
      AUTORUN_LARAVEL_STORAGE_LINK: "false"
      AUTORUN_LARAVEL_MIGRATION: "false"
    volumes:
      - .:/var/www/html/:cached
  postgres:
    ports:
      - "${FORWARD_DB_PORT:-5432}:5432"
    env_file:
      - .env
    environment:
      POSTGRES_USER: "${DB_USERNAME:-coolify}"
      POSTGRES_PASSWORD: "${DB_PASSWORD:-password}"
      POSTGRES_DB: "${DB_DATABASE:-coolify}"
      POSTGRES_HOST_AUTH_METHOD: "trust"
    volumes:
      - /data/coolify/_volumes/database/:/var/lib/postgresql/data
  redis:
    ports:
      - "${FORWARD_REDIS_PORT:-6379}:6379"
    env_file:
      - .env
    volumes:
      - /data/coolify/_volumes/redis/:/data
  vite:
    image: node:19
    working_dir: /var/www/html
    ports:
      - "${VITE_PORT:-5173}:${VITE_PORT:-5173}"
    volumes:
      - .:/var/www/html:cached
    command: sh -c "npm install && npm run dev"
  testing-host:
    <<: *testing-host-base
    container_name: coolify-testing-host
    volumes:
      - /:/host
      - /var/run/docker.sock:/var/run/docker.sock
      - /data/coolify/:/data/coolify
  mailpit:
    image: "axllent/mailpit:latest"
    container_name: coolify-mail
    ports:
      - "${FORWARD_MAILPIT_PORT:-1025}:1025"
      - "${FORWARD_MAILPIT_DASHBOARD_PORT:-8025}:8025"
    networks:
      - coolify
  minio:
    image: minio/minio:latest
    container_name: coolify-minio
    command: server /data --console-address ":9001"
    ports:
      - "${FORWARD_MINIO_PORT:-9000}:9000"
      - "${FORWARD_MINIO_PORT_CONSOLE:-9001}:9001"
    environment:
      MINIO_ACCESS_KEY: "${MINIO_ACCESS_KEY:-minioadmin}"
      MINIO_SECRET_KEY: "${MINIO_SECRET_KEY:-minioadmin}"
    volumes:
      - /data/coolify/_volumes/minio/:/data
    networks:
      - coolify