Ensure you have the following installed:
- Python 3.11 or 3.12 (recommended) -
python --version- Note: Python 3.13+ is too new and has compatibility issues with some dependencies. Use Python 3.12 for best compatibility.
- Recommended: Use pyenv for version management on newer Ubuntu versions (25.04+)
- Node.js 20.19.0+ or 22.x.x LTS (recommended) -
node --version- Recommended: Use nvm (Node Version Manager) for version management
- npm 6.0.0+ -
npm --version - uv (Python package manager) - Install with:
pipx install uv - Git - For cloning the repository
git clone <repository-url>
cd LangBuildercd openwebui
# Create virtual environment
python -m venv .venv
# Activate virtual environment
# On Linux/Mac:
source .venv/bin/activate
# On Windows (Git Bash):
# source .venv/Scripts/activate
# Install backend dependencies
pip install -r backend/requirements.txt
# Install frontend dependencies
npm install --legacy-peer-deps
cd ..cd langbuilder
# Create Python virtual environment with uv (REQUIRED)
uv venv
# Install backend dependencies
make install_backend
# Install frontend dependencies
make install_frontend
cd ..Important Notes:
- On Windows: Use Git Bash or WSL to run these commands
- The scripts are cross-platform and work on Windows, Linux, and macOS
- If
uv venvfails on Windows, remove.venvmanually first:rm -rf .venv
Review and update the .env file in the root directory with your API keys and configuration.
./start_all.sh./openwebui/start_openwebui.sh./langbuilder/start_langbuilder_stack.sh# Terminal 1: OpenWebUI Backend
./openwebui/backend/start_openwebui_simple.sh
# Terminal 2: OpenWebUI Frontend
cd openwebui && npm run dev -- --port 5175
# Terminal 3: LangBuilder Backend
cd langbuilder && make backend port=8002
# Terminal 4: LangBuilder Frontend
cd langbuilder && make frontend- OpenWebUI Frontend: http://localhost:5175
- OpenWebUI Backend: http://localhost:8767
- LangBuilder Frontend: http://localhost:3000
- LangBuilder Backend: http://localhost:8002
After everything is working correctly, you need to connect OpenWebUI with LangBuilder to use LangBuilder workflows as AI providers.
- 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: See table below depending on your setup
- API Key: Paste the API key you generated in Step 1
- Name:
- Click Save or Add Connection
| Setup Type | API Base URL |
|---|---|
Docker (using ./start-docker-dev.sh) |
http://langbuilder-backend:8002/v1 |
Local/Manual (using ./start_all.sh or manual) |
http://localhost:8002/v1 |
Important: When running with Docker, containers communicate through an internal network. Using
localhostinside a container refers to the container itself, not your host machine. Use the Docker service namelangbuilder-backendinstead.
- 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.
If you get this error when running make backend:
cd langbuilder
uv venv
make install_backendOn Windows, if uv venv fails to replace an existing virtual environment:
cd langbuilder
# Remove the old virtual environment
rm -rf .venv
# Create a new one
uv venv
make install_backendThis means the backend dependencies are not installed:
cd langbuilder
uv venv
make install_backendCheck if all ports are running:
# Using ss (recommended)
ss -tlnp | grep -E ':(3000|8002|8767|5175)'
# Or check each port individually
for port in 3000:LangBuilder-Frontend 8002:LangBuilder-Backend 8767:OpenWebUI-Backend 5175:OpenWebUI-Frontend; do
p=$(echo $port | cut -d: -f1)
name=$(echo $port | cut -d: -f2)
echo -n "$name (port $p): "
ss -tlnp | grep ":$p " > /dev/null && echo "✓ Running" || echo "✗ Not running"
doneInstall uv using pipx:
pipx install uvOr follow the instructions at: https://github.com/astral-sh/uv