Native GTK3 + WebKit2GTK desktop app for Ollama on Linux.
This is a Linux port of the official Ollama desktop app (from the main ollama/ollama repo).
The official app ships Windows and macOS binaries only. This port removes that restriction.
Tested on: Ubuntu 26.04 · GNOME 50 · Wayland · NVIDIA RTX 5070
- A GTK3 window containing a WebKit2GTK browser rendering Ollama's React frontend
- Talks to your existing Ollama service at
localhost:11434— does not start or manage the Ollama daemon - Full chat UI: model selection, file attachments, settings, chat history (SQLite)
- Single-instance lockfile, zenity file/folder dialogs, dark mode
- Wayland-native — no XWayland required
sudo apt install libwebkit2gtk-4.1-0 libgtk-3-0 zenitysudo apt install \
libwebkit2gtk-4.1-dev libgtk-3-dev \
golang-go nodejs npm \
pkg-config gitGo 1.21+ required. Check with
go version.
git clone https://github.com/johnohhh1/ollama-webchat-ubuntu.git
cd ollama-webchat-ubuntu
bash build.shThe script will:
- Clone ollama at the pinned tag
- Apply the Linux port patch
- Build the React frontend (
npm run build) - Compile the Go binary
The binary lands at build/ollama-app. Install it:
sudo cp build/ollama-app /usr/local/bin/ollama-appMake sure Ollama is running:
ollama serve # or: sudo systemctl start ollamaLaunch the app:
ollama-appOr search for it in your application launcher.
If the app crashes without cleaning up, delete the lock before restarting:
rm -f ~/.ollama/app.lock && ollama-appThe upstream app/ directory was gated with //go:build windows || darwin on ~40 files. The underlying C webview library (webview.h) already has full GTK/WebKit2GTK Linux support built in — only the Go build tags were blocking Linux compilation.
| File / Area | Change |
|---|---|
~40 app/**/*.go files |
Build tag: windows || darwin → windows || darwin || linux |
app/webview/webview.go |
Added Linux CGo flags: WEBVIEW_GTK, gtk+-3.0, webkit2gtk-4.1 |
app/cmd/app/app_linux.go |
GTK window management, lockfile single-instance, signal cleanup |
app/cmd/app/webview_linux.go |
Webview struct + JS bindings (show/hide/drag/zoom/file picker) |
app/cmd/app/filepicker_linux.go |
zenity directory and multi-file choosers |
app/server/server_linux.go |
Health-check only — never spawns a process, uses existing systemd service |
app/updater/updater_linux.go |
All no-ops — no auto-update on Linux |
app/dialog/dlgs_linux.go |
zenity dialogs (yes/no, info, error, file open/save) |
app/ui/app/src/components/ChatSidebar.tsx |
Settings link was isWindows-gated; fixed to show on Linux too |
On NVIDIA proprietary drivers you'll see Mesa EGL warnings — these are harmless. WebKit falls back to Cairo software rendering for the compositor. For a chat UI this is imperceptible.
libEGL warning: egl: failed to create dri2 screen
libEGL warning: pci id for fd N: 10de:XXXX, driver (null)
| Distro | GTK | WebKit | Status |
|---|---|---|---|
| Ubuntu 26.04 | 3.24 | 4.1 | Tested |
| Ubuntu 24.04 | 3.24 | 4.1 | Should work |
| Fedora 40+ | 3.24 | 4.1 | Should work |
| Arch Linux | 3.24 | 4.1 | Should work |
Requires
webkit2gtk-4.1. Ubuntu 22.04 ships4.0only — not compatible without a PPA.
The Ollama desktop app source is MIT licensed (see ollama/ollama). The Linux port files in this repo are also MIT.