feat: Improved instructions for building with python or from source #6102

Closed
opened 2025-11-11 16:44:57 -06:00 by GiteaMirror · 6 comments
Owner

Originally created by @Ivan2getdmodelz on GitHub (Aug 14, 2025).

Check Existing Issues

  • I have searched the existing issues and discussions.

Problem Description

In using via the uv installation method, upon launching the open-webui, it pulls the python 3.11 elements down into the virtual environment for runtime. This is undesirable for a completely disconnected installation. I've attempted creating a venv from uv independently, however when pip intalling in a venv, it pulls down approximately 9G of items.

Desired Solution you'd like

Please update the requirements.txt to provide that explicitly identifies the bare minimum dependencies needed for installation.

Alternatives Considered

No response

Additional Context

No response

Originally created by @Ivan2getdmodelz on GitHub (Aug 14, 2025). ### Check Existing Issues - [x] I have searched the existing issues and discussions. ### Problem Description In using via the uv installation method, upon launching the open-webui, it pulls the python 3.11 elements down into the virtual environment for runtime. This is undesirable for a completely disconnected installation. I've attempted creating a venv from uv independently, however when pip intalling in a venv, it pulls down approximately 9G of items. ### Desired Solution you'd like Please update the requirements.txt to provide that explicitly identifies the bare minimum dependencies needed for installation. ### Alternatives Considered _No response_ ### Additional Context _No response_
Author
Owner

@Classic298 commented on GitHub (Aug 14, 2025):

this is the bare minimum needed for installation - the cuda drivers are very large and take gigabytes of storage, and so do all the many many other dependencies.

You say you checked for existing discussions and issues - did you? This is a duplicate issue. The physical size of open webui has been discussed many times and ideas of how to optionally reduce it (by e.g. having a more minimal version) have been discussed.

Please do not open duplicate issues.

@Classic298 commented on GitHub (Aug 14, 2025): this is the bare minimum needed for installation - the cuda drivers are very large and take gigabytes of storage, and so do all the many many other dependencies. You say you checked for existing discussions and issues - did you? This is a duplicate issue. The physical size of open webui has been discussed many times and ideas of how to optionally reduce it (by e.g. having a more minimal version) have been discussed. Please do not open duplicate issues.
Author
Owner

@rgaricano commented on GitHub (Aug 14, 2025):

But if you use same venv it doesn't download each time, just update if necessary or install news.
In my install I don't use venv, I use installed python libs, the install of requirements is so quick.

That's are the libs>10Mb that are installed for run openwebui... which of these do you suggest to be removed?

2,7G ./venv/lib/python3.12/site-packages/nvidia
1,6G ./venv/lib/python3.12/site-packages/torch
540M ./venv/lib/python3.12/site-packages/triton
289M ./venv/lib/python3.12/site-packages/open_webui
255M ./venv/lib/python3.12/site-packages/tencentcloud
227M ./venv/lib/python3.12/site-packages/cusparselt
170M ./venv/lib/python3.12/site-packages/milvus_lite
141M ./venv/lib/python3.12/site-packages/pyarrow
128M ./venv/lib/python3.12/site-packages/playwright
113M ./venv/lib/python3.12/site-packages/scipy
108M ./venv/lib/python3.12/site-packages/transformers
91M ./venv/lib/python3.12/site-packages/opencv_python.libs
86M ./venv/lib/python3.12/site-packages/googleapiclient
81M ./venv/lib/python3.12/site-packages/av.libs
79M ./venv/lib/python3.12/site-packages/cv2
75M ./venv/lib/python3.12/site-packages/pandas
74M ./venv/lib/python3.12/site-packages/sympy
69M ./venv/lib/python3.12/site-packages/ctranslate2.libs
63M ./venv/lib/python3.12/site-packages/opencv_python_headless.libs
63M ./venv/lib/python3.12/site-packages/ctranslate2
50M ./venv/lib/python3.12/site-packages/sklearn
42M ./venv/lib/python3.12/site-packages/onnxruntime
42M ./venv/lib/python3.12/site-packages/moto
39M ./venv/lib/python3.12/site-packages/numpy
37M ./venv/lib/python3.12/site-packages/numpy.libs
35M ./venv/lib/python3.12/site-packages/kubernetes
34M ./venv/lib/python3.12/site-packages/av
29M ./venv/lib/python3.12/site-packages/google
27M ./venv/lib/python3.12/site-packages/scipy.libs
27M ./venv/lib/python3.12/site-packages/fontTools
27M ./venv/lib/python3.12/site-packages/botocore
26M ./venv/lib/python3.12/site-packages/langchain_community
23M ./venv/lib/python3.12/site-packages/zstandard
22M ./venv/lib/python3.12/site-packages/sqlalchemy
18M ./venv/lib/python3.12/site-packages/networkx
17M ./venv/lib/python3.12/site-packages/uvloop
16M ./venv/lib/python3.12/site-packages/rapidocr_onnxruntime
16M ./venv/lib/python3.12/site-packages/pip
15M ./venv/lib/python3.12/site-packages/langchain
15M ./venv/lib/python3.12/site-packages/grpc
14M ./venv/lib/python3.12/site-packages/cryptography
13M ./venv/lib/python3.12/site-packages/nltk
13M ./venv/lib/python3.12/site-packages/lxml
12M ./venv/lib/python3.12/site-packages/rapidfuzz
11M ./venv/lib/python3.12/site-packages/elasticsearch
11M ./venv/lib/python3.12/site-packages/azure

@rgaricano commented on GitHub (Aug 14, 2025): But if you use same venv it doesn't download each time, just update if necessary or install news. In my install I don't use venv, I use installed python libs, the install of requirements is so quick. That's are the libs>10Mb that are installed for run openwebui... which of these do you suggest to be removed? 2,7G ./venv/lib/python3.12/site-packages/nvidia 1,6G ./venv/lib/python3.12/site-packages/torch 540M ./venv/lib/python3.12/site-packages/triton 289M ./venv/lib/python3.12/site-packages/open_webui 255M ./venv/lib/python3.12/site-packages/tencentcloud 227M ./venv/lib/python3.12/site-packages/cusparselt 170M ./venv/lib/python3.12/site-packages/milvus_lite 141M ./venv/lib/python3.12/site-packages/pyarrow 128M ./venv/lib/python3.12/site-packages/playwright 113M ./venv/lib/python3.12/site-packages/scipy 108M ./venv/lib/python3.12/site-packages/transformers 91M ./venv/lib/python3.12/site-packages/opencv_python.libs 86M ./venv/lib/python3.12/site-packages/googleapiclient 81M ./venv/lib/python3.12/site-packages/av.libs 79M ./venv/lib/python3.12/site-packages/cv2 75M ./venv/lib/python3.12/site-packages/pandas 74M ./venv/lib/python3.12/site-packages/sympy 69M ./venv/lib/python3.12/site-packages/ctranslate2.libs 63M ./venv/lib/python3.12/site-packages/opencv_python_headless.libs 63M ./venv/lib/python3.12/site-packages/ctranslate2 50M ./venv/lib/python3.12/site-packages/sklearn 42M ./venv/lib/python3.12/site-packages/onnxruntime 42M ./venv/lib/python3.12/site-packages/moto 39M ./venv/lib/python3.12/site-packages/numpy 37M ./venv/lib/python3.12/site-packages/numpy.libs 35M ./venv/lib/python3.12/site-packages/kubernetes 34M ./venv/lib/python3.12/site-packages/av 29M ./venv/lib/python3.12/site-packages/google 27M ./venv/lib/python3.12/site-packages/scipy.libs 27M ./venv/lib/python3.12/site-packages/fontTools 27M ./venv/lib/python3.12/site-packages/botocore 26M ./venv/lib/python3.12/site-packages/langchain_community 23M ./venv/lib/python3.12/site-packages/zstandard 22M ./venv/lib/python3.12/site-packages/sqlalchemy 18M ./venv/lib/python3.12/site-packages/networkx 17M ./venv/lib/python3.12/site-packages/uvloop 16M ./venv/lib/python3.12/site-packages/rapidocr_onnxruntime 16M ./venv/lib/python3.12/site-packages/pip 15M ./venv/lib/python3.12/site-packages/langchain 15M ./venv/lib/python3.12/site-packages/grpc 14M ./venv/lib/python3.12/site-packages/cryptography 13M ./venv/lib/python3.12/site-packages/nltk 13M ./venv/lib/python3.12/site-packages/lxml 12M ./venv/lib/python3.12/site-packages/rapidfuzz 11M ./venv/lib/python3.12/site-packages/elasticsearch 11M ./venv/lib/python3.12/site-packages/azure
Author
Owner

@Ivan2getdmodelz commented on GitHub (Aug 18, 2025):

But if you use same venv it doesn't download each time, just update if necessary or install news. In my install I don't use venv, I use installed python libs, the install of requirements is so quick.

That's are the libs>10Mb that are installed for run openwebui... which of these do you suggest to be removed?

2,7G ./venv/lib/python3.12/site-packages/nvidia 1,6G ./venv/lib/python3.12/site-packages/torch 540M ./venv/lib/python3.12/site-packages/triton 289M ./venv/lib/python3.12/site-packages/open_webui 255M ./venv/lib/python3.12/site-packages/tencentcloud 227M ./venv/lib/python3.12/site-packages/cusparselt 170M ./venv/lib/python3.12/site-packages/milvus_lite 141M ./venv/lib/python3.12/site-packages/pyarrow 128M ./venv/lib/python3.12/site-packages/playwright 113M ./venv/lib/python3.12/site-packages/scipy 108M ./venv/lib/python3.12/site-packages/transformers 91M ./venv/lib/python3.12/site-packages/opencv_python.libs 86M ./venv/lib/python3.12/site-packages/googleapiclient 81M ./venv/lib/python3.12/site-packages/av.libs 79M ./venv/lib/python3.12/site-packages/cv2 75M ./venv/lib/python3.12/site-packages/pandas 74M ./venv/lib/python3.12/site-packages/sympy 69M ./venv/lib/python3.12/site-packages/ctranslate2.libs 63M ./venv/lib/python3.12/site-packages/opencv_python_headless.libs 63M ./venv/lib/python3.12/site-packages/ctranslate2 50M ./venv/lib/python3.12/site-packages/sklearn 42M ./venv/lib/python3.12/site-packages/onnxruntime 42M ./venv/lib/python3.12/site-packages/moto 39M ./venv/lib/python3.12/site-packages/numpy 37M ./venv/lib/python3.12/site-packages/numpy.libs 35M ./venv/lib/python3.12/site-packages/kubernetes 34M ./venv/lib/python3.12/site-packages/av 29M ./venv/lib/python3.12/site-packages/google 27M ./venv/lib/python3.12/site-packages/scipy.libs 27M ./venv/lib/python3.12/site-packages/fontTools 27M ./venv/lib/python3.12/site-packages/botocore 26M ./venv/lib/python3.12/site-packages/langchain_community 23M ./venv/lib/python3.12/site-packages/zstandard 22M ./venv/lib/python3.12/site-packages/sqlalchemy 18M ./venv/lib/python3.12/site-packages/networkx 17M ./venv/lib/python3.12/site-packages/uvloop 16M ./venv/lib/python3.12/site-packages/rapidocr_onnxruntime 16M ./venv/lib/python3.12/site-packages/pip 15M ./venv/lib/python3.12/site-packages/langchain 15M ./venv/lib/python3.12/site-packages/grpc 14M ./venv/lib/python3.12/site-packages/cryptography 13M ./venv/lib/python3.12/site-packages/nltk 13M ./venv/lib/python3.12/site-packages/lxml 12M ./venv/lib/python3.12/site-packages/rapidfuzz 11M ./venv/lib/python3.12/site-packages/elasticsearch 11M ./venv/lib/python3.12/site-packages/azure

Thanks, rgaricano. Your reply was helpful.

@Ivan2getdmodelz commented on GitHub (Aug 18, 2025): > But if you use same venv it doesn't download each time, just update if necessary or install news. In my install I don't use venv, I use installed python libs, the install of requirements is so quick. > > That's are the libs>10Mb that are installed for run openwebui... which of these do you suggest to be removed? > > 2,7G ./venv/lib/python3.12/site-packages/nvidia 1,6G ./venv/lib/python3.12/site-packages/torch 540M ./venv/lib/python3.12/site-packages/triton 289M ./venv/lib/python3.12/site-packages/open_webui 255M ./venv/lib/python3.12/site-packages/tencentcloud 227M ./venv/lib/python3.12/site-packages/cusparselt 170M ./venv/lib/python3.12/site-packages/milvus_lite 141M ./venv/lib/python3.12/site-packages/pyarrow 128M ./venv/lib/python3.12/site-packages/playwright 113M ./venv/lib/python3.12/site-packages/scipy 108M ./venv/lib/python3.12/site-packages/transformers 91M ./venv/lib/python3.12/site-packages/opencv_python.libs 86M ./venv/lib/python3.12/site-packages/googleapiclient 81M ./venv/lib/python3.12/site-packages/av.libs 79M ./venv/lib/python3.12/site-packages/cv2 75M ./venv/lib/python3.12/site-packages/pandas 74M ./venv/lib/python3.12/site-packages/sympy 69M ./venv/lib/python3.12/site-packages/ctranslate2.libs 63M ./venv/lib/python3.12/site-packages/opencv_python_headless.libs 63M ./venv/lib/python3.12/site-packages/ctranslate2 50M ./venv/lib/python3.12/site-packages/sklearn 42M ./venv/lib/python3.12/site-packages/onnxruntime 42M ./venv/lib/python3.12/site-packages/moto 39M ./venv/lib/python3.12/site-packages/numpy 37M ./venv/lib/python3.12/site-packages/numpy.libs 35M ./venv/lib/python3.12/site-packages/kubernetes 34M ./venv/lib/python3.12/site-packages/av 29M ./venv/lib/python3.12/site-packages/google 27M ./venv/lib/python3.12/site-packages/scipy.libs 27M ./venv/lib/python3.12/site-packages/fontTools 27M ./venv/lib/python3.12/site-packages/botocore 26M ./venv/lib/python3.12/site-packages/langchain_community 23M ./venv/lib/python3.12/site-packages/zstandard 22M ./venv/lib/python3.12/site-packages/sqlalchemy 18M ./venv/lib/python3.12/site-packages/networkx 17M ./venv/lib/python3.12/site-packages/uvloop 16M ./venv/lib/python3.12/site-packages/rapidocr_onnxruntime 16M ./venv/lib/python3.12/site-packages/pip 15M ./venv/lib/python3.12/site-packages/langchain 15M ./venv/lib/python3.12/site-packages/grpc 14M ./venv/lib/python3.12/site-packages/cryptography 13M ./venv/lib/python3.12/site-packages/nltk 13M ./venv/lib/python3.12/site-packages/lxml 12M ./venv/lib/python3.12/site-packages/rapidfuzz 11M ./venv/lib/python3.12/site-packages/elasticsearch 11M ./venv/lib/python3.12/site-packages/azure Thanks, rgaricano. Your reply was helpful.
Author
Owner

@Ivan2getdmodelz commented on GitHub (Aug 20, 2025):

Also, a freeze to generate a requirements.txt list isn't what I'd consider a minimal install....

@Ivan2getdmodelz commented on GitHub (Aug 20, 2025): Also, a freeze to generate a requirements.txt list isn't what I'd consider a minimal install....
Author
Owner

@rgaricano commented on GitHub (Aug 20, 2025):

For reference,
here are the libraries from requirements.txt that could be skipped for a default configuration:

Core Dependencies (Cannot Skip)

The following are essential for basic functionality and cannot be skipped:

  • fastapi, uvicorn, pydantic - Core web framework
  • python-multipart, python-socketio - Web functionality
  • python-jose, passlib, cryptography, bcrypt - Authentication/security
  • requests, aiohttp, httpx - HTTP clients
  • sqlalchemy, alembic, peewee - Database functionality
  • loguru, APScheduler - Logging and task scheduling

Optional Dependencies That Can Be Skipped

Vector Database Options (Skip if not using RAG)

Multiple vector database clients are provided, but only one is needed:

  • chromadb (default), pymilvus, qdrant-client, opensearch-py, elasticsearch, pinecone, oracledb

Database Backend Options (Skip if using default SQLite)

Alternative database backends can be skipped:

  • psycopg2-binary, pgvector, PyMySQL, pymongo - Only needed for PostgreSQL, MySQL, or MongoDB
  • redis - Only needed for caching and real-time features

Document Processing (Skip if not using file uploads/RAG)

Document processing libraries are optional:

  • pypdf, fpdf2, python-pptx, docx2txt, unstructured, nltk - Document parsing
  • opencv-python-headless, rapidocr-onnxruntime, pillow - Image/OCR processing
  • pandas, openpyxl, pyxlsb, xlrd - Spreadsheet processing

Audio Features (Skip if not using speech-to-text/TTS)

Audio processing libraries are optional:

  • faster-whisper, soundfile, pydub - Speech processing and audio conversion

Web search capabilities are optional:

  • ddgs, playwright, firecrawl-py, youtube-transcript-api, pytube - Web search and content extraction

Cloud Storage (Skip if using local storage)

Cloud storage providers can be skipped:

  • boto3, google-cloud-storage, azure-identity, azure-storage-blob - Cloud storage backends
  • google-api-python-client, google-auth-httplib2, google-auth-oauthlib - Google Drive integration

AI Provider SDKs (Skip providers you don't use)

Specific AI provider libraries are optional:

  • anthropic, google-genai, google-generativeai, tencentcloud-sdk-python

Monitoring/Observability (Skip if not needed)

Monitoring tools are optional:

  • posthog, langfuse - Analytics and LLM observability
  • opentelemetry-* packages - Distributed tracing

Development/Testing Tools (Skip in production)

Development dependencies can be skipped:

  • black, docker, pytest, pytest-docker - Development and testing tools
@rgaricano commented on GitHub (Aug 20, 2025): For reference, here are the libraries from `requirements.txt` that could be skipped for a default configuration: ## Core Dependencies (Cannot Skip) The following are essential for basic functionality and cannot be skipped: - `fastapi`, `uvicorn`, `pydantic` - Core web framework - `python-multipart`, `python-socketio` - Web functionality - `python-jose`, `passlib`, `cryptography`, `bcrypt` - Authentication/security - `requests`, `aiohttp`, `httpx` - HTTP clients - `sqlalchemy`, `alembic`, `peewee` - Database functionality - `loguru`, `APScheduler` - Logging and task scheduling ## Optional Dependencies That Can Be Skipped ### Vector Database Options (Skip if not using RAG) Multiple vector database clients are provided, but only one is needed: - `chromadb` (default), `pymilvus`, `qdrant-client`, `opensearch-py`, `elasticsearch`, `pinecone`, `oracledb` ### Database Backend Options (Skip if using default SQLite) Alternative database backends can be skipped: - `psycopg2-binary`, `pgvector`, `PyMySQL`, `pymongo` - Only needed for PostgreSQL, MySQL, or MongoDB - `redis` - Only needed for caching and real-time features ### Document Processing (Skip if not using file uploads/RAG) Document processing libraries are optional: - `pypdf`, `fpdf2`, `python-pptx`, `docx2txt`, `unstructured`, `nltk` - Document parsing - `opencv-python-headless`, `rapidocr-onnxruntime`, `pillow` - Image/OCR processing - `pandas`, `openpyxl`, `pyxlsb`, `xlrd` - Spreadsheet processing ### Audio Features (Skip if not using speech-to-text/TTS) Audio processing libraries are optional: - `faster-whisper`, `soundfile`, `pydub` - Speech processing and audio conversion ### Web Search/Crawling (Skip if not using web search) Web search capabilities are optional: - `ddgs`, `playwright`, `firecrawl-py`, `youtube-transcript-api`, `pytube` - Web search and content extraction ### Cloud Storage (Skip if using local storage) Cloud storage providers can be skipped: - `boto3`, `google-cloud-storage`, `azure-identity`, `azure-storage-blob` - Cloud storage backends - `google-api-python-client`, `google-auth-httplib2`, `google-auth-oauthlib` - Google Drive integration ### AI Provider SDKs (Skip providers you don't use) Specific AI provider libraries are optional: - `anthropic`, `google-genai`, `google-generativeai`, `tencentcloud-sdk-python` ### Monitoring/Observability (Skip if not needed) Monitoring tools are optional: - `posthog`, `langfuse` - Analytics and LLM observability - `opentelemetry-*` packages - Distributed tracing ### Development/Testing Tools (Skip in production) Development dependencies can be skipped: - `black`, `docker`, `pytest`, `pytest-docker` - Development and testing tools
Author
Owner

@Ivan2getdmodelz commented on GitHub (Aug 20, 2025):

@rgaricano Much appreciated. This is exactly the breakdown I was hoping to find.

@Ivan2getdmodelz commented on GitHub (Aug 20, 2025): @rgaricano Much appreciated. This is exactly the breakdown I was hoping to find.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#6102