mirror of
https://github.com/open-webui/open-webui.git
synced 2026-05-06 10:58:17 -05:00
[GH-ISSUE #470] feat: package as executable (desktop app) #50741
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @tjbck on GitHub (Jan 13, 2024).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/470
Ideally we would want something like Ollama
Maybe we could use https://pyinstaller.org/en/stable/
@justinh-rahb commented on GitHub (Jan 14, 2024):
More options for deployment are always a great idea. Packaging on macOS can bit a bit of a chore, you'll need a $99/yr developer account to create signed/notarized binaries. Not sure if you need to pay for signing Windows binaries or not, but it's at least easier to bypass for the user if you don't.
@oliverbob commented on GitHub (Jan 19, 2024):
While it is seems impractical to do it with Mac OS, it isn't the case on Windows and Linux, Android, etc. But I believe there is a way to package on multiplatform using flutter.
Thought that would perhaps mean creating a new sibling for flutter project. It allows you to create apps for desktop, and according to flutter docs, including iOS. Tried it in the past but didn't have mac. It works on all platforms though. The snap store also works as executable. Tried it in some apple devices to work.
@justinh-rahb commented on GitHub (Feb 15, 2024):
On the packaging front, I am actively looking into Flatpak:
Manifest:
Workflow:
I'll wait til after the rename to start the PR.
@tjbck commented on GitHub (Feb 16, 2024):
We should also have some thing like these from oobabooga/text-generation-webui, so that users can install without docker with one command as well and streamline the installation process:
https://github.com/oobabooga/text-generation-webui/blob/main/start_linux.sh
https://github.com/oobabooga/text-generation-webui/blob/main/start_macos.sh
https://github.com/oobabooga/text-generation-webui/blob/main/start_windows.bat
@justinh-rahb commented on GitHub (Feb 16, 2024):
I had thought of doing exactly this, I've got macOS and Linux mostly hammered out already for my own purposes. Since we're on the same page I'll get those polished up and ready for PR too 👍
@tjbck commented on GitHub (Feb 22, 2024):
We might also want to look into providing installation option using
pip install@dz0ny commented on GitHub (Feb 25, 2024):
One can use pipx it's far better than pip which often influnces whatever else you have installed on device.
@justinh-rahb commented on GitHub (Feb 25, 2024):
@dz0ny another we attempted before and might try again once they've worked out some bugs is uv
@cocktailpeanut commented on GitHub (Feb 29, 2024):
Hey guys, i created one https://x.com/cocktailpeanut/status/1763254738177462672
Basically I work on a project called pinokio, which is sort of like a browser but for automating anything on your computer, which can be used for installing and running and managing AI apps in native format (no need to mess with terminal stuff).
And I became a fan of this project lately and have been using it daily, so decided to write a 1 click launcher script for this. Hope you enjoy.
@justinh-rahb commented on GitHub (Feb 29, 2024):
That's awesome @cocktailpeanut, glad to see you've kept busy. Thanks for the shoutout! 🫶
@J-eremy commented on GitHub (Mar 11, 2024):
There are large issues when it comes to Windows and pretty much all Python packagers. Especially when it comes to single file packaged. Windows Defender picks up everything that isn't signed (See extortion). If Microsoft could get away not allowing you to install anything 3rd party not approved by them they would do that definitely. See S-Mode
@nightboysfm commented on GitHub (Mar 23, 2024):
Here it is, a one-click installation.
Create open-webui.bat, copy paste the content below and put in a folder (no spaces in the paths !), launch it and let the magic happening. It will download and put all the dependencies in a subfolder and create a python venv to keep things clean. Git is the only thing installed on system.
I think some paths are hard written in config files, so if you move the folder you might need to fix errors or just reinstall the thing.
It should be some improvement to do, but it works fine like this.
Content of the "open-webui.bat": https://pastebin.com/527wvn0k
If you want to enter the existing venv and make changes you can make a "cmd_venv.bat" (or a name you like) and start it: https://pastebin.com/wNArfua2
I hope it will help.
@tjbck commented on GitHub (Mar 23, 2024):
@nightboysfm Looks promising, feel free to make a PR!
@muhanstudio commented on GitHub (May 28, 2024):
This will be an excellent milestone. If you can achieve the Desktop app, or even the Android APP, you can change the condition of the LLM API application. We know that most of the excellent open source models are not good clients without good clients. , But maybe this project can bring hope, quickly bring the open source model to everyone who only clicks the EXE file or the APK file.
@motin commented on GitHub (Jun 7, 2024):
How about forking Ollama, re-using all that existing packaging already in place for OSX, Windows, Linux and also bundle open webui next to ollama?
@justinh-rahb commented on GitHub (Jun 7, 2024):
Packaging isn't the hard part, doing it accordingly with with certificate signing for various platforms is the hairy part everyone wishes to avoid.
@motin commented on GitHub (Jun 9, 2024):
I'd include certificate signing in the scope of packaging. Ollama has it figured out technically and it is obviously working (https://github.com/ollama/ollama/blob/main/.github/workflows/release.yaml) and the overlap of users installing Ollama desktop app and Open WebUI must be large. Agree that organizationally there are other challenges in how to set up and maintain the various developer programs/registrations, if that is what you mean as the hairy part I agree, but one route is to officially be shipped with the Ollama desktop app, using Ollama's certificates.
@justinh-rahb commented on GitHub (Jun 10, 2024):
While I'd love nothing more than the ultimate Ollama x WebUI collab by having them include us in their installer packages, I highly doubt they'd go for that. And I'd understand their reasons why probably.
Indeed you are correct, the main sticking point is managing the various developer accounts and credentials required with the platform-owners, which are also not without cost.
@motin commented on GitHub (Jun 10, 2024):
How about a bring-your-own-credentials model, where it is made easy to package and sign executables / desktop apps, but by default they are not signed (Ollama does this by only signing if SIGN=1 env var is set when running the bundling scripts). This way, anyone that needs signed artifacts (e.g. for distribution within their org) can do it themselves by following simple instructions.
@snakeying commented on GitHub (Jun 17, 2024):
As I mentioned before, this is undoubtedly the best open-source UI I have ever experienced on GitHub. However, for most people new to Docker, the installation process can be a nightmare. Even with detailed instructions, they still find the CLI too technical. Over the past few days, I recommended open-webui to several friends, but they all complained about the lack of a straightforward installation method. They preferred AnythingLLM because it only requires downloading and clicking to install, without the need for WSL, Docker, or similar tools. This proves that a simple installation process is a crucial aspect of the user experience.
I suggest we offer installation prompts similar to AnythingLLM, such as those found here: https://docs.useanything.com/installation/desktop/windows. We could add the following to our installation guide:
I understand this is not a perfect solution, but it at least provides more options for users and helps improve their overall experience. As @muhanstudio said, "quickly bring the open-source model to everyone who only clicks the EXE file or the APK file." Isn't user-friendliness one of the most important features of open-webui?
I sincerely hope this project continues to thrive and bring a better experience to more people. Once again, thank you to the development team and all the contributors for your hard work.
@RustoMCSpit commented on GitHub (Jul 4, 2024):
my friends use podman and havent heard of docker (surprisingly) so the only docker instructions confused them
@zhouxihong1 commented on GitHub (Aug 1, 2024):
I have packaged a Windows executable program for open-webui. Those in need can click the link to download it. It also supports modifying the .env file and is suitable for Windows x64.
https://github.com/zhouxihong1/open-webui/releases/download/V0.3.10/start_open_webui.7z
@steveepreston commented on GitHub (Aug 8, 2024):
agree with @snakeying!
after becoming familiar with this package and not finding an installer in releases section, I was about to give up.
In despair, I looked at the issues list and finding this issue gave me hope that it would be available.
aside from the painful installation of wsl and Docker, my main concern is that running the program in Docker may have slower performance and higher memory consumption compared to running it directly in Windows.
@steveepreston commented on GitHub (Aug 10, 2024):
thank you @zhouxihong1!
i downloaded and started your version successfully via
start_open_webui serve.im was not sure where to add models, so i have gone to Models section in
localhost:8080/admin/settingsbut got the error:Ollama API is disabledwhile ollama is up.@zhouxihong1 commented on GitHub (Aug 10, 2024):
you can edit env file or change web setting.
@steveepreston commented on GitHub (Aug 10, 2024):
thank you man! worked like a charm!
i suggest to enable it as default for next releases:
@steveepreston commented on GitHub (Aug 10, 2024):
@zhouxihong1 as 0.3.12 released in org repo and continuing, can you please create it's automation script/action for creating exe version and PL to here? so all can make sure it's always updated and covered officially ❤️
@zhouxihong1 commented on GitHub (Aug 10, 2024):
You're welcome, thank you for your suggestion. Compiling open-webui is not too difficult for me
@zhouxihong1 commented on GitHub (Aug 10, 2024):
We will consider adding automated script compilation in the future
@jerrychoices commented on GitHub (Aug 30, 2024):
@zhouxihong1 commented on GitHub (Aug 30, 2024):
Sure, I'll develop a Python script later that automates the compilation process with PyInstaller, making it easier to compile Open-WebUI within a virtual environment (venv).
可以,我将在晚些时间开发一个自动编译的python脚本,以方便能够通过pyinstaller 自动完成venv下的open-webui编译
@steveepreston commented on GitHub (Aug 30, 2024):
Hey @zhouxihong1!
version 0.3.16 released, Your last exe is for 0.3.10
I hope your efforts succeed soon. Thank you!
@zhouxihong1 commented on GitHub (Sep 5, 2024):
I wrote a script to compile open-webui, and it has passed self-testing on the latest version 0.3.18. If you need it, feel free to take it, and please give me a star.
https://github.com/zhouxihong1/build_start_open_webui
@jerrychoices commented on GitHub (Sep 6, 2024):
Great job. Currently, I have learned that some workers are using Tauri to package Svelte frontend applications. I am not familiar with Rust language. If someone familiar with Rust language could write a startup script to start Python backend before frontend startup, then open frontend and build it with Tauri, it would be a particularly good offline desktop application
@muhanstudio commented on GitHub (Oct 10, 2024):
I see many excellent examples of packaging and running the entire program, but is it possible for us to package the frontend as an independent app, distribute it across various platforms, and then just have the user input the backend address where we have deployed the server so that the client can run smoothly? I believe this could greatly reduce the pressure of dependency on the environment and make multi-platform distribution much more feasible. For the frontend alone, there are many mature cross-platform frameworks, such as Electron, Tauri, and WebView for mobile platforms.
@jerrychoices commented on GitHub (Oct 16, 2024):
yeah i been complite do tauri package it but it so complicate i dont know how to promote it ,not only just backend package but frontend and ollama serve and model files now i dont have elegant and concise way to integrate one
@clicktodev commented on GitHub (Oct 19, 2024):
Yes please, a packaged binary would be really helpful for non developers and easier installation of the app
@tjbck commented on GitHub (Jan 9, 2025):
Closing in favour of #8262
I'm actively working on this atm.
https://github.com/open-webui/app