Anas DORBANI 1 anno fa
parent
commit
c6cc5f6b5a
1 ha cambiato i file con 63 aggiunte e 0 eliminazioni
  1. 63 0
      Makefile

+ 63 - 0
Makefile

@@ -0,0 +1,63 @@
+# Makefile for OpenDevin project
+
+# Variables
+DOCKER_IMAGE = ghcr.io/opendevin/sandbox
+BACKEND_PORT = 3000
+FRONTEND_PORT = 3001
+DEFAULT_WORKSPACE_DIR = "./workspace"
+CONFIG_FILE = config.toml
+
+# Build
+build:
+	@echo "Building project..."
+	@echo "Pulling Docker image..."
+	@docker pull $(DOCKER_IMAGE)
+	@echo "Installing Python dependencies..."
+	@pip install pipenv
+	@pipenv install -v
+	@echo "Setting up frontend environment..."
+	@cd frontend && npm install
+
+# Start backend
+start-backend:
+	@echo "Starting backend..."
+	@pipenv run uvicorn opendevin.server.listen:app --port $(BACKEND_PORT)
+
+# Start frontend
+start-frontend:
+	@echo "Starting frontend..."
+	@cd frontend && npm run start -- --port $(FRONTEND_PORT)
+
+# Run the app
+run:
+	@echo "Running the app..."
+	@mkdir -p logs
+	@pipenv run nohup uvicorn opendevin.server.listen:app --port $(BACKEND_PORT) > logs/backend_$(shell date +'%Y%m%d_%H%M%S').log 2>&1 &
+	@cd frontend && npm run start -- --port $(FRONTEND_PORT)
+
+# Setup config.toml
+setup-config:
+	@echo "Setting up config.toml..."
+	@read -p "Enter your LLM API key: " llm_api_key; \
+	 echo "LLM_API_KEY=\"$$llm_api_key\"" >> $(CONFIG_FILE).tmp
+	@read -p "Enter your LLM Model name [default: gpt-4-0125-preview]: " llm_model; \
+	 echo "LLM_MODEL=\"$$llm_model\"" >> $(CONFIG_FILE).tmp
+	@read -p "Enter your workspace directory [default: $(DEFAULT_WORKSPACE_DIR)]: " workspace_dir; \
+	 workspace_dir=$${workspace_dir:-$(DEFAULT_WORKSPACE_DIR)}; \
+	 echo "WORKSPACE_DIR=\"$$workspace_dir\"" >> $(CONFIG_FILE).tmp
+	@mv $(CONFIG_FILE).tmp $(CONFIG_FILE)
+
+# Help
+help:
+	@echo "Usage: make [target]"
+	@echo "Targets:"
+	@echo "  build               - Build project, including environment setup and dependencies."
+	@echo "  start-backend       - Start the backend server for the OpenDevin project."
+	@echo "  start-frontend      - Start the frontend server for the OpenDevin project."
+	@echo "  run                 - Run the OpenDevin application, starting both backend and frontend servers."
+	@echo "                        Backend Log file will be stored in the 'logs' directory."
+	@echo "  setup-config        - Setup the configuration for OpenDevin by providing LLM API key, LLM Model name, and workspace directory."
+	@echo "  help                - Display this help message, providing information on available targets."
+
+# Phony targets
+.PHONY: install start-backend start-frontend run setup-config help