services:
  morphbox-vm:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: morphbox-vm
    hostname: morphbox-vm
    ports:
      - "2222:22"  # SSH port mapping
    volumes:
      # Persist Claude authentication data
      - claude-config:/home/morphbox/.config/claude-code
      # Mount USER'S CURRENT DIRECTORY as workspace
      - ${USER_WORKSPACE:-./workspace}:/workspace
      # Mount morphbox project if it exists
      - ${MORPHBOX_PROJECT:-./}:/workspace/morphbox
      # Persist bash history and other user data
      - claude-home:/home/morphbox
      # Persist Claude updates (prevents re-downloads)
      - claude-npm-cache:/usr/local/lib/node_modules
      - claude-npm-bin:/usr/local/bin
    environment:
      - TERM=xterm-256color
      - COLORTERM=truecolor
      - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}
    restart: unless-stopped
    networks:
      - morphbox-network

networks:
  morphbox-network:
    driver: bridge

volumes:
  claude-config:
    driver: local
  claude-home:
    driver: local
  # Persist Claude updates
  claude-npm-cache:
    driver: local
  claude-npm-bin:
    driver: local