Open WebUI Setup

Install and Build

Manual Install w/o Ollama locally

For Linux/MacOS

bash location/setup/script/conda-start.sh

Some machines may not have enough memory to run conda-start.sh script. Use a newer laptop with at least (16GB unified memory).

conda-start.sh references $HOME/bin/opt/anaconda3 for the conda profile. Your conda profile might be in /opt/anaconda3 (apple silicon). You can modify conda-start.sh to change the path.

Another nuance when using the conda-start.sh script is that when running the conda-start.sh with python3.11, you will get an error stating that the _lzma module couldn't be found. Weirdly, when you run the conda-start.sh when using python 3.12 it did not complain. To solve the issue with python 3.11 you should brew installed xz (https://formulae.brew.sh/formula/xz) and the script will work.

For Windows

copy .env.example .env

npm install
npm run build

cd .\backend

# Optional: To install using Conda as your development environment, follow these instructions:
# Create and activate a Conda environment
conda create --name open-webui-env python=3.11
conda activate open-webui-env

pip install -r requirements.txt -U

start.bat

Page should be up at http://localhost:8080
Avoid using npm run dev or you'll get a message that the backend did not build.
If you encounter issues, see our Detailed Install Notes.

Using Docker w/ Ollama

Make sure you have docker and Ollama installed. Also, follow this guide to expose Ollama server. Then run this command:

docker run -d -p 8080:8080 -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always [IMAGE]

Add pipelines feature

Check out this quick-start guide and see our Google Cloud cost comparisons and deployment steps.
Since Ollama is NOT needed with external pipelines, we're preparing
comment-out.py to comment out Ollama, and uncomment.py to restore Olama.

Other Installation Methods

Checkout Open WebUI official documentation here.

Building Branches Locally

Important: To avoid failed "Actions" when contributing

1. Use ModelEarthBranch: Work in the ModelEarthBranch when introducing new features.
Avoid editing the main branch to avoid a build_release error in the Actions tab - our cleaner Actions tab.
We change the "version" number in package.json (and package-lock.json ?) whenever we add to the main branch.

2. Frontend Formatting:

A. Before pushing changes to the frontend code, run to ensure proper formatting:

npm run format
npm run i18n:parse

B. Add your own tests in the cypress/e2e/ folder and start the server.
Run the following to execute the test suites. Ensure all tests pass without errors.

npx cypress run

Don't use npm run dev it only hosts the frontend and you'll get a message that the backend did not build.

3. Backend Formatting:
For any backend changes, run to maintain code formatting.
Add any necessary tests to ensure your code changes are covered.

npm run format:backend

4. Pull Requests Merging:
After creating a pull request, fill in the template and wait for all workflows to execute.
Address any issues if a workflow fails before merging into the main branch.

Note: We removed Ollama and chat.cy.ts in the actions. changelog.