README.md 11.8 KB
Newer Older
Timothy J. Baek's avatar
Timothy J. Baek committed
1
# Open WebUI (Formerly Ollama WebUI) 👋
Timothy J. Baek's avatar
Timothy J. Baek committed
2

Timothy J. Baek's avatar
rename  
Timothy J. Baek committed
3
4
5
6
7
8
9
![GitHub stars](https://img.shields.io/github/stars/open-webui/open-webui?style=social)
![GitHub forks](https://img.shields.io/github/forks/open-webui/open-webui?style=social)
![GitHub watchers](https://img.shields.io/github/watchers/open-webui/open-webui?style=social)
![GitHub repo size](https://img.shields.io/github/repo-size/open-webui/open-webui)
![GitHub language count](https://img.shields.io/github/languages/count/open-webui/open-webui)
![GitHub top language](https://img.shields.io/github/languages/top/open-webui/open-webui)
![GitHub last commit](https://img.shields.io/github/last-commit/open-webui/open-webui?color=red)
Timothy J. Baek's avatar
Timothy J. Baek committed
10
![Hits](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2Follama-webui%2Follama-wbui&count_bg=%2379C83D&title_bg=%23555555&icon=&icon_color=%23E7E7E7&title=hits&edge_flat=false)
Timothy J. Baek's avatar
Timothy J. Baek committed
11
[![Discord](https://img.shields.io/badge/Discord-Open_WebUI-blue?logo=discord&logoColor=white)](https://discord.gg/5rJgQTnV4s)
Timothy J. Baek's avatar
Timothy J. Baek committed
12
[![](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86)](https://github.com/sponsors/tjbck)
Timothy J. Baek's avatar
Timothy J. Baek committed
13

silentoplayz's avatar
silentoplayz committed
14
Open WebUI is an extensible, feature-rich, and user-friendly self-hosted WebUI designed to operate entirely offline. It supports various LLM runners, including Ollama and OpenAI-compatible APIs. For more information, be sure to check out our [Open WebUI Documentation](https://docs.openwebui.com/).
Timothy J. Baek's avatar
Timothy J. Baek committed
15

Timothy J. Baek's avatar
Timothy J. Baek committed
16
![Open WebUI Demo](./demo.gif)
Timothy Jaeryang Baek's avatar
Timothy Jaeryang Baek committed
17

silentoplayz's avatar
silentoplayz committed
18
## Key Features of Open WebUI ⭐
silentoplayz's avatar
silentoplayz committed
19

silentoplayz's avatar
silentoplayz committed
20
- 🚀 **Effortless Setup**: Install seamlessly using Docker or Kubernetes (kubectl, kustomize or helm) for a hassle-free experience with support for both `:ollama` and `:cuda` tagged images.
silentoplayz's avatar
silentoplayz committed
21

Timothy J. Baek's avatar
Timothy J. Baek committed
22
23
- 🤝 **Ollama/OpenAI API Integration**: Effortlessly integrate OpenAI-compatible APIs for versatile conversations alongside Ollama models. Customize the OpenAI API URL to link with **LMStudio, GroqCloud, Mistral, OpenRouter, and more**.

Timothy J. Baek's avatar
Timothy J. Baek committed
24
- 🧩 **Pipelines, Open WebUI Plugin Support**: Seamlessly integrate custom logic and Python libraries into Open WebUI using [Pipelines Plugin Framework](https://github.com/open-webui/pipelines). Launch your Pipelines instance, set the OpenAI URL to the Pipelines URL, and explore endless possibilities. [Examples](https://github.com/open-webui/pipelines/examples) include **Function Calling**, User **Rate Limiting** to control access, **Usage Monitoring** with tools like Langfuse, **Live Translation with LibreTranslate** for multilingual support, **Toxic Message Filtering** and much more.
silentoplayz's avatar
silentoplayz committed
25

silentoplayz's avatar
silentoplayz committed
26
- 📱 **Responsive Design**: Enjoy a seamless experience across Desktop PC, Laptop, and Mobile devices.
silentoplayz's avatar
silentoplayz committed
27

silentoplayz's avatar
silentoplayz committed
28
29
- 📱 **Progressive Web App (PWA) for Mobile**: Enjoy a native app-like experience on your mobile device with our PWA, providing offline access on localhost and a seamless user interface.

silentoplayz's avatar
silentoplayz committed
30
- ✒️🔢 **Full Markdown and LaTeX Support**: Elevate your LLM experience with comprehensive Markdown and LaTeX capabilities for enriched interaction.
silentoplayz's avatar
silentoplayz committed
31

Timothy J. Baek's avatar
Timothy J. Baek committed
32
- 🛠️ **Model Builder**: Easily create Ollama models via the Web UI. Create and add custom characters/agents, customize chat elements, and import models effortlessly through [Open WebUI Community](https://openwebui.com/) integration.
silentoplayz's avatar
silentoplayz committed
33

silentoplayz's avatar
silentoplayz committed
34
- 📚 **Local RAG Integration**: Dive into the future of chat interactions with groundbreaking Retrieval Augmented Generation (RAG) support. This feature seamlessly integrates document interactions into your chat experience. You can load documents directly into the chat or add files to your document library, effortlessly accessing them using the `#` command before a query.
silentoplayz's avatar
silentoplayz committed
35

silentoplayz's avatar
silentoplayz committed
36
37
- 🔍 **Web Search for RAG**: Perform web searches using providers like `SearXNG`, `Google PSE`, `Brave Search`, `serpstack`, and `serper`, and inject the results directly into your chat experience.

silentoplayz's avatar
silentoplayz committed
38
- 🌐 **Web Browsing Capability**: Seamlessly integrate websites into your chat experience using the `#` command followed by a URL. This feature allows you to incorporate web content directly into your conversations, enhancing the richness and depth of your interactions.
silentoplayz's avatar
silentoplayz committed
39

silentoplayz's avatar
silentoplayz committed
40
- 🎨 **Image Generation Integration**: Seamlessly incorporate image generation capabilities using options such as AUTOMATIC1111 API or ComfyUI (local), and OpenAI's DALL-E (external), enriching your chat experience with dynamic visual content.
silentoplayz's avatar
silentoplayz committed
41

silentoplayz's avatar
silentoplayz committed
42
- ⚙️ **Many Models Conversations**: Effortlessly engage with various models simultaneously, harnessing their unique strengths for optimal responses. Enhance your experience by leveraging a diverse set of models in parallel.
silentoplayz's avatar
silentoplayz committed
43

silentoplayz's avatar
silentoplayz committed
44
- 🔐 **Role-Based Access Control (RBAC)**: Ensure secure access with restricted permissions; only authorized individuals can access your Ollama, and exclusive model creation/pulling rights are reserved for administrators.
silentoplayz's avatar
silentoplayz committed
45

silentoplayz's avatar
silentoplayz committed
46
- 🌐🌍 **Multilingual Support**: Experience Open WebUI in your preferred language with our internationalization (i18n) support. Join us in expanding our supported languages! We're actively seeking contributors!
silentoplayz's avatar
silentoplayz committed
47

silentoplayz's avatar
silentoplayz committed
48
- 🌟 **Continuous Updates**: We are committed to improving Open WebUI with regular updates, fixes, and new features.
silentoplayz's avatar
silentoplayz committed
49

silentoplayz's avatar
silentoplayz committed
50
Want to learn more about Open WebUI's features? Check out our [Open WebUI documentation](https://docs.openwebui.com/features) for a comprehensive overview!
Timothy J. Baek's avatar
Timothy J. Baek committed
51

Timothy J. Baek's avatar
Timothy J. Baek committed
52
## 🔗 Also Check Out Open WebUI Community!
Timothy Jaeryang Baek's avatar
Timothy Jaeryang Baek committed
53

Timothy J. Baek's avatar
Timothy J. Baek committed
54
Don't forget to explore our sibling project, [Open WebUI Community](https://openwebui.com/), where you can discover, download, and explore customized Modelfiles. Open WebUI Community offers a wide range of exciting possibilities for enhancing your chat interactions with Open WebUI! 🚀
Timothy Jaeryang Baek's avatar
Timothy Jaeryang Baek committed
55

Timothy J. Baek's avatar
Timothy J. Baek committed
56
57
## How to Install 🚀

Timothy J. Baek's avatar
Timothy J. Baek committed
58
59
> [!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](https://docs.openwebui.com/) is ready to assist you.
Timothy J. Baek's avatar
Timothy J. Baek committed
60

Jannik S's avatar
Jannik S committed
61
### Quick Start with Docker 🐳
62

Timothy J. Baek's avatar
Timothy J. Baek committed
63
> [!WARNING]
Timothy J. Baek's avatar
Timothy J. Baek committed
64
> 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.
Timothy J. Baek's avatar
Timothy J. Baek committed
65

Timothy J. Baek's avatar
Timothy J. Baek committed
66
67
68
> [!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](https://docs.nvidia.com/dgx/nvidia-container-runtime-upgrade/) on your Linux/WSL system.

Timothy J. Baek's avatar
Timothy J. Baek committed
69
### Installation with Default Configuration
Timothy J. Baek's avatar
Timothy J. Baek committed
70

Timothy J. Baek's avatar
Timothy J. Baek committed
71
- **If Ollama is on your computer**, use this command:
Timothy J. Baek's avatar
Timothy J. Baek committed
72

Timothy J. Baek's avatar
Timothy J. Baek committed
73
74
75
  ```bash
  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
  ```
Timothy J. Baek's avatar
Timothy J. Baek committed
76

Timothy J. Baek's avatar
Timothy J. Baek committed
77
- **If Ollama is on a Different Server**, use this command:
Timothy J. Baek's avatar
Timothy J. Baek committed
78

Timothy J. Baek's avatar
Timothy J. Baek committed
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
  To connect to Ollama on another server, change the `OLLAMA_BASE_URL` to the server's URL:

  ```bash
  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:

  ```bash
  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:

  ```bash
  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:

  ```bash
  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:

  ```bash
  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.
Timothy J. Baek's avatar
Timothy J. Baek committed
118
119

After installation, you can access Open WebUI at [http://localhost:3000](http://localhost:3000). Enjoy! 😄
Timothy J. Baek's avatar
Timothy J. Baek committed
120

Timothy J. Baek's avatar
Timothy J. Baek committed
121
122
123
124
### Other Installation Methods

We offer various installation alternatives, including non-Docker native installation methods, Docker Compose, Kustomize, and Helm. Visit our [Open WebUI Documentation](https://docs.openwebui.com/getting-started/) or join our [Discord community](https://discord.gg/5rJgQTnV4s) for comprehensive guidance.

Timothy J. Baek's avatar
Timothy J. Baek committed
125
126
127
128
### Troubleshooting

Encountering connection issues? Our [Open WebUI Documentation](https://docs.openwebui.com/troubleshooting/) has got you covered. For further assistance and to join our vibrant community, visit the [Open WebUI Discord](https://discord.gg/5rJgQTnV4s).

Timothy J. Baek's avatar
Timothy J. Baek committed
129
#### Open WebUI: Server Connection Error
130

Timothy J. Baek's avatar
Timothy J. Baek committed
131
132
133
134
135
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**:

```bash
136
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
Timothy J. Baek's avatar
Timothy J. Baek committed
137
```
138

Timothy J. Baek's avatar
Timothy J. Baek committed
139
### Keeping Your Docker Installation Up-to-Date
Timothy J. Baek's avatar
Timothy J. Baek committed
140

Timothy J. Baek's avatar
Timothy J. Baek committed
141
142
143
144
145
146
147
148
149
150
In case you want to update your local Docker installation to the latest version, you can do it with [Watchtower](https://containrrr.dev/watchtower/):

```bash
docker run --rm --volume /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once open-webui
```

In the last part of the command, replace `open-webui` with your container name if it is different.

### Moving from Ollama WebUI to Open WebUI

Timothy J. Baek's avatar
Timothy J. Baek committed
151
Check our Migration Guide available in our [Open WebUI Documentation](https://docs.openwebui.com/migration/).
Timothy J. Baek's avatar
Timothy J. Baek committed
152

Timothy J. Baek's avatar
Timothy J. Baek committed
153
## What's Next? 🌟
Timothy J. Baek's avatar
Timothy J. Baek committed
154

Timothy J. Baek's avatar
Timothy J. Baek committed
155
Discover upcoming features on our roadmap in the [Open WebUI Documentation](https://docs.openwebui.com/roadmap/).
Timothy J. Baek's avatar
Timothy J. Baek committed
156

157
158
159
## Supporters ✨

A big shoutout to our amazing supporters who's helping to make this project possible! 🙏
Timothy J. Baek's avatar
Timothy J. Baek committed
160

161
### Platinum Sponsors 🤍
Timothy J. Baek's avatar
Timothy J. Baek committed
162

163
164
165
166
- We're looking for Sponsors!

### Acknowledgments

Timothy J. Baek's avatar
Timothy J. Baek committed
167
Special thanks to [Prof. Lawrence Kim](https://www.lhkim.com/) and [Prof. Nick Vincent](https://www.nickmvincent.com/) for their invaluable support and guidance in shaping this project into a research endeavor. Grateful for your mentorship throughout the journey! 🙌
Timothy J. Baek's avatar
Timothy J. Baek committed
168
169
170

## License 📜

Timothy J. Baek's avatar
Timothy J. Baek committed
171
This project is licensed under the [MIT License](LICENSE) - see the [LICENSE](LICENSE) file for details. 📄
Timothy J. Baek's avatar
Timothy J. Baek committed
172
173
174

## Support 💬

Timothy J. Baek's avatar
Timothy J. Baek committed
175
If you have any questions, suggestions, or need assistance, please open an issue or join our
Timothy J. Baek's avatar
Timothy J. Baek committed
176
[Open WebUI Discord community](https://discord.gg/5rJgQTnV4s) to connect with us! 🤝
Timothy J. Baek's avatar
Timothy J. Baek committed
177

Jannik S's avatar
Jannik S committed
178
179
180
181
182
183
184
185
186
187
## Star History

<a href="https://star-history.com/#open-webui/open-webui&Date">
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=open-webui/open-webui&type=Date&theme=dark" />
    <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=open-webui/open-webui&type=Date" />
    <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=open-webui/open-webui&type=Date" />
  </picture>
</a>

Timothy J. Baek's avatar
Timothy J. Baek committed
188
189
---

Timothy J. Baek's avatar
Timothy J. Baek committed
190
Created by [Timothy J. Baek](https://github.com/tjbck) - Let's make Open WebUI even more amazing together! 💪