name: medassist-dev

services:
  backend-dev:
    image: node:22-slim
    working_dir: /app
    command: sh -c "chown -R node:node /app/node_modules /app/data && su node -c 'npm install && npm run dev'"
    volumes:
      - ./backend:/app
      - backend_node_modules:/app/node_modules
      - ./data:/app/data
    env_file:
      - .env
    environment:
      - NODE_ENV=development
      - DATA_DIR=/app/data
      - RATE_LIMIT_MAX=1000
    ports:
      - "3000:3000"
    security_opt:
      - no-new-privileges:true
    healthcheck:
      test: ["CMD-SHELL", "node -e \"fetch('http://localhost:3000/health').then(r => process.exit(r.ok ? 0 : 1)).catch(() => process.exit(1))\""]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s

  frontend-dev:
    image: node:22-slim
    working_dir: /app
    command: sh -c "chown -R node:node /app/node_modules && su node -c 'npm install && npm run dev -- --host --port 5173'"
    volumes:
      - ./frontend:/app
      - frontend_node_modules:/app/node_modules
    env_file:
      - .env
    environment:
      - NODE_ENV=development
      - BACKEND_URL=http://backend-dev:3000
    ports:
      - "5173:5173"
    security_opt:
      - no-new-privileges:true
    depends_on:
      - backend-dev

volumes:
  backend_node_modules:
  frontend_node_modules:
