open-webui

Stars and mentions

Last 30 days, Oct 5 – Nov 3

GitHub stars2,676
mentions67
053106159212Oct 5Oct 19Nov 3
UTC days · repositories open-webui owns4 repositories

Package downloads

Cumulative recorded downloads · since 2026-04-08

crates.io—
PyPI14.4M
03.6M7.2M10.8M14.4MOct 5Oct 19Nov 3
Oct 26crates.io: 0/1 packages observed · PyPI: 2/3 packages observed

Across 4 known packages in repositories open-webui owns. Cumulative totals include recorded downloads before the selected range. Missing observations leave gaps; totals may be incomplete. PyPI excludes known mirrors.

Top repositories

open-webui’s repositories ranked by pull request authors, as on trending.

Loading

Contributes to

Repositories outside open-webui’s account where open-webui opened or reviewed pull requests in the past 365 days.

Who noticed open-webui

Everyone who starred or forked open-webui’s repositories since the archive began in 2011.

Notable accounts

Ordered by the stars their own repositories have received.

Biggest fans

Accounts that starred the most of these repositories.

Breakout weeks

Each repository’s best week of new stars, with the release published around it.

Mentions

67posts
Nov 40 posts
  1. Open WebUI 能把本地 Ollama 和云端模型接进同一个聊天界面,还能上传文档问答。 用 Docker 部署,记得挂载数据卷。官方特别提醒:数据库不持久化,重建容器可能连聊天记录一起丢掉。模型仍要另接,装好界面不等于装好模型。 open-webui/open-webui t.co

    2 likes · 107 views
  2. 想在本地运行模型,却不想每天对着命令行,可以看看 Open WebUI。 它给 Ollama、OpenAI 兼容接口等模型提供统一的网页界面,也支持知识库和工具扩展。 不过“本地界面”不等于所有数据天然安全。模型来源、插件权限、外部接口和部署方式仍然要自己检查。 open-webui/open-webui #GitHub #本地AI #开源项目

    1 like · 73 views
  3. webUIはこれを使ってごにょごにょやって、ローカルに開放すればMacの外からwebブラウザ経由で使えます » GitHub - open-webui/desktop: Open WebUI Desktop 🌐 · GitHub open-webui/desktop

  4. webUIはこれを使ってごにょごにょやって、ローカルに開放すればMacの外からwebブラウザ経由で使えます » GitHub - open-webui/desktop: Open WebUI Desktop 🌐 · GitHub open-webui/desktop

    1 like · 27 views
  5. I Ran AI Offline for 7 Days. Was It Worth It? I typed "Olá" into my own offline chat and waited. Twenty-four seconds later, the model said hello back. The model wasn't broken and the hardware wasn't dead. The slowness came from two settings I didn't know were on, and finding them taught me more about running AI offline than any benchmark chart. Here's the setup. I bought a small mini PC, the NiPoGi P1, for €200, to run a few experiments at home. One of them: run two open models, Gemma 4 E4B for general questions and Qwen2.5-Coder 7B for code, on that box with no internet access at all, and use them from my Mac over the home network for a week. This post covers: 1. The hardware, and whether its "AMD Radeon" sticker means a real GPU. 2. How to build the same setup, step by step: Ollama, the models, network access and a firewall that keeps the box off the internet. 3. The real numbers, in tokens per second, on CPU and on the integrated GPU. 4. Three things that made it slow that had nothing to do with the model. 5. What I used it for, whether more RAM would help, and my verdict. --- The hardware: a 15 W laptop chip in a box The NiPoGi P1 is a mini PC that fits in one hand. Mine has this configuration: | Part | What it is | | --- | --- | | CPU | AMD Ryzen 3 3300U: 4 cores, 4 threads, Zen+, 15 W (specs) | | GPU | Radeon Vega 6, integrated in the processor | | RAM | 16 GB DDR4 | | Storage | 512 GB SSD | | Price | €200, what I paid | Does it have a GPU? Yes, but not the kind people mean when they talk about running AI. The Vega 6 lives inside the processor and has no memory of its own: it borrows from the same 16 GB of system RAM. When I checked from inside the container, Vulkan reported it as AMD Radeon Graphics (RADV RAVEN), so it is usable. Keep the "shares the RAM" part in mind, because it explains most of the numbers later. The 3300U is a 2019 laptop processor. I didn't buy this box to win benchmarks. I bought it to find out where the floor is: how much useful AI you get from cheap, quiet, low-power hardware. --- Build the same setup, step by step Any Linux machine on your home network works: an old laptop, a mini PC, a virtual machine. Mine runs Proxmox VE, so everything below runs inside a Debian 13 container with 4 cores and 10 GB of RAM, and the integrated GPU passed into it. Setting up Proxmox itself deserves its own article, so here I'll stick to what works on any Debian or Ubuntu box. Run the commands as root or with sudo. Step 1: Install Ollama (the box still needs internet here) Ollama downloads, runs and serves the models. The official installer sets it up as a systemd service with its own ollama user: curl -fsSL https://ollama.com/install.sh | sh ollama --version If piping a script into a shell makes you uneasy, read it first, or follow the manual install in the Ollama Linux docs. On my AMD box the installer warned that it couldn't detect an NVIDIA or AMD GPU. That warning is about CUDA and ROCm drivers, which this integrated GPU doesn't use anyway. For the integrated GPU, install the Vulkan drivers and check that the GPU shows up: apt install -y mesa-vulkan-drivers vulkan-tools vulkaninfo --summary | grep deviceName Mine reported AMD Radeon Graphics (RADV RAVEN). This step is optional: everything works on the CPU alone. Step 2: Download the models Two downloads, done while the box still had internet: ollama pull gemma4:e4b # 6.6 GB on disk ollama pull qwen2.5-coder:7b # 4.7 GB on disk Gemma 4 E4B is Google's small multimodal model: "E4B" means about 4.5 billion effective parameters, around 8 billion counting embeddings (Ollama library). It reads images too, which matters later. Qwen2.5-Coder 7B is a code model from Alibaba's Qwen team. Step 3: Open Ollama to the home network By default Ollama only listens on localhost. A systemd override changes that, plus a few settings that matter on small hardware: # /etc/systemd/system/ollama.service.d/override.conf [Service] Environment=OLLAMA_HOST=0.0.0.0:11434 Environment=OLLAMA_MAX_LOADED_MODELS=1 Environment=OLLAMA_NUM_PARALLEL=1 Environment=OLLAMA_KEEP_ALIVE=15m Environment=OLLAMA_IGPU_ENABLE=1 systemctl daemon-reload systemctl restart ollama Each line has a reason: - OLLAMA_HOST=0.0.0.0:11434 makes Ollama listen on the network, so the Mac can reach it. - OLLAMA_MAX_LOADED_MODELS=1: both models together don't fit in 10 GB, so only one stays in memory. - OLLAMA_NUM_PARALLEL=1: four slow cores serve one request at a time; parallel requests just queue. - OLLAMA_KEEP_ALIVE=15m unloads a model after 15 idle minutes. - OLLAMA_IGPU_ENABLE=1 lets Ollama use the integrated GPU through Vulkan. Without it, my Ollama version ignored the iGPU. Leave it out if you skipped the Vulkan step. The Vulkan backend itself has its own switch, OLLAMA_VULKAN; on my version (0.35.0) the server log already showed it on (OLLAMA_VULKAN:true), but on older versions you may need OLLAMA_VULKAN=1 as well. Step 4: Test it from another machine From the Mac (or any computer on the same network), ask the API which models it has. Replace the IP with your box's: curl http://192.168.1.214:11434/api/tags If the JSON lists gemma4:e4b and qwen2.5-coder:7b, the network part works. The section "How I used it from the Mac" below turns this into a chat. Step 5 (optional): A chat interface in the browser Open WebUI gives you a ChatGPT-style page with history and image upload. I ran it in Docker on the same box: docker run -d --name open-webui --restart unless-stopped --network host \ -e OLLAMA_BASE_URL=http://127.0.0.1:11434 -e PORT=3000 \ -v open-webui:/app/backend/data ghcr.io/open-webui/open-webui:main It opens on port 3000. :main follows the latest build; pin a release tag if you want the same version next month. Read the "Three things that made it slow" section before using it on slow hardware: two of its defaults cost me almost a minute per message. --- What "offline" means in this setup "Offline" here doesn't mean the cable is unplugged. The mini PC is on my home network, but it can't reach the internet. The models live on that box, and my Mac talks to them over the local network: Internet ✕ blocked by the firewall (nothing goes out) │ Home router ── 192.168.1.0/24 (home network) │ │ Mac ─── HTTP :11434 ──▶ Mini PC (terminal, HTTP :3000 ──▶ Ollama + Gemma + Qwen browser) Open WebUI The Mac still has internet. What matters is where my prompts go: from the Mac, across the home network, to the mini PC, and nowhere else. The mini PC has no route out, so even a misbehaving tool inside it has nothing to send data to. Step 6: Close the door The internet was needed only for steps 1, 2 and 5. After that, a firewall that drops all outgoing traffic turns the box into an offline AI server. I did it with the Proxmox firewall on the container. On a plain Debian or Ubuntu box, ufw does the same: ufw default deny incoming ufw default deny outgoing ufw allow from 192.168.1.0/24 to any port 22 proto tcp # SSH ufw allow from 192.168.1.0/24 to any port 11434 proto tcp # Ollama API ufw allow from 192.168.1.0/24 to any port 3000 proto tcp # Open WebUI ufw allow out 67/udp # DHCP renewals ufw enable What matters in it: - Outgoing traffic is denied by default, so the box can't open a connection to anything. Replies to the requests it accepts still go back, because the firewall tracks connections. - Inbound, only three ports, and only from the home network. Keep the SSH rule if the box has no screen, or you lock yourself out. - The DHCP rule lets the box ask to renew its IP lease; ufw's built-in rules already accept the router's reply. A DHCP reservation in your router keeps the address stable for the Mac. If you give the box a static IP instead, drop the rule. Networks with IPv6 or other extras may need more rules, so run the check below. - Docker writes its own firewall rules for ports published with -p, and traffic to those ports skips ufw's input rules. With --network host, as above, nothing is published: Open WebUI listens on the host itself, so the port 3000 rule applies. If you run other containers with -p, check them separately. To check it, run something that needs the internet on the box and watch it fail: curl -sS --max-time 5 https://ollama.com || echo "no internet, as expected" Updates and new models now mean opening the door on purpose (ufw disable, update, ufw enable). That's the point. One honest limit: Ollama's API has no authentication. Anyone on my home network, including guests on the Wi-Fi, could use the models. The firewall keeps the internet out; it doesn't pick who inside the house gets in. --- The numbers: tokens per second I measured both models with the same coding prompt, generating 150 tokens, first on CPU only and then with Vulkan on the integrated GPU. This is one week of real use with a few measurements, not a controlled lab benchmark, so here is exactly how I measured: | | | | --- | --- | | Ollama | 0.35.0, ollama run <model> --verbose | | Models | gemma4:e4b and qwen2.5-coder:7b, default 4-bit tags | | Context | Ollama's default (OLLAMA_CONTEXT_LENGTH not set) | | Container | 4 cores, 10 GB RAM, iGPU passed in | | When | The setup day, 2 October; not re-measured at the end of the week | Two numbers matter: - Generation: how fast the answer appears. This is the speed you feel. - Prompt reading: how fast the model reads what you send. It matters when you paste a long file or log. | Model | Generation, CPU | Generation, Vulkan | Prompt reading, CPU | Prompt reading, Vulkan | | --- | --- | --- | --- | --- | | Gemma 4 E4B | 5.5 tok/s | 8.1 tok/s | 14.4 tok/s | 16.8 tok/s | | Qwen2.5-Coder 7B | 5.5 tok/s | 4.5 tok/s | 10.0 tok/s | 27.7 tok/s | The integrated GPU didn't make everything faster. It changed which part was fast. For Qwen, prompt reading got almost three times faster while generation got slower. For Gemma, generation went up by about half. I don't have a clean explanation for why the two models moved in opposite directions, so I kept Vulkan on, because it won for the model I used the most. The pattern makes sense once you remember the shared RAM. Reading a prompt is heavy math, and the GPU's extra compute helps. Generating each new token means reading the model's weights from memory again, and the iGPU reads from the same RAM, at the same speed, as the CPU. To put 8 tokens per second in human terms: a long paragraph takes 20 to 30 seconds to finish appearing. You can read along, but you wait. Switching models costs more. Only one fits in memory, so the first message after a switch spends 10 to 20 seconds loading the other one. --- Three things that made it slow (none of them was the model) Back to the 24-second "Olá". It came from two defaults I didn't know about. A third cost showed up later in the week. 1. Thinking mode was on by default Gemma 4 supports a "thinking" mode, and in Ollama it's on by default. For a simple "Olá", the model wrote about 700 characters of internal reasoning before answering. | Mode | Time to answer "Olá" | | --- | --- | | Thinking on (default) | ~25 s | | Thinking off | ~2 s | The model wasn't slow; it was doing far more work than the question needed (192 generated tokens instead of 10). I turned thinking off by default (Open WebUI has a "Think" switch in the model's advanced parameters) and switch it on only for a hard question. 2. The chat interface added 2,000 tokens to every message Even with thinking off, Open WebUI was still slow. The Ollama logs showed why: my "Olá" arrived at the model as 2,051 tokens of input, when the message itself is a handful. Open WebUI attaches the descriptions of its built-in tools (memory, code interpreter, web search, image generation) to every message for models that support tool calling, and Gemma 4 does. On a cloud model you never notice. Here, the model spent about 55 seconds reading those tools and 1.5 seconds writing the answer. The tools were also useless: web search with no internet doesn't search anything. The fix was to untick those capabilities in the model's settings (Admin Panel, Settings, Models) and to turn off the extra tasks that call the model behind your back: tag generation, follow-up suggestions and autocomplete. Every one of those is another request in a queue of one. On slow hardware, the size of the prompt matters more than the size of the answer. Do the math for any tool you put in front of a local model: at 15 to 30 tokens per second of prompt reading, 10,000 tokens of system prompt means 5 to 11 minutes before the first word. That rules out most coding agents built for cloud models on this box. 3. The model switch Not a bug, a cost: 10 to 20 seconds whenever I jumped between Gemma and Qwen. I learned to stay in one model per session. --- How I used it from the Mac Two ways, both over the home network. The terminal. I installed only the Ollama client on the Mac and pointed it to the mini PC. I use the fish shell, so the setup is two lines plus one function per model: set -Ux OLLAMA_HOST http://192.168.1.214:11434 function gemma ollama run gemma4:e4b --verbose --think=false $argv end Typing gemma opens an interactive chat that runs on the mini PC. --verbose prints the speed after every answer, which turned the whole week into a small benchmark: eval rate: 9.73 tokens/s prompt eval rate: 7.54 tokens/s total duration: 1.81s That run was a short greeting; a real three-sentence explanation of DNS took about 16 seconds end to end, at around 6 tokens per second. The browser. Open WebUI on http://192.168.1.214:3000, for the two things the terminal does badly: keeping a searchable history and sending images. During the week I used it for three things: | Use | Model | How it went | | --- | --- | --- | | Quick questions ("what does this flag do?") | Gemma, terminal | The best fit. Short answers arrive in seconds. | | Small code: explain a snippet, write a function, read a pasted log | Qwen | Useful for small pieces. Pasting code is where Vulkan's faster prompt reading pays off. | | Reading screenshots and photos | Gemma, Open WebUI | It works, and nothing leaves the house. Slower than text. | What I didn't do is real daily work: long conversations, large files, an agent editing a project. At 5 to 8 tokens per second, the waiting adds up fast. --- Would 32 GB of RAM make it faster? This was my first instinct, and it's mostly wrong. More RAM lets you load bigger models. It doesn't make generation faster. Generating each token means reading the model's weights from memory, so the ceiling is roughly memory bandwidth divided by model size. This is a rule of thumb, not an exact formula, but it's consistent with what I measured: Dual-channel DDR4-2400: 2 channels × 8 bytes × 2,400 MT/s ≈ 38 GB/s (theoretical peak) Qwen2.5-Coder 7B: 4.7 GB of weights Ceiling ≈ 38 / 4.7 ≈ 8 tokens/s (measured: 4.5 to 5.5) The 38 GB/s is the theoretical peak. Real memory traffic gets less than that, which is part of why the measured speed sits below the ceiling. The 3300U's memory controller tops out at DDR4-2400 in dual channel (Notebookcheck). Going from 16 to 32 GB doesn't move that number. It lets you load a 14B model, which is about twice as big, so it would generate roughly half as fast. One exception is worth checking. Reviews of this model show units shipping with a single 16 GB stick and one free slot. One stick means single channel, half the bandwidth. If that's your unit, two matched sticks are the one memory upgrade that can make it faster. Check before you buy: sudo dmidecode -t memory | grep -E "Size|Locator|Speed" What would really change the experience is a different class of machine: one where the GPU has fast memory and lots of it. A mini PC like the Bosgame M5, with an AMD Ryzen AI Max+ 395 and 128 GB of LPDDR5X shared between CPU and GPU, has around 256 GB/s of bandwidth. By the same rule of thumb, that's a ceiling several times higher for the same model, and enough memory for much larger ones. I haven't tested one myself. A friend bought one, tested it and is happy with the results, but it's a big investment: at the time of writing it costs several times more than my mini PC, and prices move a lot with memory supply. --- So, was it worth it? My verdict after a week: worth it for quick questions, privacy and small pieces of text or code. Too slow for daily work. | | Offline on the mini PC | Cloud model | | --- | --- | --- | | Privacy | Prompts never leave the house | Prompts go to a provider | | Cost per use | No API fees (hardware and electricity only) | Subscription or per token | | Works without internet | Yes, anything on the home network | No | | Speed | 5 to 8 tokens/s; long prompts are painful | Fast enough not to think about it | | Quality on hard problems | A 4B to 7B model: fine for small tasks | Much stronger | | Agents and big contexts | Not realistic here | Yes | The part I'd keep even if I switched the box off tomorrow is what it taught me: on modest hardware, speed is mostly about memory bandwidth and prompt size, and the defaults of tools built for cloud models (thinking on, a dozen built-in tools) can make a working setup feel broken. If you have an old laptop or a cheap mini PC, try this before buying anything. A weekend is enough to learn where your floor is, and the firewall rules above keep the experiment truly offline. --- FAQ Do I need Proxmox? No. Proxmox only gives the models their own container on a box that runs other things too. The steps above work on any Debian or Ubuntu machine; I'll cover the Proxmox side in a separate article. Why Gemma 4 E4B and Qwen2.5-Coder 7B? They are small enough to fit in 10 GB of RAM at 4-bit quantization, and they cover two different needs: general questions with image input, and code. Is Ollama's network API safe? It has no authentication. Only expose it to a network you trust, and restrict it with firewall rules to the clients that need it. Should I use the integrated GPU? Measure both. On this box, Vulkan made prompt reading much faster for Qwen and generation faster for Gemma, but generation slower for Qwen. Ten minutes of testing with --verbose answers it for your hardware. --- Takeaway - "Offline" can be a firewall rule. Block outbound traffic from the AI box and use it from your other devices over the home network. - An integrated GPU shares your RAM. It speeds up prompt reading more than generation. - Check the defaults first. Thinking mode and built-in tools turned a 2-second answer into 25 to 55 seconds. - Prompt size is the hidden cost. Every token a tool adds has to be read at 15 to 30 tokens per second. - More RAM buys capacity, not speed. Bandwidth sets the ceiling; dual channel matters more than 32 GB. - Local AI is a great second tool, not yet a replacement on cheap hardware. What's the smallest machine you've run a local model on, and what did you actually use it for? Tell me in the comments. --- I'm Diogo Soares, a Staff AI Engineer working on AI agents and legacy modernization. If this was useful, follow me here on DEV.to and on Instagram at @diogosoares.dev, where the numbers from this experiment become a carousel you can save for your own homelab. This article also gets a video walkthrough on my YouTube channel, Diogo Soares Dev, so subscribe there for the next ones. Let's also connect on LinkedIn, or check out diogosoares.dev.

    1 reaction
  6. Run a private ChatGPT-style UI for local models with Open WebUI You can get a ChatGPT-style interface that runs on your own machine and talks to local models. Open WebUI is a self-hosted web front end for Ollama and OpenAI-compatible APIs, and the install is one command. The short version is on the Deduped use-case page. Here is the full path with the exact commands from the README. Option 1: pip If you have Python set up, install and run: pip install open-webui open-webui serve Then open the local address it prints in your browser and create the first account. The first account becomes the admin. Option 2: Docker, with Ollama on the same machine This is the common setup. Ollama runs on the host and the container reaches it through host.docker.internal: 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 Open localhost. What each flag does: - -p 3000:8080 publishes the UI on port 3000. - --add-host=host.docker.internal:host-gateway lets the container see Ollama on the host. - -v open-webui:/app/backend/data keeps chats and settings in a named volume, so upgrades do not wipe them. - --restart always brings it back after a reboot. Option 3: Ollama on another server Set OLLAMA_BASE_URL to the remote address: 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 Replace the example URL with your own server. Option 4: NVIDIA GPU image If you want the CUDA build: 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 This needs the NVIDIA container toolkit on the host. Pull a model Open WebUI is only the interface. Make sure Ollama has something to serve: ollama pull llama3 Then pick it from the model dropdown at the top of a new chat. Any model Ollama lists will appear. Why bother - Your prompts stay on your hardware when you use local models. - One UI for local models and OpenAI-compatible endpoints. - Chat history lives in your own volume. The Deduped site also has pages on chatting with your documents using local RAG and the full Open WebUI repo page. Tips - Back up the open-webui volume before upgrading the image. - Do not expose port 3000 to the internet without a reverse proxy and strong passwords. - If the container cannot see Ollama, check the --add-host flag first, then that Ollama is listening. Who this is for People who want a polished chat UI for local models without sending data to a hosted service. If you only chat occasionally with a hosted model, a plain subscription is simpler. Repo: open-webui/open-webui. --- Get one email every Monday with the week's hottest AI repos and exactly how to use them: subscribe free at dedupedai.com

  7. 1) ChatGPT → Open WebUI The same chat window you're used to, but it runs models on your own machine. Works offline once it's set up. 157K stars on GitHub. open-webui/open-webui

    12 likes · 238 views
  8. YouTube · · YouTube description · YAM Studio ID · open-webui/open-webui

    Top 5 Tool LLM Lokal dengan Bintang GitHub Terbanyak Ini lima tool LLM lokal dengan bintang GitHub terbanyak, dihitung hari ini. #1 Ollama — 184.967 bintang (ollama/ollama) #2 Open Webui — 156.917 bintang (open-webui/open-webui) #3 Llama.Cpp — 132.502 bintang (ggml-org/llama.cpp) #4 Vllm — 95.680 bintang (vllm-project/vllm) #5 Gpt4All — 77.354 bintang (nomic-ai/gpt4all) Empat dari lima pakai lisensi open source. Open Webui pengecualiannya. Kamu pakai yang mana? Tulis di komentar 👇 Data: Bintang Github · 27 Okt 2026 #Shorts #AItools #GitHub #opensource #belajarAI #programmer

    1 like · 49 views
  9. Reddit · · r/OpenWebUI · u/ClassicMain · open-webui/open-webui

    Open WebUI 0.12.4: HIDE ANY CONTROL from your users, skills that load ON DEMAND, compaction you can see, multi-select chats, bulk file downloads, a big ACCESSIBILITY pass and group saves in under a second with thousands online. 0.12.3 shipped nine days ago. 0.12.4 brings 119 changelog entries from 385 commits: 42 new features, 68 fixes and 9 changes. It also contains security fixes, so update soon. You decide what your users see. Admins can now hide single controls from users, under Visible controls in Admin Settings > Interface or with UI_VISIBILITY. That covers the + menu (Capture, Compare text, Attach Webpage, Attach Files, Attach Notes, Attach Knowledge and Reference Chats), the /status, /model and /settings commands, Fork, Merge Responses, Preview, Artifacts, Archive and Tags in chats, the usage info, the capabilities, default features and built-in tools in the model editor, Set as default and Keep in Sidebar for models, and settings such as the Usage tab and the speech engines. Hidden controls keep their values and the features behind them keep working. Admins still see everything. Open WebUI also hides options that cannot take effect: Capture without a Vision model, Attach Notes without the Notes permission, the search engine settings while web search is off, the Call button without speech-to-text, and many more like them. Saved values stay for when they apply again. The Access button only shows for people allowed to share, and the + menu and the # and @ lists only offer what can actually be attached. Smaller prompts, and compaction you can see. Turn on Load selected skills on demand in Admin Settings > General, or set ENABLE_SKILL_LAZY_LOADING, and skills selected in the chat or attached to a model are only listed. The model loads one when it needs it, so their full instructions no longer ride along with every message. Skills you mention in the message still load right away. It is off by default and needs the built-in Skills tool. A "Context compacted" line now marks the spot where older messages were summarized. Open it to read the summary. It also shows inside a reply when compaction ran between tool calls, and progress and errors now show in the chat, where they used to be pop-ups. Compaction also runs in temporary chats and in short chats that are already over the threshold, such as one question with a reply full of tool output, so the follow-up no longer fails with a context length error. Tools from tool servers, Open Terminal included, now reach the model in the same form after a restart, so your provider's prompt cache keeps working and long chats are not processed again from scratch. Built for big instances. With thousands of users online, saving a group or changing its members or permissions now finishes in well under a second. It took several seconds and reloaded the open chat of everyone online. Renaming, sharing, moving or deleting a folder, and deleting all chats, got the same fix. Posting in a channel with many members online returns in a fraction of a second. The Admin Analytics dashboard uses fewer and lighter database queries and opens faster on instances with many messages. Analytics now ranks models and users by tokens by default, with a switch back to messages. The usage chart adds volume and activity views, a single model view, a comparison with the previous period, a choice of time steps and the Year to date and Last 12 months ranges. For admins with bigger setups: - LDAP users without a mail attribute can sign in through a default email domain (LDAP_DEFAULT_EMAIL_DOMAIN). Pick a domain you control: those users get username@domain and sign in to any existing account with that address. - The Hidden Models permission lets a group build workspace models on hidden base models, which stay out of their model picker. - With audit logging on and /chat removed from AUDIT_EXCLUDED_PATHS, every reply and tool call round writes an audit entry with the model and the input, output and total tokens. - Connections set to OAuth now also send the user's OAuth token when the user calls the API with an API key. - MCP connections work with servers on the stateless 2026-07-28 protocol, and older servers still connect. Accessibility. Screen readers now announce buttons, menus, switches, headings, lists and status changes by name across the app, down to when a reply starts and finishes. Keyboard users move through the input, user, chat and Terminal menus with the arrow keys, and focus stays or returns where you expect in the model picker, the sidebar and Archived Chats. Notifications in the light theme and the dates in Archived Chats meet the 4.5:1 contrast minimum, and the Archived Chats and Keyboard lists work at 400% zoom. With Accessibility Mode on, pinch zoom works on phones and small buttons such as More and Eject in the model picker are at least 24 pixels. Everyday things. - Shift-click a chat in the sidebar to start a selection, then archive or delete the selected chats together. Escape clears it. - Manage Files in Settings > Data Controls downloads single files, or selects several, or every file matching a search, to delete them or download them as one zip. - On phones, swipe left across a chat to pull in Chat Controls. - The terminal file browser has a grid view, item counts on folders and hover previews on larger screens. - Folders get a New Chat item in their menu and a description. - The sidebar hover preview of a chat shows how many turns it has. - Click a setting's label to flip its switch or focus its field. - If the page reloads or drops its connection while Ask User, a tool approval or an MCP input request waits for you, the question comes back when you reopen the chat within a minute. - Chat Controls save one setting at a time, so a copy of the chat open on another device no longer wipes your system prompt with older settings. - Files dropped into a knowledge base show up right away, switch to Processing on the server and only show as done once they are indexed. - Hovering an owner's name across the workspace opens their profile card. - The model can edit a note by finding and replacing text. The bugs you told us about. Since 0.12.3, chats opened through a share link, or by an admin viewing another user's chat, reloaded over and over and jumped back to the bottom, so you could not scroll up. Fixed. Since 0.12.3, messages showed an extra space at the start of each paragraph and before bold, italic or linked text. Fixed. Archiving all chats and then deleting a folder deleted those archived chats for good. Fixed: Archive All Chats now takes the chats out of their folders. More Concise and Add Details now rewrite the reply. The model used to get only the instruction and answer things like "OK, I'll keep answers shorter". Fixed. Deleting the chat you were looking at left its messages on screen, and the next message failed. Fixed. On SQLite, closing a page while it was still loading could lose database connections until requests hung or failed with a 503. Fixed. Since 0.12.3, with the Redis websocket manager and retry_on_timeout set, new connections could hang after a Redis drop until the instance was restarted. Fixed. Attached web pages came back empty on fresh installs after a broken update of a library underneath. Fixed. Images the model made after a tool approval never showed up, and the model kept making more. Fixed. A stop sequence containing % stopped every message from sending. Fixed. Security. This release contains security fixes. They are not listed in the changelog; the advisories follow once their CVEs are assigned. Update as soon as you can. Before you upgrade: - Direct Integrations is off by default. While it is off, tool servers and Open Terminal connections that users and admins saved in their Integrations settings are no longer used in chats. If you rely on them, turn on Direct Integrations in Admin Settings > Connections or set ENABLE_DIRECT_INTEGRATIONS. - The Docker image now runs Python 3.12 on Debian 13. Custom functions, tools and packages installed with pip inside the container need versions that support Python 3.12. - MCP_INITIALIZE_TIMEOUT (10 seconds by default) now also limits listing tools and reading resources, so slow MCP servers may need a higher value. MCP connections only follow redirects that stay on the same address. - Saving a model, prompt, tool, skill, knowledge base, note, channel or calendar no longer changes who it is shared with. Sharing changes only in the item's Access settings. Sharing permissions now also apply through the API, and a change you are not allowed to make is refused with an error. - Manage Files lists only your own files, for admins too. - Holding Shift over a sidebar chat no longer shows the quick Archive and Delete buttons, since Shift-click now selects. Full changelog: github.com/open-webui/open-webui/releases/tag/v0.…

    115 points · 28 comments
  10. Open WebUI: 92,252 fingerprints, 92,051 titles, and 7,087 hosts that kept the default port Open WebUI: 92,252 fingerprints, 92,051 titles, and 7,087 hosts that kept the default port Most products in this batch show a wide gap between their application fingerprint count and their page title count. Open WebUI does not. The two numbers converge within a few hundred of each other, and the convergence is worth more attention than the size of the figure. The measurements On 23 October 2026, ZoomEye returned 92,252 matches for app="Open WebUI", 92,051 matches for title="Open WebUI", and 7,087 matches for title="Open WebUI" && port="8080". A convergence of that order says the fingerprint is derived from something in the page that also supplies the title. In practice that means the scanner recognises the product from its interface response rather than from a header or a banner that other software might reuse. The agreement is a sign of a clean fingerprint, not of a large vulnerable population. The port number tells the opposite story. Only 7,087 of the 92,051 title matches answer on 8080, which is the default in the product's quick-start documentation. Roughly ninety-two percent of the population is elsewhere: behind a reverse proxy on 443, on a custom port, or on a host where the port mapping was changed during deployment. What sits behind the login Open WebUI is a chat interface in front of a model server. Its configuration holds upstream endpoints, and those endpoints frequently require an API key. It also stores conversation history, uploaded documents used for retrieval, user accounts, and often a database with all of the above inside it. Two design details make that store more consequential than a normal web application's data. The upstream API keys are credentials with a billing relationship attached, so a leak has a financial dimension as well as a data one. And the retrieval feature means the application holds documents that users uploaded specifically because they wanted them searched, which is a category that tends to include internal material. Why the default-port minority matters A deployment that kept port 8080 is likely to have been installed from the quick-start rather than composed for production. Quick-start installations are the population where default administrator credentials, open registration, and a direct connection to a local model server are most common. That is an inference about deployment maturity, not a claim about security. It is useful because it narrows the review to 7,087 hosts out of 92,051 without requiring any additional data. The larger group behind proxies is not safer by definition. A proxy adds TLS and a hostname. It does not add authentication if the application's own login is the only gate, and it does not restrict registration if the application allows it. Reading the evidence without overreach State the facts: 92,252 fingerprint matches, 92,051 title matches, 7,087 title matches on port 8080, sub-type all, collected on 23 October 2026. None of those counts describes a version. Open WebUI ships frequently and its changelog is the authoritative record of what changed. What the numbers support is a statement about adoption. This is a widely deployed interface for language models, and most of its deployments are fronted by a proxy on a standard port. An organisation that wants to know its own exposure does not need the global number. It needs to know whether its own instance allows self-registration, which model endpoints it can reach, and whether the accounts that hold those endpoint keys belong to the application or to a person. Concrete hardening Disable open registration unless the instance is intentionally public. An interface that lets a new account in also lets that account use the model endpoints the administrator configured, which is a budget problem and a data problem at once. Scope the upstream keys. A key that can call every model on a provider account should not be the key an application uses. Provider-side limits and separate keys per deployment contain the cost of a leak. Then look at what the retrieval store contains. An uploaded document collection is a data set, and the question worth asking is whether it holds material that the application's user base is not cleared to read. That is a governance question the product cannot answer for you. The closing measurement point Converging fingerprints and titles are a gift to anyone building an inventory: the two independent methods agree, so the count is trustworthy. Diverging port counts are a gift of a different kind, because they separate the deployments that followed the documentation from the ones that went further. Both observations come from the same three queries, and neither of them required touching a single host. References - Open WebUI quick-start documentation, docs.openwebui.com - Open WebUI project repository, open-webui/open-webui - ZoomEye AI query results collected 23 October 2026 for app="Open WebUI", title="Open WebUI", and title="Open WebUI" && port="8080", sub-type all

Trending awards, every completed day and week
Gold
01st place finishes
Silver
02nd place finishes
Bronze
13rd place finishes
Awarded repositories
1Owned by open-webui now

Repositories

Ordered by gold, then silver, then bronze.

  1. open-webuiBest: 3rd by stars, 498 stars001

Every award

Top-three finishes of these repositories in completed trending days and weeks, newest first.

  1. #3 by starsDaily trending
    498 stars
    open-webui

A repository earns an award for finishing first, second or third in a completed trending day or week, ranked by new stars, new forks or pull request authors. Awards follow a repository through renames and transfers and count toward its current owner. Weeks run Monday to Sunday, UTC.