# Generated by Shiplet — Vite/React + SWC + TS
# Runtime: docker  Node: 22
# Dev server auto-reloads on save via HMR
#
# Usage:
#   shiplet up -d                 Start containers
#   shiplet pnpm install        Install dependencies
#   shiplet pnpm run dev        Start Vite dev server
#   shiplet pnpm run build      Production build

name: shiplet-react-vite

services:
  app:
    build:
      context: .
      dockerfile: .shiplet/Dockerfile
      args:
        NODE_VERSION: "22"
        PACKAGE_MANAGER: "pnpm"
        TZ: "UTC"
    image: shiplet-react-vite/app
    extra_hosts:
      - "host.docker.internal:host-gateway"
    ports:
      - "${APP_PORT:-5173}:5173"
    volumes:
      - ".:/var/www/html"
      - "shiplet_node_modules:/var/www/html/node_modules"
    networks:
      - shiplet
    environment:
      TZ: "${TZ:-UTC}"
      NODE_ENV: "${NODE_ENV:-development}"
      # Vite HMR — must know the host so the browser can connect
      VITE_HMR_HOST: "localhost"
      VITE_HMR_PORT: "5173"
    depends_on:
      - redis
    restart: unless-stopped
    tty: true
    stdin_open: true
    # Override with your actual dev command:
    command: pnpm run dev

  redis:
    image: "redis:7-alpine"
    ports:
      - "${REDIS_PORT:-6379}:6379"
    networks:
      - shiplet
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 5s
      retries: 10
volumes:
  shiplet_node_modules:
    driver: local


networks:
  shiplet:
    driver: bridge
