Skip to content

Commit 6325613

Browse files
authored
Merge pull request open-webui#14675 from open-webui/dev
0.6.14
2 parents 7b248fc + fd8cdb3 commit 6325613

File tree

156 files changed

+5283
-1822
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

156 files changed

+5283
-1822
lines changed

.env.example

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,15 @@ OPENAI_API_KEY=''
77

88
# AUTOMATIC1111_BASE_URL="http://localhost:7860"
99

10+
# For production, you should only need one host as
11+
# fastapi serves the svelte-kit built frontend and backend from the same host and port.
12+
# To test with CORS locally, you can set something like
13+
# CORS_ALLOW_ORIGIN='http://localhost:5173;http://localhost:8080'
14+
CORS_ALLOW_ORIGIN='*'
15+
16+
# For production you should set this to match the proxy configuration (127.0.0.1)
17+
FORWARDED_ALLOW_IPS='*'
18+
1019
# DO NOT TRACK
1120
SCARF_NO_ANALYTICS=true
1221
DO_NOT_TRACK=true

.gitattributes

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,49 @@
1-
*.sh text eol=lf
1+
# TypeScript
2+
*.ts text eol=lf
3+
*.tsx text eol=lf
4+
5+
# JavaScript
6+
*.js text eol=lf
7+
*.jsx text eol=lf
8+
*.mjs text eol=lf
9+
*.cjs text eol=lf
10+
11+
# Svelte
12+
*.svelte text eol=lf
13+
14+
# HTML/CSS
15+
*.html text eol=lf
16+
*.css text eol=lf
17+
*.scss text eol=lf
18+
*.less text eol=lf
19+
20+
# Config files and JSON
21+
*.json text eol=lf
22+
*.jsonc text eol=lf
23+
*.yml text eol=lf
24+
*.yaml text eol=lf
25+
*.toml text eol=lf
26+
27+
# Shell scripts
28+
*.sh text eol=lf
29+
30+
# Markdown & docs
31+
*.md text eol=lf
32+
*.mdx text eol=lf
33+
*.txt text eol=lf
34+
35+
# Git-related
36+
.gitattributes text eol=lf
37+
.gitignore text eol=lf
38+
39+
# Prettier and other dotfiles
40+
.prettierrc text eol=lf
41+
.prettierignore text eol=lf
42+
.eslintrc text eol=lf
43+
.eslintignore text eol=lf
44+
.stylelintrc text eol=lf
45+
.editorconfig text eol=lf
46+
47+
# Misc
48+
*.env text eol=lf
49+
*.lock text eol=lf

.github/workflows/docker-build.yaml

Lines changed: 177 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,18 @@ env:
1414

1515
jobs:
1616
build-main-image:
17-
runs-on: ${{ matrix.platform == 'linux/arm64' && 'ubuntu-24.04-arm' || 'ubuntu-latest' }}
17+
runs-on: ${{ matrix.runner }}
1818
permissions:
1919
contents: read
2020
packages: write
2121
strategy:
2222
fail-fast: false
2323
matrix:
24-
platform:
25-
- linux/amd64
26-
- linux/arm64
24+
include:
25+
- platform: linux/amd64
26+
runner: ubuntu-latest
27+
- platform: linux/arm64
28+
runner: ubuntu-24.04-arm
2729

2830
steps:
2931
# GitHub Packages requires the entire repository name to be in lowercase
@@ -111,16 +113,18 @@ jobs:
111113
retention-days: 1
112114

113115
build-cuda-image:
114-
runs-on: ${{ matrix.platform == 'linux/arm64' && 'ubuntu-24.04-arm' || 'ubuntu-latest' }}
116+
runs-on: ${{ matrix.runner }}
115117
permissions:
116118
contents: read
117119
packages: write
118120
strategy:
119121
fail-fast: false
120122
matrix:
121-
platform:
122-
- linux/amd64
123-
- linux/arm64
123+
include:
124+
- platform: linux/amd64
125+
runner: ubuntu-latest
126+
- platform: linux/arm64
127+
runner: ubuntu-24.04-arm
124128

125129
steps:
126130
# GitHub Packages requires the entire repository name to be in lowercase
@@ -210,17 +214,122 @@ jobs:
210214
if-no-files-found: error
211215
retention-days: 1
212216

217+
build-cuda126-image:
218+
runs-on: ${{ matrix.runner }}
219+
permissions:
220+
contents: read
221+
packages: write
222+
strategy:
223+
fail-fast: false
224+
matrix:
225+
include:
226+
- platform: linux/amd64
227+
runner: ubuntu-latest
228+
- platform: linux/arm64
229+
runner: ubuntu-24.04-arm
230+
231+
steps:
232+
# GitHub Packages requires the entire repository name to be in lowercase
233+
# although the repository owner has a lowercase username, this prevents some people from running actions after forking
234+
- name: Set repository and image name to lowercase
235+
run: |
236+
echo "IMAGE_NAME=${IMAGE_NAME,,}" >>${GITHUB_ENV}
237+
echo "FULL_IMAGE_NAME=ghcr.io/${IMAGE_NAME,,}" >>${GITHUB_ENV}
238+
env:
239+
IMAGE_NAME: '${{ github.repository }}'
240+
241+
- name: Prepare
242+
run: |
243+
platform=${{ matrix.platform }}
244+
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
245+
246+
- name: Checkout repository
247+
uses: actions/checkout@v4
248+
249+
- name: Set up QEMU
250+
uses: docker/setup-qemu-action@v3
251+
252+
- name: Set up Docker Buildx
253+
uses: docker/setup-buildx-action@v3
254+
255+
- name: Log in to the Container registry
256+
uses: docker/login-action@v3
257+
with:
258+
registry: ${{ env.REGISTRY }}
259+
username: ${{ github.actor }}
260+
password: ${{ secrets.GITHUB_TOKEN }}
261+
262+
- name: Extract metadata for Docker images (cuda126 tag)
263+
id: meta
264+
uses: docker/metadata-action@v5
265+
with:
266+
images: ${{ env.FULL_IMAGE_NAME }}
267+
tags: |
268+
type=ref,event=branch
269+
type=ref,event=tag
270+
type=sha,prefix=git-
271+
type=semver,pattern={{version}}
272+
type=semver,pattern={{major}}.{{minor}}
273+
type=raw,enable=${{ github.ref == 'refs/heads/main' }},prefix=,suffix=,value=cuda126
274+
flavor: |
275+
latest=${{ github.ref == 'refs/heads/main' }}
276+
suffix=-cuda126,onlatest=true
277+
278+
- name: Extract metadata for Docker cache
279+
id: cache-meta
280+
uses: docker/metadata-action@v5
281+
with:
282+
images: ${{ env.FULL_IMAGE_NAME }}
283+
tags: |
284+
type=ref,event=branch
285+
${{ github.ref_type == 'tag' && 'type=raw,value=main' || '' }}
286+
flavor: |
287+
prefix=cache-cuda126-${{ matrix.platform }}-
288+
latest=false
289+
290+
- name: Build Docker image (cuda126)
291+
uses: docker/build-push-action@v5
292+
id: build
293+
with:
294+
context: .
295+
push: true
296+
platforms: ${{ matrix.platform }}
297+
labels: ${{ steps.meta.outputs.labels }}
298+
outputs: type=image,name=${{ env.FULL_IMAGE_NAME }},push-by-digest=true,name-canonical=true,push=true
299+
cache-from: type=registry,ref=${{ steps.cache-meta.outputs.tags }}
300+
cache-to: type=registry,ref=${{ steps.cache-meta.outputs.tags }},mode=max
301+
build-args: |
302+
BUILD_HASH=${{ github.sha }}
303+
USE_CUDA=true
304+
USE_CUDA_VER=cu126
305+
306+
- name: Export digest
307+
run: |
308+
mkdir -p /tmp/digests
309+
digest="${{ steps.build.outputs.digest }}"
310+
touch "/tmp/digests/${digest#sha256:}"
311+
312+
- name: Upload digest
313+
uses: actions/upload-artifact@v4
314+
with:
315+
name: digests-cuda126-${{ env.PLATFORM_PAIR }}
316+
path: /tmp/digests/*
317+
if-no-files-found: error
318+
retention-days: 1
319+
213320
build-ollama-image:
214-
runs-on: ${{ matrix.platform == 'linux/arm64' && 'ubuntu-24.04-arm' || 'ubuntu-latest' }}
321+
runs-on: ${{ matrix.runner }}
215322
permissions:
216323
contents: read
217324
packages: write
218325
strategy:
219326
fail-fast: false
220327
matrix:
221-
platform:
222-
- linux/amd64
223-
- linux/arm64
328+
include:
329+
- platform: linux/amd64
330+
runner: ubuntu-latest
331+
- platform: linux/arm64
332+
runner: ubuntu-24.04-arm
224333

225334
steps:
226335
# GitHub Packages requires the entire repository name to be in lowercase
@@ -420,6 +529,62 @@ jobs:
420529
run: |
421530
docker buildx imagetools inspect ${{ env.FULL_IMAGE_NAME }}:${{ steps.meta.outputs.version }}
422531
532+
merge-cuda126-images:
533+
runs-on: ubuntu-latest
534+
needs: [build-cuda126-image]
535+
steps:
536+
# GitHub Packages requires the entire repository name to be in lowercase
537+
# although the repository owner has a lowercase username, this prevents some people from running actions after forking
538+
- name: Set repository and image name to lowercase
539+
run: |
540+
echo "IMAGE_NAME=${IMAGE_NAME,,}" >>${GITHUB_ENV}
541+
echo "FULL_IMAGE_NAME=ghcr.io/${IMAGE_NAME,,}" >>${GITHUB_ENV}
542+
env:
543+
IMAGE_NAME: '${{ github.repository }}'
544+
545+
- name: Download digests
546+
uses: actions/download-artifact@v4
547+
with:
548+
pattern: digests-cuda126-*
549+
path: /tmp/digests
550+
merge-multiple: true
551+
552+
- name: Set up Docker Buildx
553+
uses: docker/setup-buildx-action@v3
554+
555+
- name: Log in to the Container registry
556+
uses: docker/login-action@v3
557+
with:
558+
registry: ${{ env.REGISTRY }}
559+
username: ${{ github.actor }}
560+
password: ${{ secrets.GITHUB_TOKEN }}
561+
562+
- name: Extract metadata for Docker images (default latest tag)
563+
id: meta
564+
uses: docker/metadata-action@v5
565+
with:
566+
images: ${{ env.FULL_IMAGE_NAME }}
567+
tags: |
568+
type=ref,event=branch
569+
type=ref,event=tag
570+
type=sha,prefix=git-
571+
type=semver,pattern={{version}}
572+
type=semver,pattern={{major}}.{{minor}}
573+
type=raw,enable=${{ github.ref == 'refs/heads/main' }},prefix=,suffix=,value=cuda126
574+
flavor: |
575+
latest=${{ github.ref == 'refs/heads/main' }}
576+
suffix=-cuda126,onlatest=true
577+
578+
- name: Create manifest list and push
579+
working-directory: /tmp/digests
580+
run: |
581+
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
582+
$(printf '${{ env.FULL_IMAGE_NAME }}@sha256:%s ' *)
583+
584+
- name: Inspect image
585+
run: |
586+
docker buildx imagetools inspect ${{ env.FULL_IMAGE_NAME }}:${{ steps.meta.outputs.version }}
587+
423588
merge-ollama-images:
424589
runs-on: ubuntu-latest
425590
needs: [build-ollama-image]

.prettierrc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,6 @@
55
"printWidth": 100,
66
"plugins": ["prettier-plugin-svelte"],
77
"pluginSearchDirs": ["."],
8-
"overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }]
8+
"overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }],
9+
"endOfLine": "lf"
910
}

CHANGELOG.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,45 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [0.6.14] - 2025-06-10
9+
10+
### Added
11+
12+
- 🤖 **Automatic "Follow Up" Suggestions**: Open WebUI now intelligently generates actionable "Follow Up" suggestions automatically with each message you send, helping you stay productive and inspired without interrupting your flow; you can always disable this in Settings if you prefer a distraction-free experience.
13+
- 🧩 **OpenAI-Compatible Embeddings Endpoint**: Introducing a fully OpenAI-style '/api/embeddings' endpoint—now you can plug in OpenAI-style embeddings workflows with zero hassle, making integrations with external tools and platforms seamless and familiar.
14+
- ↗️ **Model Pinning for Quick Access**: Pin your favorite or most-used models to the sidebar for instant selection—no more scrolling through long model lists; your go-to models are always visible and ready for fast access.
15+
- 📌 **Selector Model Item Menu**: Each model in the selector now features a menu where you can easily pin/unpin to the sidebar and copy a direct link—simplifying collaboration and staying organized in even the busiest environments.
16+
- 🛑 **Reliable Stop for Ongoing Chats in Multi-Replica Setups**: Stopping or cancelling an in-progress chat now works reliably even in clustered deployments—ensuring every user can interrupt AI output at any time, no matter your scale.
17+
- 🧠 **'Think' Parameter for Ollama Models**: Leverage new 'think' parameter support for Ollama—giving you advanced control over AI reasoning process and further tuning model behavior for your unique use cases.
18+
- 💬 **Picture Description Modes for Docling**: Customize how images are described/extracted by Docling Loader for smarter, more detailed, and workflow-tailored image understanding in your document pipelines.
19+
- 🛠 **Settings Modal Deep Linking**: Every tab in Settings now has its own route—making direct navigation and sharing of precise settings faster and more intuitive.
20+
- 🎤 **Audio HTML Component Token**: Easily embed and play audio directly in your chats, improving voice-based workflows and making audio content instantly accessible and manageable from any conversation.
21+
- 🔑 **Support for Secret Key File**: Now you can specify 'WEBUI_SECRET_KEY_FILE' for more secure and flexible key management—ideal for advanced deployments and tighter security standards.
22+
- 💡 **Clarity When Cloning Prompts**: Cloned workspace prompts are clearly labelled with "(Clone)" and IDs have "-clone", keeping your prompt library organized and preventing accidental overwrites.
23+
- 📝 **Dedicated User Role Edit Modal**: Updating user roles now reliably opens a dedicated edit user modal instead of cycling through roles—making it safer and more clear to manage team permissions.
24+
- 🏞️ **Better Handling & Storage of Interpreter-Generated Images**: Code interpreter-generated images are now centrally stored and reliably loaded from the database or cloud storage, ensuring your artifacts are always available.
25+
- 🚀 **Pinecone & Vector Search Optimizations**: Applied latest best practices from Pinecone for smarter timeouts, intelligent retry control, improved connection pooling, faster DNS, and concurrent batch handling—giving you more reliable, faster document search and RAG performance without manual tweaks.
26+
- ⚙️ **Ollama Advanced Parameters Unified**: 'keep_alive' and 'format' options are now integrated into the advanced params section—edit everything from the model editor for flexible model control.
27+
- 🛠️ **CUDA 12.6 Docker Image Support**: Deploy to NVIDIA GPUs with capability 7.0 and below (e.g., V100, GTX1080) via new cuda126 image—broadening your hardware options for scalable AI workloads.
28+
- 🔒 **Experimental Table-Level PGVector Data Encryption**: Activate pgcrypto encryption support for pgvector to secure your vector search table contents, giving organizations enhanced compliance and data protection—perfect for enterprise or regulated environments.
29+
- 👁 **Accessibility Upgrades Across Interface**: Chat buttons and close controls are now labelled and structured for optimal accessibility support, ensuring smoother operation with assistive technologies.
30+
- 🎨 **High-Contrast Mode Expansions**: High-contrast accessibility mode now also applies to menu items, tabs, and search input fields, offering a more readable experience for all users.
31+
- 🛠️ **Tooltip & Translation Clarity**: Improved translation and tooltip clarity, especially over radio buttons, making the UI more understandable for all users.
32+
- 🔠 **Global Localization & Translation Improvements**: Hefty upgrades to Traditional Chinese, Simplified Chinese, Hebrew, Russian, Irish, German, and Danish translation packs—making the platform feel native and intuitive for even more users worldwide.
33+
-**General Backend Stability & Security Enhancements**: Refined numerous backend routines to minimize memory use, improve performance, and streamline integration with external APIs—making the entire platform more robust and secure for daily work.
34+
35+
### Fixed
36+
37+
- 🏷 **Feedback Score Display Improved**: Addressed overflow and visibility issues with feedback scores for more readable and accessible evaluations.
38+
- 🗂 **Admin Settings Model Edits Apply Immediately**: Changes made in the Model Editor within Admin Settings now take effect instantly, eliminating confusion during model management.
39+
- 🔄 **Assigned Tools Update Instantly on New Chats**: Models assigned with specific tools now consistently update and are available in every new chat—making tool workflows more predictable and robust.
40+
- 🛠 **Document Settings Saved Only on User Action**: Document settings now save only when you press the Save button, reducing accidental changes and ensuring greater control.
41+
- 🔊 **Voice Recording on Older iOS Devices Restored**: Voice input is now fully functional on older iOS devices, keeping voice workflows accessible to all users.
42+
- 🔒 **Trusted Email Header Session Security**: User sessions now strictly verify the trusted email header matches the logged-in user's email, ensuring secure authentication and preventing accidental session switching.
43+
- 🔒 **Consistent User Signout on Email Mismatch**: When the trusted email in the header changes, you will now be properly signed out and redirected, safeguarding your session's integrity.
44+
- 🛠 **General Error & Content Validation Improvements**: Smarter error handling means clearer messages and fewer unnecessary retries—making batch uploads, document handling, and knowledge indexing more resilient.
45+
- 🕵️ **Better Feedback on Chat Title Edits**: Error messages now show clearly if problems occur while editing chat titles.
46+
847
## [0.6.13] - 2025-05-30
948

1049
### Added

README.md

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,19 +73,29 @@ Want to learn more about Open WebUI's features? Check out our [Open WebUI docume
7373
</a>
7474
</td>
7575
<td>
76-
N8N • Does your interface have a backend yet?<br>Try <a href="https://n8n.io/">n8n</a>
76+
<a href="https://n8n.io/">n8n</a> • Does your interface have a backend yet?<br>Try <a href="https://n8n.io/">n8n</a>
7777
</td>
7878
</tr>
7979
<tr>
8080
<td>
8181
<a href="https://warp.dev/open-webui" target="_blank">
82-
<img src="https://docs.openwebui.com/sponsors/logos/warp.png" alt="n8n" style="width: 8rem; height: 8rem; border-radius: .75rem;" />
82+
<img src="https://docs.openwebui.com/sponsors/logos/warp.png" alt="Warp" style="width: 8rem; height: 8rem; border-radius: .75rem;" />
8383
</a>
8484
</td>
8585
<td>
8686
<a href="https://warp.dev/open-webui">Warp</a> • The intelligent terminal for developers
8787
</td>
8888
</tr>
89+
<tr>
90+
<td>
91+
<a href="https://tailscale.com/blog/self-host-a-local-ai-stack/?utm_source=OpenWebUI&utm_medium=paid-ad-placement&utm_campaign=OpenWebUI-Docs" target="_blank">
92+
<img src="https://docs.openwebui.com/sponsors/logos/tailscale.png" alt="Tailscale" style="width: 8rem; height: 8rem; border-radius: .75rem;" />
93+
</a>
94+
</td>
95+
<td>
96+
<a href="https://tailscale.com/blog/self-host-a-local-ai-stack/?utm_source=OpenWebUI&utm_medium=paid-ad-placement&utm_campaign=OpenWebUI-Docs">Tailscale</a> • Connect self-hosted AI to any device with Tailscale
97+
</td>
98+
</tr>
8999
</table>
90100

91101
---
@@ -181,6 +191,8 @@ After installation, you can access Open WebUI at [http://localhost:3000](http://
181191

182192
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.
183193

194+
Look at the [Local Development Guide](https://docs.openwebui.com/getting-started/advanced-topics/development) for instructions on setting up a local development environment.
195+
184196
### Troubleshooting
185197

186198
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).

0 commit comments

Comments
 (0)