version: '3.8'

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

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/_volumes/database/:/var/lib/postgresql/data
  redis:
    ports:
      - "${FORWARD_REDIS_PORT:-6379}:6379"
    env_file:
      - .env
    volumes:
      - ./_data/_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:
      - /var/run/docker.sock:/var/run/docker.sock
      - "./_data/coolify/proxy/testing-host-1:/data/coolify/proxy"
  testing-host-2:
    <<: *testing-host-base
    container_name: coolify-testing-host-2
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - "./_data/coolify/proxy/testing-host-2:/data/coolify/proxy"
  mailpit:
    image: 'axllent/mailpit:latest'
    container_name: coolify-mail
    ports:
      - '${FORWARD_MAILPIT_PORT:-1025}:1025'
      - '${FORWARD_MAILPIT_DASHBOARD_PORT:-8025}:8025'
    networks:
      - coolify

  buggregator:
    image: ghcr.io/buggregator/server:latest
    container_name: coolify-debug
    ports:
      - 8001:8000
    networks:
      - coolify
