Find a file
2026-06-13 22:08:19 +02:00
.github refac 2026-06-01 19:09:44 -07:00
backend refac 2026-06-13 02:13:51 +01:00
docs Update SECURITY.md (#24726) 2026-05-15 09:30:48 +09:00
scripts refac 2026-04-24 18:55:39 +09:00
src refac 2026-06-05 16:58:16 -04:00
static chore: pyodide 2026-05-19 20:21:01 +04:00
test/test_files/image_gen feat: add image gen with automatic1111 to integration test 2024-05-20 23:03:05 +01:00
.dockerignore feat: Initial support for pgvector 2024-11-04 14:26:41 -08:00
.env.example feat: add support for Valkey vector database (#24769) 2026-06-01 12:20:01 -07:00
.eslintignore chat feature added 2023-10-08 15:38:42 -07:00
.eslintrc.cjs feat: add basic cypress test as initial work towards e2e tests 2024-04-27 14:10:10 +01:00
.gitattributes refac: standardize formatting in .gitattributes for consistency 2025-06-04 06:32:06 +02:00
.gitignore refac 2026-06-13 02:13:39 +01:00
.npmrc chat feature added 2023-10-08 15:38:42 -07:00
.pre-commit-config.yaml feat: add ruff linter & formatter (#22576) 2026-03-15 17:22:27 -05:00
.prettierignore chore: remove very outdated kubernetes configs (#19731) 2025-12-04 14:59:30 -05:00
.prettierrc refac: update .gitattributes and .prettierrc for consistent line endings 2025-06-04 06:27:25 +02:00
banner.png doc: banner 2025-12-22 00:53:49 +04:00
CHANGELOG.md Update CHANGELOG.md (#25491) 2026-06-01 14:07:20 -07:00
CODE_OF_CONDUCT.md chore: wording 2025-05-06 20:15:09 +04:00
contribution_stats.py refac 2026-03-17 17:58:01 -05:00
CONTRIBUTOR_LICENSE_AGREEMENT refac 2026-02-28 02:05:22 -06:00
demo.png doc: demo image 2025-12-22 00:46:41 +04:00
docker-cleanup.sh refac: reorganize scripts and ci workflows 2026-05-12 03:26:18 +09:00
docker-compose-launcher.sh refac: reorganize scripts and ci workflows 2026-05-12 03:26:18 +09:00
docker-compose.a1111-test.yaml feat: add image gen with automatic1111 to integration test 2024-05-20 23:03:05 +01:00
docker-compose.amdgpu.yaml Add variables 2024-04-05 23:46:20 -04:00
docker-compose.api.yaml Removed version synatax as its no longer needed per Docker Docs 2024-05-09 14:54:26 -04:00
docker-compose.data.yaml Removed version synatax as its no longer needed per Docker Docs 2024-05-09 14:54:26 -04:00
docker-compose.gpu.yaml Removed version synatax as its no longer needed per Docker Docs 2024-05-09 14:54:26 -04:00
docker-compose.otel.yaml fix: otel yaml 2025-07-24 19:25:13 +04:00
docker-compose.playwright.yaml chore: Updates minor/patch versions for 21 Python backend dependencies (#21059) 2026-01-31 16:51:08 -06:00
docker-compose.yaml refac 2025-10-19 23:35:59 -04:00
docker-ollama.sh refac: reorganize scripts and ci workflows 2026-05-12 03:26:18 +09:00
docker-run.sh refac: reorganize scripts and ci workflows 2026-05-12 03:26:18 +09:00
docker-update-models.sh refac: reorganize scripts and ci workflows 2026-05-12 03:26:18 +09:00
Dockerfile refac 2026-05-11 01:02:45 +09:00
hatch_build.py refac 2026-03-17 17:58:01 -05:00
i18next-parser.config.ts fix: configure i18next to not return empty strings 2024-03-09 03:33:20 +03:30
LICENSE refac: license 2026-04-14 12:18:24 -05:00
LICENSE_HISTORY refac 2025-07-18 12:41:21 +04:00
LICENSE_NOTICE doc: readme 2025-09-20 12:45:10 -05:00
Makefile Chose between "docker-compose" and "docker compose" in Makefile 2024-04-19 19:30:25 +02:00
package-lock.json chore 2026-06-01 13:56:06 -07:00
package.json chore: bump 2026-06-01 13:54:10 -07:00
postcss.config.js chore: format 2025-02-17 18:51:40 -08:00
pyproject.toml refac 2026-06-01 12:24:45 -07:00
README.md Update README.md 2026-06-13 22:08:19 +02:00
svelte.config.js refac 2025-05-19 19:17:08 +04:00
tailwind.config.js refac 2026-02-28 13:46:30 -06:00
TROUBLESHOOTING.md fix: Fix typos 2024-10-14 16:22:07 +09:00
tsconfig.json chat feature added 2023-10-08 15:38:42 -07:00
uv.lock refactor(firecrawl): use v2 API directly (#23934) 2026-04-24 18:32:08 +09:00
vite.config.ts refac 2025-09-09 14:03:47 +04:00

Open WebUI 👋

GitHub stars GitHub forks GitHub watchers GitHub repo size GitHub language count GitHub top language GitHub last commit Discord

Open WebUI Banner

Open WebUI is an extensible, feature-rich, and user-friendly self-hosted AI platform designed to operate entirely offline. It supports various LLM runners like Ollama and OpenAI-compatible APIs, with built-in inference engine for RAG, making it a powerful AI deployment solution.

Passionate about open-source AI? Join our team →

Open WebUI Demo

Tip

Looking for an Enterprise Plan? – Speak with Our Sales Team Today!

Get enhanced capabilities, including custom theming and branding, Service Level Agreement (SLA) support, Long-Term Support (LTS) versions, and more!

For more information, be sure to check out our Open WebUI Documentation.

Key Features of Open WebUI ⭐

  • 🚀 Effortless Setup: Install seamlessly via pip, uv, Docker, or Kubernetes (kubectl, kustomize, or helm) for a hassle-free experience — with :ollama and :cuda tagged images available for container deployments.

  • 🤝 Broad Model & API Integration: Connect any OpenAI Completions or Open Responses-compatible API alongside local Ollama models. Point the API URL at LMStudio, GroqCloud, Mistral, OpenRouter, vLLM, and many more to mix and match providers freely.

  • 🔐 Granular RBAC & User Groups: Administrators define detailed roles, groups, and permissions, giving each user exactly the access they should have — secure by default, with tailored experiences per group and admin-only rights for sensitive actions like model creation and pulling.

  • 🧩 Plugin Support — Build Almost Anything: Extend Open WebUI with native plugins, each specialized for its job: Filters to intercept and transform requests and responses, Actions to add custom buttons and interactive flows, Pipes to build entirely custom models and pipelines with custom logic, and Tools to give models real capabilities. Connect external services through MCP (native Streamable HTTP for Model Context Protocol servers), MCPO, and OpenAPI tool servers (auto-discover tools from any OpenAPI-compatible endpoint). Add Skills (Markdown instruction sets that teach models how to approach tasks) and Prompts (slash-command templates with typed input variables and versioning). With these building blocks you can create custom integrations, rate limits, human-in-the-loop approval popups, data connections, per-user usage budgets, custom interfaces, and much more. If you can imagine it, you can most likely build it.

  • 🤖 Models & Agents: Wrap any base model with custom instructions, bound tools, and knowledge to build specialized agents — a "Code Reviewer" with your linting rules baked in, a "Meeting Summarizer" with your company's template, a "Python Tutor" that always uses your style guide. Each agent is a configuration preset (system prompt, tools, knowledge, and parameters in one package), with dynamic variables like {{ USER_NAME }} and {{ CURRENT_DATE }} injected automatically, per-user/group access control, and global defaults across all models. Build characters and import community presets through Open WebUI Community integration.

  • 📝 Notes: A dedicated workspace for content that lives outside any single conversation — draft with a rich Markdown/Rich-Text editor and floating formatting toolbar, use AI to rewrite or improve selected text in place, and attach notes to any chat for full-fidelity context injection (no chunking, no vector search). Models can search, read, and update notes autonomously.

  • 📢 Channels: Real-time shared spaces where your team and AI models think together in one timeline. Tag @gpt-4o to draft a plan, then tag @claude to critique it — everyone sees both responses. Includes threads, reactions, and pins, public/private/group/DM channels with access control, and AI that can search and synthesize across channels autonomously.

  • 🧠 Persistent Memory: The AI remembers facts about you across conversations, carrying context from one chat to the next.

  • ⏱️ Automations & Scheduled Prompts: Schedule prompts to run automatically on recurring schedules, and let models maintain structured task lists to work through multi-step workflows.

  • 📱 Responsive Design & PWA: Enjoy a seamless experience across desktop, laptop, and mobile, with a Progressive Web App that delivers a native app-like feel and offline access on localhost.

  • ✒️🔢 Full Markdown and LaTeX Support: Elevate your LLM experience with comprehensive Markdown and LaTeX capabilities for enriched interaction.

  • 🎤📹 Hands-Free Voice/Video Call: Communicate seamlessly with integrated voice and video calls, using multiple Speech-to-Text providers (Local Whisper, OpenAI, Deepgram, Azure) and Text-to-Speech engines (Azure, ElevenLabs, OpenAI, Transformers, WebAPI) for dynamic, interactive chats.

  • 💾 Persistent Artifact Storage: Built-in key-value storage API for artifacts, enabling journals, trackers, leaderboards, and collaborative tools with both personal and shared data scopes across sessions.

  • 📚 Local RAG Integration: Bring Retrieval Augmented Generation right into your chats, backed by your choice of 9 vector databases and multiple content-extraction engines (Tika, Docling, Document Intelligence, Mistral OCR, PaddleOCR-vl, external loaders). Use hybrid search (BM25 + vector) with cross-encoder reranking for precision, or full-context mode to inject entire documents with no chunking. Load documents directly into chat or add files to your library and pull them in with the # command before a query — and keep those libraries continuously synced from 45+ external sources with oikb (see the Ecosystem section below).

  • 🔍 Web Search for RAG: Search the web through dozens of providers — SearXNG, Brave Search, Kagi, Mojeek, Tavily, Perplexity, Firecrawl, serpstack, serper, Serply, DuckDuckGo, SearchApi, SerpApi, Bing, Jina, Exa, Sougou, Azure AI Search, Ollama Cloud, and more — injecting results directly into the conversation.

  • 🌐 Web Browsing Capability: Pull websites into chat with the # command followed by a URL, or let the model fetch them on its own when it needs to — adding richness and depth to your interactions.

  • 🎨 Image Generation & Editing: Create and edit images with multiple engines including OpenAI DALL·E, Gemini, ComfyUI (local), and AUTOMATIC1111 (local), supporting both generation and prompt-based editing workflows.

  • ⚙️ Multi-Model Conversations: Engage several models at once, harnessing their individual strengths in parallel for the best possible responses.

  • 📊 Usage Analytics & Model Evaluation: Built-in admin dashboards track message volume, token consumption, and cost across users and models. Evaluate models head-to-head with a built-in arena, A/B testing, and ELO-based leaderboards to find what works best for your team.

  • 🗄️ Flexible Database & Storage: Choose SQLite (with optional encryption) or PostgreSQL for your database, and store files locally or on S3, Google Cloud Storage, or Azure Blob Storage for scalable deployments.

  • 🔍 Advanced Vector Database Support: Pick from 9 vector databases — ChromaDB, PGVector, Qdrant, Milvus, Elasticsearch, OpenSearch, Pinecone, S3Vector, and Oracle 23ai — to tune RAG performance to your stack.

  • 🔐 Enterprise Authentication & Provisioning: Full LDAP/Active Directory integration, SSO via trusted headers and OAuth providers, and automated user lifecycle management through SCIM 2.0 — for seamless integration with identity providers like Okta, Azure AD, and Google Workspace.

  • ☁️ Cloud-Native File Integration: Native Google Drive and OneDrive/SharePoint file picking for seamless document import from enterprise cloud storage.

  • 📊 Production Observability: Built-in OpenTelemetry support for traces, metrics, and logs, plugging into your existing monitoring stack.

  • ⚖️ Horizontal Scalability: Redis-backed session management and WebSocket support for multi-worker, multi-node deployments behind load balancers.

  • 🌐🌍 Multilingual Support: Use Open WebUI in your preferred language through our internationalization (i18n) support — and help us add more; we're actively seeking contributors!

  • 🌟 Continuous Updates: We're committed to improving Open WebUI with regular updates, fixes, and new features.

  • 🛡️ Transparent Security Process: Security reports are triaged, fixed, and published as open advisories through a documented responsible-disclosure process — see our Security Policy.

Want to learn more about Open WebUI's features? Check out our Open WebUI documentation for a comprehensive overview!

The Open WebUI Ecosystem 🌐

Open WebUI is the core, surrounded by companion apps and infrastructure that extend what your AI can do, what it can reach, and where you run it:

  • ⚡ Open Terminal — Give Your AI a Real Computer — open-webui/open-terminal: A self-hosted computing environment that plugs directly into Open WebUI, giving the AI a place to write code, run it, read the output, fix errors, and iterate — all inside the chat. Analyze spreadsheets and PDFs, build and live-preview websites, clone repos and run tests, automate file and system tasks. Run it sandboxed in Docker or bare-metal for full machine access, with a built-in file browser sidebar in Open WebUI.

  • 🔐 Terminals — Per-User Container Orchestration · Enterprise — open-webui/terminals: Run Open Terminal safely for a whole team. Every user gets their own fully isolated container — separate credentials, resource limits, and network rules — with automatic lifecycle management (spin-up on connect, proxying, limit enforcement, cleanup). Define policy-based environments on Docker or Kubernetes. Per-user isolation makes this the production-grade, hardened way to run Open Terminal for a team.

Important

Production use requires an Open WebUI Enterprise License with Terminals access. Contact the Open WebUI team to get started.

  • 💻 cptr — Talk to Your Computer From Anywhere — open-webui/computer: A standalone, mobile-first computer and coding agent that runs on the machine you own — files, terminal, and git in a browser tab, reachable from your phone. Connect it into Open WebUI as a model and chat with your own computer directly, or reach it from Telegram, WhatsApp, and more — control your machine and ship from anywhere.

  • 🔄 oikb — Connect Everything — open-webui/oikb: Feed your Knowledge Bases from 45+ sources — GitHub, Confluence, ServiceNow, Salesforce, Jira, Slack, SharePoint, Notion, and many more — keeping the tools your team already uses continuously in sync with Open WebUI.

  • 🖥️ Native Desktop App — open-webui/desktop: Run Open WebUI as a native app on macOS, Windows, and Linux — no Docker, no terminal, just download and launch. System-wide Spotlight chat bar with screenshot capture, push-to-talk voice from any app, and optional fully-local inference via a built-in llama.cpp engine.

Want to learn more about Open WebUI's Ecosystem? Check out our Open WebUI documentation for more details!


We are incredibly grateful for the generous support of our sponsors. Their contributions help us to maintain and improve our project, ensuring we can continue to deliver quality work to our community. Thank you!

How to Install 🚀

Installation via Python pip 🐍

Open WebUI can be installed using pip, the Python package installer. Before proceeding, ensure you're using Python 3.11 to avoid compatibility issues.

  1. Install Open WebUI: Open your terminal and run the following command to install Open WebUI:

    pip install open-webui
    
  2. Running Open WebUI: After installation, you can start Open WebUI by executing:

    open-webui serve
    

This will start the Open WebUI server, which you can access at http://localhost:8080

Quick Start with Docker 🐳

Note

Please note that for certain Docker environments, additional configurations might be needed. If you encounter any connection issues, our detailed guide on Open WebUI Documentation is ready to assist you.

Warning

When using Docker to install Open WebUI, make sure to include the -v open-webui:/app/backend/data in your Docker command. This step is crucial as it ensures your database is properly mounted and prevents any loss of data.

Tip

If you wish to utilize Open WebUI with Ollama included or CUDA acceleration, we recommend utilizing our official images tagged with either :cuda or :ollama. To enable CUDA, you must install the Nvidia CUDA container toolkit on your Linux/WSL system.

Installation with Default Configuration

  • If Ollama is on your computer, use this command:

    docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
    
  • If Ollama is on a Different Server, use this command:

    To connect to Ollama on another server, change the OLLAMA_BASE_URL to the server's URL:

    docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=https://example.com -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
    
  • To run Open WebUI with Nvidia GPU support, use this command:

    docker run -d -p 3000:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:cuda
    

Installation for OpenAI API Usage Only

  • If you're only using OpenAI API, use this command:

    docker run -d -p 3000:8080 -e OPENAI_API_KEY=your_secret_key -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
    

Installing Open WebUI with Bundled Ollama Support

This installation method uses a single container image that bundles Open WebUI with Ollama, allowing for a streamlined setup via a single command. Choose the appropriate command based on your hardware setup:

  • With GPU Support: Utilize GPU resources by running the following command:

    docker run -d -p 3000:8080 --gpus=all -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama
    
  • For CPU Only: If you're not using a GPU, use this command instead:

    docker run -d -p 3000:8080 -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama
    

Both commands facilitate a built-in, hassle-free installation of both Open WebUI and Ollama, ensuring that you can get everything up and running swiftly.

After installation, you can access Open WebUI at http://localhost:3000. Enjoy! 😄

Other Installation Methods

We offer various installation alternatives, including non-Docker native installation methods, Docker Compose, Kustomize, and Helm. Visit our Open WebUI Documentation or join our Discord community for comprehensive guidance.

Troubleshooting

Encountering connection issues? Our Open WebUI Documentation has got you covered. For further assistance and to join our vibrant community, visit the Open WebUI Discord.

Open WebUI: Server Connection Error

If you're experiencing connection issues, it’s often due to the WebUI docker container not being able to reach the Ollama server at 127.0.0.1:11434 (host.docker.internal:11434) inside the container . Use the --network=host flag in your docker command to resolve this. Note that the port changes from 3000 to 8080, resulting in the link: http://localhost:8080.

Example Docker Command:

docker run -d --network=host -v open-webui:/app/backend/data -e OLLAMA_BASE_URL=http://127.0.0.1:11434 --name open-webui --restart always ghcr.io/open-webui/open-webui:main

Keeping Your Docker Installation Up-to-Date

Check our Updating Guide available in our Open WebUI Documentation.

Using the Dev Branch 🌙

Warning

The :dev branch contains the latest unstable features and changes. Use it at your own risk as it may have bugs or incomplete features.

If you want to try out the latest bleeding-edge features and are okay with occasional instability, you can use the :dev tag like this:

docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui --add-host=host.docker.internal:host-gateway --restart always ghcr.io/open-webui/open-webui:dev

Offline Mode

If you are running Open WebUI in an offline environment, you can set the HF_HUB_OFFLINE environment variable to 1 to prevent attempts to download models from the internet.

export HF_HUB_OFFLINE=1

What's Next? 🌟

Discover upcoming features on our roadmap in the Open WebUI Documentation.

License 📜

This project contains code under multiple licenses. The current codebase includes components licensed under the Open WebUI License with an additional requirement to preserve the "Open WebUI" branding, as well as prior contributions under their respective original licenses. For a detailed record of license changes and the applicable terms for each section of the code, please refer to LICENSE_HISTORY. For complete and updated licensing details, please see the LICENSE and LICENSE_HISTORY files.

Support 💬

If you have any questions, suggestions, or need assistance, please open an issue or join our Open WebUI Discord community to connect with us! 🤝

Security 🛡️

If you believe you've found a security vulnerability — or something that isn't strictly a vulnerability but shouldn't be disclosed publicly — reach out confidentially through our responsible disclosure program on GitHub. We accept reports only through GitHub, not through any other platform. Thank you for helping us keep Open WebUI secure!

Star History

Star History Chart

Created by Timothy Jaeryang Baek - Let's make Open WebUI even more amazing together! 💪