From c6cc5f6b5a49350b173f4aa109cfa6e4c7cd0ae0 Mon Sep 17 00:00:00 2001 From: Anas DORBANI <95044293+dorbanianas@users.noreply.github.com> Date: Sun, 31 Mar 2024 18:46:42 +0000 Subject: [PATCH] Add Makefile (#432) --- Makefile | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000000..90774a4edc --- /dev/null +++ b/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