Before you begin, ensure you have the following installed on your system:
-
Python 3.11 or 3.12 (recommended)
- Download from python.org
- Verify installation:
python --version - Important: Python 3.13+ is too new and has compatibility issues. Use Python 3.12 for production deployments.
-
Node.js 20.19.0+ or 22.x.x LTS (recommended) and npm 6.0.0+
- Download from nodejs.org
- Recommended: Use nvm (Node Version Manager) for easier version management:
# Install nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash source ~/.bashrc # Install Node.js 22 LTS nvm install 22 nvm use 22 nvm alias default 22
- Verify installation:
node --version # Should show v22.x.x or v20.19.0+ npm --version
-
uv (Python package manager)
- Install via pipx:
pipx install uv
- Or follow instructions at uv documentation
- Verify installation:
uv --version
- Install via pipx:
-
Git Bash or WSL (Windows users)
- Git Bash comes with Git for Windows
- Or install WSL
- Docker Desktop
- Download from docker.com
- Required for some OpenWebUI features
- Start Docker Desktop before running services
# Navigate to openwebui directory
cd openwebui
# Create virtual environment
python -m venv .venv
# Activate virtual environment
# On Windows (Git Bash):
source .venv/Scripts/activate
# On Linux/Mac:
# source .venv/bin/activate
# Install backend dependencies
pip install -r backend/requirements.txt
# Install frontend dependencies
# Note: Use --legacy-peer-deps due to @tiptap version conflicts
npm install --legacy-peer-deps
cd ..cd langbuilder
# Create Python virtual environment with uv
uv venv
# Install backend dependencies using uv
make install_backend
# Install frontend dependencies
make install_frontend
cd ..Note: The uv venv command creates a Python virtual environment in the .venv directory. This is required before running any backend commands.
The project includes a .env file in the root directory. Review and update it with your API keys and configuration:
# Edit .env file with your favorite editor
nano .env # or code .env, vim .env, etc.The project consists of 2 main stacks that need to be started:
./start_all.shWhat it does:
- Starts OpenWebUI_CG (backend + frontend)
- Waits for initialization
- Starts LangBuilder_CG (backend + frontend)
- All services run together
Expected URLs:
- OpenWebUI Frontend: http://localhost:5175
- OpenWebUI Backend: http://localhost:8767
- LangBuilder Frontend: http://localhost:3000
- LangBuilder Backend: http://localhost:8002
./openwebui/start_openwebui.shWhat it does:
- Automatically checks and installs frontend dependencies (npm install --legacy-peer-deps)
- Automatically checks and installs backend dependencies (pip install)
- Clears ports 8767 (backend) and 5175 (frontend)
- Starts both backend and frontend services
- Works on both Linux (production) and Windows (development)
Terminal 1: OpenWebUI Backend
./openwebui/backend/start_openwebui_simple.sh- Starts the OpenWebUI backend API
- Runs on port
8767(configurable via OPEN_WEBUI_PORT) - Handles authentication, file management, and AI model interactions
Terminal 2: OpenWebUI Frontend
cd openwebui
npm run dev -- --port 5175- Starts the OpenWebUI frontend development server
- Runs on port
5175 - Provides the user interface for OpenWebUI
./langbuilder/start_langbuilder_stack.shWhat it does:
- Checks Docker Desktop status
- Kills any processes on required ports
- Starts LangBuilder backend (port 8002)
- Starts LangBuilder frontend (port 3000)
Expected output:
Starting LangBuilder Stack...
Configuration:
Backend Port: 8002
Frontend Port: 3000
OpenWebUI Port: 8767
✓ LangBuilder stack started!
Backend PID: XXXX (http://localhost:8002)
Frontend PID: YYYY (http://localhost:3000)
OpenWebUI: http://localhost:8767
Note: The script will prompt you to confirm before starting services. Type y and press Enter. Ignore docker about open-webui message
After starting all services, verify they're running correctly:
Open your browser and navigate to:
- OpenWebUI Frontend: http://localhost:5175
- LangBuilder Frontend: http://localhost:3000
- OpenWebUI Backend API: http://localhost:8767/docs
- LangBuilder Backend API: http://localhost:8002/docs
# Check if all ports are in use
netstat -ano | grep "LISTENING" | grep -E "(5175|3000|8767|8002)"
# Or use the ports individually
netstat -ano | findstr :5175
netstat -ano | findstr :3000
netstat -ano | findstr :8767
netstat -ano | findstr :8002Look for error messages in each terminal window. All services should show they're running without errors.
After verifying all services are running correctly, you need to connect OpenWebUI with LangBuilder to use LangBuilder workflows as AI providers in your chat interface.
- Open LangBuilder Frontend: http://localhost:3000
- Navigate to Settings or API Keys section
- Click Generate New API Key or Create API Key
- Copy the generated API key (save it securely, you'll need it in the next step)
- Open OpenWebUI Frontend: http://localhost:5175
- Click on your username at the bottom left corner
- Select Admin Panel
- Navigate to Settings → Connections
- Find Manage OpenAI API Connections section
- Click Add Connection
- Fill in the connection details:
- Name:
LangBuilder(or any name you prefer) - API Base URL:
http://localhost:8002/v1 - API Key: Paste the API key you generated in Step 1
- Name:
- Click Save or Add Connection
- Go back to the main OpenWebUI chat interface
- Start a new conversation
- Select the LangBuilder provider from the model dropdown
- Send a test message to verify the connection is working
Note: Make sure both LangBuilder backend (port 8002) and OpenWebUI (port 5175) are running before attempting to connect them.
For detailed troubleshooting steps, see INSTALL_STEPS.md.