mirror of
https://github.com/arc53/DocsGPT.git
synced 2025-11-29 08:33:20 +00:00
163 lines
6.5 KiB
Plaintext
163 lines
6.5 KiB
Plaintext
---
|
|
title: Setting Up a Development Environment
|
|
description: Guide to setting up a development environment for DocsGPT, including backend and frontend setup.
|
|
---
|
|
|
|
# Setting Up a Development Environment
|
|
|
|
This guide will walk you through setting up a development environment for DocsGPT. This setup allows you to modify and test the application's backend and frontend components.
|
|
|
|
## 1. Spin Up MongoDB and Redis
|
|
|
|
For development purposes, you can quickly start MongoDB and Redis containers, which are the primary database and caching systems used by DocsGPT. We provide a dedicated Docker Compose file, `docker-compose-dev.yaml`, located in the `deployment` directory, that includes only these essential services.
|
|
|
|
You can find the `docker-compose-dev.yaml` file [here](https://github.com/arc53/DocsGPT/blob/main/deployment/docker-compose-dev.yaml).
|
|
|
|
**Steps to start MongoDB and Redis:**
|
|
|
|
1. Navigate to the root directory of your DocsGPT repository in your terminal.
|
|
|
|
2. Run the following commands to build and start the containers defined in `docker-compose-dev.yaml`:
|
|
|
|
```bash
|
|
docker compose -f deployment/docker-compose-dev.yaml build
|
|
docker compose -f deployment/docker-compose-dev.yaml up -d
|
|
```
|
|
|
|
These commands will start MongoDB and Redis in detached mode, running in the background.
|
|
|
|
## 2. Run the Backend
|
|
|
|
To run the DocsGPT backend locally, you'll need to set up a Python environment and install the necessary dependencies.
|
|
|
|
**Prerequisites:**
|
|
|
|
* **Python 3.12:** Ensure you have Python 3.12 installed on your system. You can check your Python version by running `python --version` or `python3 --version` in your terminal.
|
|
|
|
**Steps to run the backend:**
|
|
|
|
1. **Configure Environment Variables:**
|
|
|
|
DocsGPT backend settings are configured using environment variables. You can set these either in a `.env` file or directly in the `settings.py` file. For a comprehensive overview of all settings, please refer to the [DocsGPT Settings Guide](/Deploying/DocsGPT-Settings).
|
|
|
|
* **Option 1: Using a `.env` file (Recommended):**
|
|
* If you haven't already, create a file named `.env` in the **root directory** of your DocsGPT project.
|
|
* Modify the `.env` file to adjust settings as needed. You can find a comprehensive list of configurable options in [`application/core/settings.py`](application/core/settings.py).
|
|
|
|
* **Option 2: Exporting Environment Variables:**
|
|
* Alternatively, you can export environment variables directly in your terminal. However, using a `.env` file is generally more organized for development.
|
|
|
|
2. **Create a Python Virtual Environment (Optional but Recommended):**
|
|
|
|
Using a virtual environment isolates project dependencies and avoids conflicts with system-wide Python packages.
|
|
|
|
* **macOS and Linux:**
|
|
|
|
```bash
|
|
python -m venv venv
|
|
. venv/bin/activate
|
|
```
|
|
|
|
* **Windows:**
|
|
|
|
```bash
|
|
python -m venv venv
|
|
venv/Scripts/activate
|
|
```
|
|
|
|
3. **Download Embedding Model:**
|
|
|
|
The backend requires an embedding model. Download the `mpnet-base-v2` model and place it in the `model/` directory within the project root. You can use the following script:
|
|
|
|
```bash
|
|
wget https://d3dg1063dc54p9.cloudfront.net/models/embeddings/mpnet-base-v2.zip
|
|
unzip mpnet-base-v2.zip -d model
|
|
rm mpnet-base-v2.zip
|
|
```
|
|
|
|
Alternatively, you can manually download the zip file from [here](https://d3dg1063dc54p9.cloudfront.net/models/embeddings/mpnet-base-v2.zip), unzip it, and place the extracted folder in `model/`.
|
|
|
|
4. **Install Backend Dependencies:**
|
|
|
|
Navigate to the root of your DocsGPT repository and install the required Python packages:
|
|
|
|
```bash
|
|
pip install -r application/requirements.txt
|
|
```
|
|
|
|
5. **Run the Flask App:**
|
|
|
|
Start the Flask backend application:
|
|
|
|
```bash
|
|
flask --app application/app.py run --host=0.0.0.0 --port=7091
|
|
```
|
|
|
|
This command will launch the backend server, making it accessible on `http://localhost:7091`.
|
|
|
|
6. **Start the Celery Worker:**
|
|
|
|
Open a new terminal window (and activate your virtual environment if you used one). Start the Celery worker to handle background tasks:
|
|
|
|
```bash
|
|
celery -A application.app.celery worker -l INFO
|
|
```
|
|
|
|
This command will start the Celery worker, which processes tasks such as document parsing and vector embedding.
|
|
|
|
**Running in Debugger (VSCode):**
|
|
|
|
For easier debugging, you can launch the Flask app and Celery worker directly from VSCode's debugger.
|
|
|
|
* Press <kbd>Shift</kbd> + <kbd>Cmd</kbd> + <kbd>D</kbd> (macOS) or <kbd>Shift</kbd> + <kbd>Windows</kbd> + <kbd>D</kbd> (Windows) to open the Run and Debug view.
|
|
* You should see configurations named "Flask" and "Celery". Select the desired configuration and click the "Start Debugging" button (green play icon).
|
|
|
|
## 3. Start the Frontend
|
|
|
|
To run the DocsGPT frontend locally, you'll need Node.js and npm (Node Package Manager).
|
|
|
|
**Prerequisites:**
|
|
|
|
* **Node.js version 16 or higher:** Ensure you have Node.js version 16 or greater installed. You can check your Node.js version by running `node -v` in your terminal. npm is usually bundled with Node.js.
|
|
|
|
**Steps to start the frontend:**
|
|
|
|
1. **Navigate to the Frontend Directory:**
|
|
|
|
In your terminal, change the current directory to the `frontend` folder within your DocsGPT repository:
|
|
|
|
```bash
|
|
cd frontend
|
|
```
|
|
|
|
2. **Install Global Packages (If Needed):**
|
|
|
|
If you don't have `husky` and `vite` installed globally, you can install them:
|
|
|
|
```bash
|
|
npm install husky -g
|
|
npm install vite -g
|
|
```
|
|
You can skip this step if you already have these packages installed or prefer to use local installations (though global installation simplifies running the commands in this guide).
|
|
|
|
3. **Install Frontend Dependencies:**
|
|
|
|
Install the project's frontend dependencies using npm:
|
|
|
|
```bash
|
|
npm install --include=dev
|
|
```
|
|
|
|
This command reads the `package.json` file in the `frontend` directory and installs all listed dependencies, including development dependencies.
|
|
|
|
4. **Run the Frontend App:**
|
|
|
|
Start the frontend development server:
|
|
|
|
```bash
|
|
npm run dev
|
|
```
|
|
|
|
This command will start the Vite development server. The frontend application will typically be accessible at [http://localhost:5173/](http://localhost:5173/). The terminal will display the exact URL where the frontend is running.
|
|
|
|
With both the backend and frontend running, you should now have a fully functional DocsGPT development environment. You can access the application in your browser at [http://localhost:5173/](http://localhost:5173/) and start developing! |