From 68c9117904dfc66c2491eb512991eca07b473a91 Mon Sep 17 00:00:00 2001 From: df-cgdm Date: Fri, 14 Feb 2025 12:05:04 +0100 Subject: [PATCH 01/29] ENABLE_FORWARD_USER_INFO_HEADERS is also for ollama --- docs/getting-started/env-configuration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-started/env-configuration.md b/docs/getting-started/env-configuration.md index 09bd0c8..ad53630 100644 --- a/docs/getting-started/env-configuration.md +++ b/docs/getting-started/env-configuration.md @@ -567,7 +567,7 @@ The value of `API_KEY_ALLOWED_ENDPOINTS` should be a comma-separated list of end - type: `bool` - Default: `False` -- Description: Forwards user information (name, id, email, and role) as X-headers to OpenAI API. +- Description: Forwards user information (name, id, email, and role) as X-headers to OpenAI API and Ollama API. If enabled, the following headers are forwarded: - `X-OpenWebUI-User-Name` - `X-OpenWebUI-User-Id` From 2173b84e5e8b1827aef1cc5bd3b280e68f683ca7 Mon Sep 17 00:00:00 2001 From: jknapp Date: Sun, 23 Feb 2025 08:53:12 -0800 Subject: [PATCH 02/29] adding tutorial for HAProxy and Let's Encrypt --- docs/tutorials/https-haproxy.md | 169 ++++++++++++++++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 docs/tutorials/https-haproxy.md diff --git a/docs/tutorials/https-haproxy.md b/docs/tutorials/https-haproxy.md new file mode 100644 index 0000000..d32c45f --- /dev/null +++ b/docs/tutorials/https-haproxy.md @@ -0,0 +1,169 @@ +--- +sidebar_position: 201 +title: "πŸ”’ HTTPS using HAProxy" +--- + +:::warning +This tutorial is a community contribution and is not supported by the Open WebUI team. It serves only as a demonstration on how to customize Open WebUI for your specific use case. Want to contribute? Check out the contributing tutorial. +::: + +# HAProxy Configuration for Open WebUI + +HAProxy (High Availability Proxy) is specialized load-balancing and reverse proxy solution that is highly configurable and designed to handle large amounts of connections with a relatively low resource footprint. for more information, please see: https://www.haproxy.org/ + +## Install HAProxy and Let's Encrypt + +First, install HAProxy and Let's Encrypt's certbot: +### Redhat derivatives +```sudo dnf install haproxy certbot openssl -y``` +### Debian derivatives +```sudo apt install haproxy certbot openssl -y``` + +## HAProxy Configuration Basics + +HAProxy's configuration is by default stored in ```/etc/haproxy/haproxy.cfg```. This file contains all the configuration directives that determine how HAProxy will operate. + +The base configuration for HAProxy to work with Open WebUI is pretty simple. + +``` + #--------------------------------------------------------------------- +# Global settings +#--------------------------------------------------------------------- +global + # to have these messages end up in /var/log/haproxy.log you will + # need to: + # + # 1) configure syslog to accept network log events. This is done + # by adding the '-r' option to the SYSLOGD_OPTIONS in + # /etc/sysconfig/syslog + # + # 2) configure local2 events to go to the /var/log/haproxy.log + # file. A line like the following can be added to + # /etc/sysconfig/syslog + # + # local2.* /var/log/haproxy.log + # + log 127.0.0.1 local2 + + chroot /var/lib/haproxy + pidfile /var/run/haproxy.pid + maxconn 4000 + user haproxy + group haproxy + daemon + + #adjust the dh-param if too low + tune.ssl.default-dh-param 2048 +#--------------------------------------------------------------------- +# common defaults that all the 'listen' and 'backend' sections will +# use if not designated in their block +#--------------------------------------------------------------------- +defaults + mode http + log global + option httplog + option dontlognull + option http-server-close + option forwardfor #except 127.0.0.0/8 + option redispatch + retries 3 + timeout http-request 300s + timeout queue 2m + timeout connect 120s + timeout client 10m + timeout server 10m + timeout http-keep-alive 120s + timeout check 10s + maxconn 3000 + +#http +frontend web + #Non-SSL + bind 0.0.0.0:80 + #SSL/TLS + bind 0.0.0.0:443 ssl crt /path/to/ssl/folder/ + + #Let's Encrypt SSL + acl letsencrypt-acl path_beg /.well-known/acme-challenge/ + use_backend letsencrypt-backend if letsencrypt-acl + + #Subdomain method + acl chat-acl hdr(host) -i subdomain.domain.tld + #Path Method + acl chat-acl path_beg /owui/ + use_backend owui_chat if chat-acl + +#Pass SSL Requests to Lets Encrypt +backend letsencrypt-backend + server letsencrypt 127.0.0.1:8688 + +#OWUI Chat +backend owui_chat + # add X-FORWARDED-FOR + option forwardfor + # add X-CLIENT-IP + http-request add-header X-CLIENT-IP %[src] + http-request set-header X-Forwarded-Proto https if { ssl_fc } + server chat :3000 +``` + +You will see that we have ACL records (routers) for both Open WebUI and Let's Encrypt. To use WebSocket with OWUI, you need to have an SSL configured, and the easiest way to do that is to use Let's Encrypt. + +You can use either the subdomain method or the path method for routing traffic to Open WebUI. The subdomain method requires a dedicated subdomain (e.g., chat.yourdomain.com), while the path method allows you to access Open WebUI through a specific path on your domain (e.g., yourdomain.com/owui/). Choose the method that best suits your needs and update the configuration accordingly. + +:::info +You will need to expose port 80 and 443 to your HAProxy server. These ports are required for Let's Encrypt to validate your domain and for HTTPS traffic. You will also need to ensure your DNS records are properly configured to point to your HAProxy server. If you are running HAProxy at home, you will need to use port forwarding in your router to forward ports 80 and 443 to your HAProxy server. +::: + +## Issuing SSL Certificates with Let's Encrypt + +Before starting HAProxy, you will want to generate a self signed certificate to use as a placeholder until Let's Encrypt issues a proper one. Here's how to generate a self-signed certificate: + +``` +openssl req -x509 -newkey rsa:2048 -keyout /tmp/haproxy.key -out /tmp/haproxy.crt -days 3650 -nodes -subj "/CN=localhost" +``` + +Then combine the key and certificate into a PEM file that HAProxy can use: + +```cat /tmp/haproxy.crt /tmp/haproxy.key > /etc/haproxy/certs/haproxy.pem``` + +:::info +Make sure you update the HAProxy configuration based on your needs and configuration. +::: + +Once you have your HAProxy configuration set up, you can use certbot to obtain and manage your SSL certificates. Certbot will handle the validation process with Let's Encrypt and automatically update your certificates when they are close to expiring (assuming you use the certbot auto-renewal service). + +You can validate the HAProxy configuration by running `haproxy -c -f /etc/haproxy/haproxy.cfg`. If there are no errors, you can start HAProxy with `systemctl start haproxy` and verify it's running with `systemctl status haproxy`. + +To ensure HAProxy starts with the system, `systemctl enable haproxy`. + +When you have HAProxy configured, you can use Let's encrypt to issue your valid SSL certificate. +First, you will need to register with Let's Encrypt. You should only need to do this one time: + +`certbot register --agree-tos --email your@email.com --non-interactive` + +Then you can request your certificate: + +``` +certbot certonly -n --standalone --preferred-challenges http --http-01-port-8688 -d yourdomain.com +``` + +Once the certificate is issued, you will need to merge the certificate and private key files into a single PEM file that HAProxy can use. + +``` +cat /etc/letsencrypt/live/{domain}/fullchain.pem /etc/letsencrypt/live/{domain}/privkey.pem > /etc/haproxy/certs/{domain}.pem +chmod 600 /etc/haproxy/certs/{domain}.pem +chown haproxy:haproxy /etc/haproxy/certs/{domain}.pem +``` +You can then restart HAProxy to apply the new certificate: +`systemctl restart haproxy` + +## HAProxy Manager (Easy Deployment Option) + +If you would like to have something manage your HAProxy configuration and Let's Encrypt SSLs automatically, I have written a simple python script and created a docker container you can use to create and manage your HAProxy config and manage the Let's Encrypt certificate lifecycle. + +https://github.com/shadowdao/haproxy-manager + +:::warning +Please do not expose port 8000 publicly if you use the script or container! +::: \ No newline at end of file From 4a202025d5e3e9e6554add02afbbb85744567317 Mon Sep 17 00:00:00 2001 From: charles-m-knox Date: Tue, 25 Feb 2025 21:01:21 -0700 Subject: [PATCH 03/29] Fix spelling error in sqlite-database.md --- docs/tutorials/tips/sqlite-database.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorials/tips/sqlite-database.md b/docs/tutorials/tips/sqlite-database.md index cea41a6..d029fae 100644 --- a/docs/tutorials/tips/sqlite-database.md +++ b/docs/tutorials/tips/sqlite-database.md @@ -48,7 +48,7 @@ docker exec -it open-webui /bin/sh ## Table Overview -Here is a complete list of tables in Open-WebUI's SQLite database. The tables are listed alphabetically and numbered for convinience. +Here is a complete list of tables in Open-WebUI's SQLite database. The tables are listed alphabetically and numbered for convenience. | **No.** | **Table Name** | **Description** | | ------- | ---------------- | ------------------------------------------------------------ | From b3feb9359c7ef4b8c4569126af1e91eac9851900 Mon Sep 17 00:00:00 2001 From: Anabelle Date: Wed, 26 Feb 2025 16:10:50 -0500 Subject: [PATCH 04/29] bold --- docs/features/index.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/features/index.mdx b/docs/features/index.mdx index 79ec2be..74fee00 100644 --- a/docs/features/index.mdx +++ b/docs/features/index.mdx @@ -108,7 +108,7 @@ import { TopBanners } from "@site/src/components/TopBanners"; - 🎨 **Flexible Text Input Options**: Switch between rich text input and legacy text area input for chat, catering to user preferences and providing a choice between advanced formatting and simpler text input. -- πŸ‘† Effortless Code Sharing : Streamline the sharing and collaboration process with convenient code copying options, including a floating copy button in code blocks and click-to-copy functionality from code spans, saving time and reducing frustration. +- πŸ‘† **Effortless Code Sharing** : Streamline the sharing and collaboration process with convenient code copying options, including a floating copy button in code blocks and click-to-copy functionality from code spans, saving time and reducing frustration. - 🎨 **Interactive Artifacts**: Render web content and SVGs directly in the interface, supporting quick iterations and live changes for enhanced creativity and productivity. @@ -196,7 +196,7 @@ import { TopBanners } from "@site/src/components/TopBanners"; - πŸ‘₯ **'@' Model Integration**: By seamlessly switching to any accessible local or external model during conversations, users can harness the collective intelligence of multiple models in a single chat. This can done by using the `@` command to specify the model by name within a chat. -- 🏷️ Conversation Tagging : Effortlessly categorize and locate tagged chats for quick reference and streamlined data collection using our efficient 'tag:' query system, allowing you to manage, search, and organize your conversations without cluttering the interface. +- 🏷️ **Conversation Tagging** : Effortlessly categorize and locate tagged chats for quick reference and streamlined data collection using our efficient 'tag:' query system, allowing you to manage, search, and organize your conversations without cluttering the interface. - 🧠 **Auto-Tagging**: Conversations can optionally be automatically tagged for improved organization, mirroring the efficiency of auto-generated titles. @@ -280,7 +280,7 @@ import { TopBanners } from "@site/src/components/TopBanners"; - 🎯 **Topic-Based Rankings**: Discover more accurate rankings with our experimental topic-based re-ranking system, which adjusts leaderboard standings based on tag similarity in feedback. -- πŸ“‚ Unified and Collaborative Workspace : Access and manage all your model files, prompts, documents, tools, and functions in one convenient location, while also enabling multiple users to collaborate and contribute to models, knowledge, prompts, or tools, streamlining your workflow and enhancing teamwork. +- πŸ“‚ **Unified and Collaborative Workspace** : Access and manage all your model files, prompts, documents, tools, and functions in one convenient location, while also enabling multiple users to collaborate and contribute to models, knowledge, prompts, or tools, streamlining your workflow and enhancing teamwork. --- From 88488416473bdf2a352563b031f5c08bcce4e859 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Thu, 27 Feb 2025 12:24:59 -0800 Subject: [PATCH 05/29] Update chat-params.md --- docs/features/chat-features/chat-params.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/features/chat-features/chat-params.md b/docs/features/chat-features/chat-params.md index f419c39..42755c8 100644 --- a/docs/features/chat-features/chat-params.md +++ b/docs/features/chat-features/chat-params.md @@ -10,8 +10,8 @@ Within Open WebUI, there are three levels to setting a **System Prompt** and **A | **Level** | **Definition** | **Modification Permissions** | **Override Capabilities** | | --- | --- | --- | --- | | **Per-Chat** | System prompt and advanced parameters for a specific chat instance | Users can modify, but cannot override model-specific settings | Restricted from overriding model-specific settings | -| **Per-Model** | Default system prompt and advanced parameters for a specific model | Administrators can set, Users cannot modify | Admin-specific settings take precedence, User settings can be overridden | | **Per-Account** | Default system prompt and advanced parameters for a specific user account | Users can set, but may be overridden by model-specific settings | User settings can be overridden by model-specific settings | +| **Per-Model** | Default system prompt and advanced parameters for a specific model | Administrators can set, Users cannot modify | Admin-specific settings take precedence, User settings can be overridden | ### 1. **Per-chat basis:** From d5674be6734e4b35254c67cf9fe5a5a922757deb Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Thu, 27 Feb 2025 12:25:31 -0800 Subject: [PATCH 06/29] Update chat-params.md --- docs/features/chat-features/chat-params.md | 27 +++++++++++----------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/docs/features/chat-features/chat-params.md b/docs/features/chat-features/chat-params.md index 42755c8..f5605eb 100644 --- a/docs/features/chat-features/chat-params.md +++ b/docs/features/chat-features/chat-params.md @@ -26,7 +26,20 @@ Suppose a user wants to set a custom system prompt for a specific conversation. ::: -### 2. **Per-model basis:** +### 2. **Per-account basis:** + +- **Description**: The per-account basis setting refers to the default system prompt and advanced parameters configured for a specific user account. Any user-specific changes can serve as a fallback in situations where lower-level settings aren't defined. +- **How to set**: Users can set their own system prompt and advanced parameters for their account within the **General** section of the **Settings** menu in Open WebUI. +- **Override capabilities**: Users have the ability to set their own system prompt on their account, but they must be aware that such parameters can still be overridden if an administrator has already set the **System Prompt** or specific **Advanced Parameters** on a per-model basis for the particular model being used. + +
+Example Use Case +:::tip **Per-account basis**: +Suppose a user wants to set their own system prompt for their account. They can do so by accessing the **Settings** menu and modifying the **System Prompt** field. +::: +
+ +### 3. **Per-model basis:** - **Description**: The per-model basis setting refers to the default system prompt and advanced parameters configured for a specific model. These settings are applicable to all chat instances using that model. - **How to set**: Administrators can set the default system prompt and advanced parameters for a specific model within the **Models** section of the **Workspace** in Open WebUI. @@ -41,18 +54,6 @@ Suppose an administrator wants to set a default system prompt for a specific mod ::: -### 3. **Per-account basis:** - -- **Description**: The per-account basis setting refers to the default system prompt and advanced parameters configured for a specific user account. Any user-specific changes can serve as a fallback in situations where lower-level settings aren't defined. -- **How to set**: Users can set their own system prompt and advanced parameters for their account within the **General** section of the **Settings** menu in Open WebUI. -- **Override capabilities**: Users have the ability to set their own system prompt on their account, but they must be aware that such parameters can still be overridden if an administrator has already set the **System Prompt** or specific **Advanced Parameters** on a per-model basis for the particular model being used. - -
-Example Use Case -:::tip **Per-account basis**: -Suppose a user wants to set their own system prompt for their account. They can do so by accessing the **Settings** menu and modifying the **System Prompt** field. -::: -
## **Optimize System Prompt Settings for Maximum Flexibility** From 54717d81d77c3ae5580ced8ae8898df8db4a2b22 Mon Sep 17 00:00:00 2001 From: Diwakar Date: Sun, 2 Mar 2025 02:26:55 +0700 Subject: [PATCH 07/29] Update continue-dev.md The current documentation focuses only on using models from ollama in continue.dev. This doc update adds example to show how to add models from outside of ollama; from the pipeline. --- docs/tutorials/integrations/continue-dev.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/tutorials/integrations/continue-dev.md b/docs/tutorials/integrations/continue-dev.md index 7f7afa0..6af7c1d 100644 --- a/docs/tutorials/integrations/continue-dev.md +++ b/docs/tutorials/integrations/continue-dev.md @@ -74,6 +74,14 @@ Make sure you pull the model into your ollama instance/s beforehand. "useLegacyCompletionsEndpoint": false, "apiBase": "http://YOUROPENWEBUI/ollama/v1", "apiKey": "sk-YOUR-API-KEY" + }, + { + "title": "Model ABC from pipeline", + "provider": "openai", + "model": "PIPELINE_MODEL_ID", + "useLegacyCompletionsEndpoint": false, + "apiBase": "http://YOUROPENWEBUI/api", + "apiKey": "sk-YOUR-API-KEY" } ], "customCommands": [ From ff1f2d07bf84bd265e96585dbe8bcd45d73f0105 Mon Sep 17 00:00:00 2001 From: Daniel Rosehill Date: Sun, 2 Mar 2025 22:15:38 +0200 Subject: [PATCH 08/29] Add backup tutorial and maintenance category --- .gitignore | 3 + docs/tutorials/maintenance/_category_.json | 7 + docs/tutorials/maintenance/backups.md | 305 +++++++++++++++++++++ 3 files changed, 315 insertions(+) create mode 100644 docs/tutorials/maintenance/_category_.json create mode 100644 docs/tutorials/maintenance/backups.md diff --git a/.gitignore b/.gitignore index b2d6de3..9af5a6b 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,6 @@ npm-debug.log* yarn-debug.log* yarn-error.log* + +# VS Code +.vscode/ diff --git a/docs/tutorials/maintenance/_category_.json b/docs/tutorials/maintenance/_category_.json new file mode 100644 index 0000000..0f1c0c8 --- /dev/null +++ b/docs/tutorials/maintenance/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "πŸ› οΈ Maintenance", + "position": 5, + "link": { + "type": "generated-index" + } +} diff --git a/docs/tutorials/maintenance/backups.md b/docs/tutorials/maintenance/backups.md new file mode 100644 index 0000000..2faa55a --- /dev/null +++ b/docs/tutorials/maintenance/backups.md @@ -0,0 +1,305 @@ +--- +sidebar_position: 1000 +title: "πŸ’Ύ Backups" +--- + + :::warning +This tutorial is a community contribution and is not supported by the Open WebUI team. It serves only as a demonstration on how to customize Open WebUI for your specific use case. Want to contribute? Check out the contributing tutorial. +::: + + # Backing Up Your Instance + + Nobody likes losing data! + + If you're self-hosting OpenWebUI, then you may wish to institute some kind of formal backup plan in order to ensure that you retain a second and third copy of parts of your configuration. + + This guide is intended to recommend some basic recommendations for how users might go about doing that. + + This guide assumes that the user has installed OpenWebUI via Docker (or intends to do so) + + ## Ensuring data persistence + +Firstly, before deploying your stack with Docker, ensure that your Docker Compose uses a persistent data store. If you're using the Docker Compose [from the Github repository](https://github.com/open-webui/open-webui/blob/main/docker-compose.yaml) that's already taken care of. But it's easy to cook up your own variations and forget to verify this. + +Docker containers are ephemeral and data must be persisted to ensure its survival on the host filesystem. + +## Using Docker volumes + +If you're using the Docker Compose from the project repository, you will be deploying Open Web UI using Docker volumes. + +For Ollama and OpenWebUI the mounts are: + +```yaml +ollama: + volumes: + - ollama:/root/.ollama +``` + +```yaml +open-webui: + volumes: + - open-webui:/app/backend/data +``` + +To find the actual bind path on host, run: + +`docker volume inspect ollama` + +and + +`docker volume inspect open-webui` + +## Using direct host binds + +Some users deploy Open Web UI with direct (fixed) binds to the host filesystem, like this: + +```yaml +services: + ollama: + container_name: ollama + image: ollama/ollama:${OLLAMA_DOCKER_TAG-latest} + volumes: + - /opt/ollama:/root/.ollama + open-webui: + container_name: open-webui + image: ghcr.io/open-webui/open-webui:${WEBUI_DOCKER_TAG-main} + volumes: + - /opt/open-webui:/app/backend/data +``` + +If this is how you've deployed your instance, you'll want to note the paths on root. + +## Scripting A Backup Job + +However your instance is provisioned, it's worth inspecting the app's data store on your server to understand what data you'll be backing up. You should see something like this: + +``` +β”œβ”€β”€ audit.log +β”œβ”€β”€ cache/ +β”œβ”€β”€ uploads/ +β”œβ”€β”€ vector_db/ +└── webui.db +``` + +## Files in persistent data store + +| File/Directory | Description | +|---|---| +| `audit.log` | Log file for auditing events. | +| `cache/` | Directory for storing cached data. | +| `uploads/` | Directory for storing user-uploaded files. | +| `vector_db/` | Directory containing the ChromaDB vector database. | +| `webui.db` | SQLite database for persistent storage of other instance data | + +# File Level Backup Approaches + +The first way to back up the application data is to take a file level backup approach ensuring that the persistent Open Web UI data is properly backed up. + +There's an almost infinite number of ways in which technical services can be backed up, but `rsync` remains a popular favorite for incremental jobs and so will be used as a demonstration. + +Users could target the entire `data` directory to back up all the instance data at once or create more selective backup jobs targeting individual components. You could add more descriptive names for the targets also. + +A model rsync job could look like this: + +```bash +#!/bin/bash + +# Configuration +SOURCE_DIR="." # Current directory (where the file structure resides) +B2_BUCKET="b2://OpenWebUI-backups" # Your Backblaze B2 bucket +B2_PROFILE="your_rclone_profile" # Your rclone profile name +# Ensure rclone is configured with your B2 credentials + +# Define source and destination directories +SOURCE_UPLOADS="$SOURCE_DIR/uploads" +SOURCE_VECTORDB="$SOURCE_DIR/vector_db" +SOURCE_WEBUI_DB="$SOURCE_DIR/webui.db" + +DEST_UPLOADS="$B2_BUCKET/user_uploads" +DEST_CHROMADB="$B2_BUCKET/ChromaDB" +DEST_MAIN_DB="$B2_BUCKET/main_database" + +# Exclude cache and audit.log +EXCLUDE_LIST=( + "cache/" + "audit.log" +) + +# Construct exclude arguments for rclone +EXCLUDE_ARGS="" +for EXCLUDE in "${EXCLUDE_LIST[@]}"; do + EXCLUDE_ARGS="$EXCLUDE_ARGS --exclude '$EXCLUDE'" +done + +# Function to perform rclone sync with error checking +rclone_sync() { + SOURCE="$1" + DEST="$2" + echo "Syncing '$SOURCE' to '$DEST'..." + rclone sync "$SOURCE" "$DEST" $EXCLUDE_ARGS --progress --transfers=32 --checkers=16 --profile "$B2_PROFILE" + if [ $? -ne 0 ]; then + echo "Error: rclone sync failed for '$SOURCE' to '$DEST'" + exit 1 + fi +} + +# Perform rclone sync for each directory/file +rclone_sync "$SOURCE_UPLOADS" "$DEST_UPLOADS" +rclone_sync "$SOURCE_VECTORDB" "$DEST_CHROMADB" +rclone_sync "$SOURCE_WEBUI_DB" "$DEST_MAIN_DB" + +echo "Backup completed successfully." +exit 0 +``` + +## Rsync Job With Container Interruption + +To maintain data integrity, it's generally recommended to run database backups on cold filesystems. Our default model backup job can be modified slightly to bring down the stack before running the backup script and bring it back after. + +The downside of this approach, of course, is that it will entail instance downtime. Consider running the job at times you won't be using the instance or taking "software" dailies (on the running data) and more robust weeklies (on cold data). + +```bash +#!/bin/bash + +# Configuration +COMPOSE_FILE="docker-compose.yml" # Path to your docker-compose.yml file +B2_BUCKET="b2://OpenWebUI-backups" # Your Backblaze B2 bucket +B2_PROFILE="your_rclone_profile" # Your rclone profile name +SOURCE_DIR="." # Current directory (where the file structure resides) + +# Define source and destination directories +SOURCE_UPLOADS="$SOURCE_DIR/uploads" +SOURCE_VECTORDB="$SOURCE_DIR/vector_db" +SOURCE_WEBUI_DB="$SOURCE_DIR/webui.db" + +DEST_UPLOADS="$B2_BUCKET/user_uploads" +DEST_CHROMADB="$B2_BUCKET/ChromaDB" +DEST_MAIN_DB="$B2_BUCKET/main_database" + +# Exclude cache and audit.log +EXCLUDE_LIST=( + "cache/" + "audit.log" +) + +# Construct exclude arguments for rclone +EXCLUDE_ARGS="" +for EXCLUDE in "${EXCLUDE_LIST[@]}"; do + EXCLUDE_ARGS="$EXCLUDE_ARGS --exclude '$EXCLUDE'" +done + +# Function to perform rclone sync with error checking +rclone_sync() { + SOURCE="$1" + DEST="$2" + echo "Syncing '$SOURCE' to '$DEST'..." + rclone sync "$SOURCE" "$DEST" $EXCLUDE_ARGS --progress --transfers=32 --checkers=16 --profile "$B2_PROFILE" + if [ $? -ne 0 ]; then + echo "Error: rclone sync failed for '$SOURCE' to '$DEST'" + exit 1 + fi +} + +# 1. Stop the Docker Compose environment +echo "Stopping Docker Compose environment..." +docker-compose -f "$COMPOSE_FILE" down + +# 2. Perform the backup +echo "Starting backup..." +rclone_sync "$SOURCE_UPLOADS" "$DEST_UPLOADS" +rclone_sync "$SOURCE_VECTORDB" "$DEST_CHROMADB" +rclone_sync "$SOURCE_WEBUI_DB" "$DEST_MAIN_DB" + +# 3. Start the Docker Compose environment +echo "Starting Docker Compose environment..." +docker-compose -f "$COMPOSE_FILE" up -d + +echo "Backup completed successfully." +exit 0 +``` + +## Point In Time Snapshots + +In addition taking backups, users may also wish to create point-in-time snapshots which could be stored locally (on the server), remotely, or both. + +```bash +#!/bin/bash + +# Configuration +SOURCE_DIR="." # Directory to snapshot (current directory) +SNAPSHOT_DIR="/snapshots" # Directory to store snapshots +TIMESTAMP=$(date +%Y%m%d%H%M%S) # Generate timestamp + +# Create the snapshot directory if it doesn't exist +mkdir -p "$SNAPSHOT_DIR" + +# Create the snapshot name +SNAPSHOT_NAME="snapshot_$TIMESTAMP" +SNAPSHOT_PATH="$SNAPSHOT_DIR/$SNAPSHOT_NAME" + +# Perform the rsync snapshot +echo "Creating snapshot: $SNAPSHOT_PATH" +rsync -av --delete --link-dest="$SNAPSHOT_DIR/$(ls -t "$SNAPSHOT_DIR" | head -n 1)" "$SOURCE_DIR/" "$SNAPSHOT_PATH" + +# Check if rsync was successful +if [ $? -eq 0 ]; then + echo "Snapshot created successfully." +else + echo "Error: Snapshot creation failed." + exit 1 +fi + +exit 0 +``` +## Crontab For Scheduling + +Once you've added your backup script and provisioned your backup storage, you'll want to QA the scripts to make sure that they're running as expected. Logging is highly advisable. + +Set your new script(s) up to run using crontabs according to your desired run frequency. + +# Commercial Utilities + +In addition to scripting your own backup jobs, you can find commercial offerings which generally work by installing agents on your server that will abstract the complexities of running backups. These are beyond the purview of this article but provide convenient solutions. + +# Host Level Backups + +Your OpenWebUI instance might be provisioned on a host (physical or virtualised) which you control. + +Host level backups involve creating snapshots or backups but of the entire VM rather than running applications. + +Some may wish to leverage them as their primary or only protection while others may wish to layer them in as additional data protections. + +# How Many Backups Do I Need? + +The amount of backups that you will wish to take depends on your personal level of risk tolerance. However, remember that it's best practice to *not* consider the application itself to be a backup copy (even if it lives in the cloud!). That means that if you've provisioned your instance on a VPS, it's still a reasonable recommendation to keep two (independent) backup copies. + +An example backup plan that would cover the needs of many home users: + +## Model backup plan 1 (primary + 2 copies) + +| Frequency | Target | Technology | Description | +|---|---|---|---| +| Daily Incremental | Cloud Storage (S3/B2) | rsync | Daily incremental backup pushed to a cloud storage bucket (S3 or B2). | +| Weekly Incremental | On-site Storage (Home NAS) | rsync | Weekly incremental backup pulled from the server to on-site storage (e.g., a home NAS). | + +## Model backup plan 2 (primary + 3 copies) + +This backup plan is a little more complicated but also more comprehensive .. it involves daily pushes to two cloud storage providers for additional redundancy. + +| Frequency | Target | Technology | Description | +|---|---|---|---| +| Daily Incremental | Cloud Storage (S3) | rsync | Daily incremental backup pushed to an S3 cloud storage bucket. | +| Daily Incremental | Cloud Storage (B2) | rsync | Daily incremental backup pushed to a Backblaze B2 cloud storage bucket. | +| Weekly Incremental | On-site Storage (Home NAS) | rsync | Weekly incremental backup pulled from the server to on-site storage (e.g., a home NAS). | + +# Additional Topics + +In the interest of keeping this guide reasonably thorough these additional subjects were ommitted but may be worth your consideration depending upon how much time you have to dedicate to setting up and maintaining a data protection plan for your instance: + +| Topic | Description | +|---|---| +| SQLite Built-in Backup | Consider using SQLite's `.backup` command for a consistent database backup solution. | +| Encryption | Modify backup scripts to incorporate encryption at rest for enhanced security. | +| Disaster Recovery and Testing | Develop a disaster recovery plan and regularly test the backup and restore process. | +| Alternative Backup Tools | Explore other command-line backup tools like `borgbackup` or `restic` for advanced features. | +| Email Notifications and Webhooks | Implement email notifications or webhooks to monitor backup success or failure. | \ No newline at end of file From 5fac1e1af3eeb40d3eb6b7471039450745d77862 Mon Sep 17 00:00:00 2001 From: Daniel Rosehill Date: Sun, 2 Mar 2025 22:24:07 +0200 Subject: [PATCH 09/29] Added new cat for STT --- docs/tutorials/speech-to-text/_category_.json | 7 +++++++ docs/tutorials/speech-to-text/stt-config.md | 4 ++++ 2 files changed, 11 insertions(+) create mode 100644 docs/tutorials/speech-to-text/_category_.json create mode 100644 docs/tutorials/speech-to-text/stt-config.md diff --git a/docs/tutorials/speech-to-text/_category_.json b/docs/tutorials/speech-to-text/_category_.json new file mode 100644 index 0000000..38926e7 --- /dev/null +++ b/docs/tutorials/speech-to-text/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "🎀 Speech To Text", + "position": 5, + "link": { + "type": "generated-index" + } +} diff --git a/docs/tutorials/speech-to-text/stt-config.md b/docs/tutorials/speech-to-text/stt-config.md new file mode 100644 index 0000000..ae7f95b --- /dev/null +++ b/docs/tutorials/speech-to-text/stt-config.md @@ -0,0 +1,4 @@ +--- +sidebar_position: 1 +title: "πŸ—¨οΈ Configuration" +--- \ No newline at end of file From fd46e595aab7de4d802e1a53494259ff45e1c9ac Mon Sep 17 00:00:00 2001 From: Daniel Rosehill Date: Sun, 2 Mar 2025 22:44:14 +0200 Subject: [PATCH 10/29] STT documentation --- .../tutorials/speech-to-text/env-variables.md | 25 +++++++ docs/tutorials/speech-to-text/stt-config.md | 61 +++++++++++++++++- static/images/tutorials/stt/endstt.png | Bin 0 -> 10760 bytes static/images/tutorials/stt/image.png | Bin 0 -> 83528 bytes static/images/tutorials/stt/stt-config.png | Bin 0 -> 19955 bytes .../images/tutorials/stt/stt-in-progress.png | Bin 0 -> 40386 bytes static/images/tutorials/stt/stt-operation.png | Bin 0 -> 15476 bytes static/images/tutorials/stt/stt-providers.png | Bin 0 -> 10640 bytes static/images/tutorials/stt/user-settings.png | Bin 0 -> 68229 bytes 9 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 docs/tutorials/speech-to-text/env-variables.md create mode 100644 static/images/tutorials/stt/endstt.png create mode 100644 static/images/tutorials/stt/image.png create mode 100644 static/images/tutorials/stt/stt-config.png create mode 100644 static/images/tutorials/stt/stt-in-progress.png create mode 100644 static/images/tutorials/stt/stt-operation.png create mode 100644 static/images/tutorials/stt/stt-providers.png create mode 100644 static/images/tutorials/stt/user-settings.png diff --git a/docs/tutorials/speech-to-text/env-variables.md b/docs/tutorials/speech-to-text/env-variables.md new file mode 100644 index 0000000..5e60336 --- /dev/null +++ b/docs/tutorials/speech-to-text/env-variables.md @@ -0,0 +1,25 @@ +--- +sidebar_position: 2 +title: "Environment Variables" +--- + + +# Environment Variables List + + +:::info +For a complete list of all Open WebUI environment variables, see the [Environment Variable Configuration](/docs/getting-started/env-configuration) page. +::: + +The following is a summary of the environment variables for speech to text (STT). + +# Environment Variables For Speech To Text (STT) + +| Variable | Description | +|----------|-------------| +| `WHISPER_MODEL` | Sets the Whisper model to use for local Speech-to-Text | +| `WHISPER_MODEL_DIR` | Specifies the directory to store Whisper model files | +| `AUDIO_STT_ENGINE` | Specifies the Speech-to-Text engine to use (empty for local Whisper, or `openai`) | +| `AUDIO_STT_MODEL` | Specifies the Speech-to-Text model for OpenAI-compatible endpoints | +| `AUDIO_STT_OPENAI_API_BASE_URL` | Sets the OpenAI-compatible base URL for Speech-to-Text | +| `AUDIO_STT_OPENAI_API_KEY` | Sets the OpenAI API key for Speech-to-Text | \ No newline at end of file diff --git a/docs/tutorials/speech-to-text/stt-config.md b/docs/tutorials/speech-to-text/stt-config.md index ae7f95b..ea612ce 100644 --- a/docs/tutorials/speech-to-text/stt-config.md +++ b/docs/tutorials/speech-to-text/stt-config.md @@ -1,4 +1,63 @@ --- sidebar_position: 1 title: "πŸ—¨οΈ Configuration" ---- \ No newline at end of file +--- + +Open Web UI supports both local, browser, and remote speech to text. + +![alt text](../../../static/images/tutorials/stt/image.png) + +![alt text](../../../static/images/tutorials/stt/stt-providers.png) + +## Cloud / Remote Speech To Text Proivders + +The following cloud speech to text providers are currently supported. API keys can be configured as environment variables (OpenAI) or in the admin settings page (both keys). + + | Service | API Key Required | + | ------------- | ------------- | + | OpenAI | βœ… | + | DeepGram | βœ… | + + WebAPI provides STT via the built-in browser STT provider. + +## Configuring Your STT Provider + +To configure a speech to text provider: + +- Navigate to the admin settings +- Choose Audio +- Provider an API key and choose a model from the dropdown + +![alt text](../../../static/images/tutorials/stt/stt-config.png) + +## User-Level Settings + +In addition the instance settings provisioned in the admin panel, there are also a couple of user-level settings that can provide additional functionality. + +* **STT Settings:** Contains settings related to Speech-to-Text functionality. +* **Speech-to-Text Engine:** Determines the engine used for speech recognition (Default or Web API). + + +![alt text](../../../static/images/tutorials/stt/user-settings.png) + +## Using STT + +Speech to text provides a highly efficient way of "writing" prompts using your voice and it performs robustly from both desktop and mobile devices. + +To use STT, simply click on the microphone icon: + +![alt text](../../../static/images/tutorials/stt/stt-operation.png) + +A live audio waveform will indicate successful voice capture: + +![alt text](../../../static/images/tutorials/stt/stt-in-progress.png) + +## STT Mode Operation + +Once your recording has begun you can: + +- Click on the tick icon to save the recording (if auto send after completion is enabled it will send for completion; otherwise you can manually send) +- If you wish to abort the recording (for example, you wish to start a fresh recording) you can click on the 'x' icon to scape the recording interface + +![alt text](../../../static/images/tutorials/stt/endstt.png) + diff --git a/static/images/tutorials/stt/endstt.png b/static/images/tutorials/stt/endstt.png new file mode 100644 index 0000000000000000000000000000000000000000..6fd73da06cb8cc2d10162f785b86cad9d2a7a250 GIT binary patch literal 10760 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 BGb8{2 literal 0 HcmV?d00001 diff --git a/static/images/tutorials/stt/image.png b/static/images/tutorials/stt/image.png new file mode 100644 index 0000000000000000000000000000000000000000..6fee0e50a5db47de5d37b747a3d5f5e798733dea GIT binary patch literal 83528 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 literal 0 HcmV?d00001 diff --git a/static/images/tutorials/stt/stt-in-progress.png b/static/images/tutorials/stt/stt-in-progress.png new file mode 100644 index 0000000000000000000000000000000000000000..6ce6e0196f239d23e2513db9d43498929c5cd15f GIT binary patch literal 40386 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 literal 0 HcmV?d00001 diff --git a/static/images/tutorials/stt/stt-operation.png b/static/images/tutorials/stt/stt-operation.png new file mode 100644 index 0000000000000000000000000000000000000000..4b3d1f56c1ac47efc5350c414db397b0e7342b1a GIT binary patch literal 15476 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 literal 0 HcmV?d00001 diff --git a/static/images/tutorials/stt/user-settings.png b/static/images/tutorials/stt/user-settings.png new file mode 100644 index 0000000000000000000000000000000000000000..224c04ea57ad6b39aaf9817438525d60699b0a32 GIT binary patch literal 68229 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 f{eSdcr@nnLnHW3T@Ool5Wc literal 0 HcmV?d00001 From bbffdcceb9e576983d80f9f14f7ad10d36c0b457 Mon Sep 17 00:00:00 2001 From: Daniel Rosehill Date: Sun, 2 Mar 2025 22:47:01 +0200 Subject: [PATCH 11/29] Fix image paths and remove .gitignore from PR --- .gitignore | 3 --- docs/tutorials/speech-to-text/stt-config.md | 15 +++++++-------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 9af5a6b..b2d6de3 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,3 @@ npm-debug.log* yarn-debug.log* yarn-error.log* - -# VS Code -.vscode/ diff --git a/docs/tutorials/speech-to-text/stt-config.md b/docs/tutorials/speech-to-text/stt-config.md index ea612ce..73fe834 100644 --- a/docs/tutorials/speech-to-text/stt-config.md +++ b/docs/tutorials/speech-to-text/stt-config.md @@ -5,9 +5,9 @@ title: "πŸ—¨οΈ Configuration" Open Web UI supports both local, browser, and remote speech to text. -![alt text](../../../static/images/tutorials/stt/image.png) +![alt text](/images/tutorials/stt/image.png) -![alt text](../../../static/images/tutorials/stt/stt-providers.png) +![alt text](/images/tutorials/stt/stt-providers.png) ## Cloud / Remote Speech To Text Proivders @@ -28,7 +28,7 @@ To configure a speech to text provider: - Choose Audio - Provider an API key and choose a model from the dropdown -![alt text](../../../static/images/tutorials/stt/stt-config.png) +![alt text](/images/tutorials/stt/stt-config.png) ## User-Level Settings @@ -38,7 +38,7 @@ In addition the instance settings provisioned in the admin panel, there are also * **Speech-to-Text Engine:** Determines the engine used for speech recognition (Default or Web API). -![alt text](../../../static/images/tutorials/stt/user-settings.png) +![alt text](/images/tutorials/stt/user-settings.png) ## Using STT @@ -46,11 +46,11 @@ Speech to text provides a highly efficient way of "writing" prompts using your v To use STT, simply click on the microphone icon: -![alt text](../../../static/images/tutorials/stt/stt-operation.png) +![alt text](/images/tutorials/stt/stt-operation.png) A live audio waveform will indicate successful voice capture: -![alt text](../../../static/images/tutorials/stt/stt-in-progress.png) +![alt text](/images/tutorials/stt/stt-in-progress.png) ## STT Mode Operation @@ -59,5 +59,4 @@ Once your recording has begun you can: - Click on the tick icon to save the recording (if auto send after completion is enabled it will send for completion; otherwise you can manually send) - If you wish to abort the recording (for example, you wish to start a fresh recording) you can click on the 'x' icon to scape the recording interface -![alt text](../../../static/images/tutorials/stt/endstt.png) - +![alt text](/images/tutorials/stt/endstt.png) From 7f1674b081d5224510119950725355e91e315fdd Mon Sep 17 00:00:00 2001 From: Daniel Rosehill Date: Mon, 3 Mar 2025 00:47:50 +0200 Subject: [PATCH 12/29] Added one more model backup script --- docs/tutorials/maintenance/backups.md | 86 +++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/docs/tutorials/maintenance/backups.md b/docs/tutorials/maintenance/backups.md index 2faa55a..ccc8ca7 100644 --- a/docs/tutorials/maintenance/backups.md +++ b/docs/tutorials/maintenance/backups.md @@ -218,6 +218,90 @@ echo "Backup completed successfully." exit 0 ``` +## Model Backup Script Using SQLite & ChromaDB Backup Functions To B2 Remote + +```bash +#!/bin/bash +# +# Backup script to back up ChromaDB and SQLite to Backblaze B2 bucket +# openwebuiweeklies, maintaining 3 weekly snapshots. +# Snapshots are independent and fully restorable. +# Uses ChromaDB and SQLite native backup mechanisms. +# Excludes audit.log, cache, and uploads directories. +# +# Ensure rclone is installed and configured correctly. +# Install rclone: https://rclone.org/install/ +# Configure rclone: https://rclone.org/b2/ + +# Source directory (containing ChromaDB and SQLite data) +SOURCE="/var/lib/open-webui/data" + +# B2 bucket name and remote name +B2_REMOTE="openwebuiweeklies" +B2_BUCKET="b2:$B2_REMOTE" + +# Timestamp for the backup directory +TIMESTAMP=$(date +%Y-%m-%d) + +# Backup directory name +BACKUP_DIR="open-webui-backup-$TIMESTAMP" + +# Full path to the backup directory in the B2 bucket +DESTINATION="$B2_BUCKET/$BACKUP_DIR" + +# Number of weekly snapshots to keep +NUM_SNAPSHOTS=3 + +# Exclude filters (applied *after* database backups) +EXCLUDE_FILTERS="--exclude audit.log --exclude cache/** --exclude uploads/** --exclude vector_db" + +# ChromaDB Backup Settings (Adjust as needed) +CHROMADB_DATA_DIR="$SOURCE/vector_db" # Path to ChromaDB data directory +CHROMADB_BACKUP_FILE="$SOURCE/chromadb_backup.tar.gz" # Archive file for ChromaDB backup + +# SQLite Backup Settings (Adjust as needed) +SQLITE_DB_FILE="$SOURCE/webui.db" # Path to the SQLite database file +SQLITE_BACKUP_FILE="$SOURCE/webui.db.backup" # Temporary file for SQLite backup + +# Function to backup ChromaDB +backup_chromadb() { + echo "Backing up ChromaDB..." + + # Create a tar archive of the vector_db directory + tar -czvf "$CHROMADB_BACKUP_FILE" -C "$SOURCE" vector_db + + echo "ChromaDB backup complete." +} + +# Function to backup SQLite +backup_sqlite() { + echo "Backing up SQLite database..." + # Backup the SQLite database using the .backup command + sqlite3 "$SQLITE_DB_FILE" ".backup '$SQLITE_BACKUP_FILE'" + + # Move the backup file to the source directory + mv "$SQLITE_BACKUP_FILE" "$SOURCE/" + + echo "SQLite backup complete." +} + +# Perform database backups +backup_chromadb +backup_sqlite + +# Perform the backup with exclusions +rclone copy "$SOURCE" "$DESTINATION" $EXCLUDE_FILTERS --progress + +# Remove old backups, keeping the most recent NUM_SNAPSHOTS +find "$B2_BUCKET" -type d -name "open-webui-backup-*" | sort -r | tail -n +$((NUM_SNAPSHOTS + 1)) | while read dir; do + rclone purge "$dir" +done + +echo "Backup completed to $DESTINATION" +``` + +--- + ## Point In Time Snapshots In addition taking backups, users may also wish to create point-in-time snapshots which could be stored locally (on the server), remotely, or both. @@ -261,6 +345,8 @@ Set your new script(s) up to run using crontabs according to your desired run fr In addition to scripting your own backup jobs, you can find commercial offerings which generally work by installing agents on your server that will abstract the complexities of running backups. These are beyond the purview of this article but provide convenient solutions. +--- + # Host Level Backups Your OpenWebUI instance might be provisioned on a host (physical or virtualised) which you control. From fd80517b3a68d60c22367e3a08bceb18543fe1b3 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Mon, 3 Mar 2025 22:02:01 -0800 Subject: [PATCH 13/29] fix --- docs/tutorials/speech-to-text/env-variables.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorials/speech-to-text/env-variables.md b/docs/tutorials/speech-to-text/env-variables.md index 5e60336..e20be96 100644 --- a/docs/tutorials/speech-to-text/env-variables.md +++ b/docs/tutorials/speech-to-text/env-variables.md @@ -8,7 +8,7 @@ title: "Environment Variables" :::info -For a complete list of all Open WebUI environment variables, see the [Environment Variable Configuration](/docs/getting-started/env-configuration) page. +For a complete list of all Open WebUI environment variables, see the [Environment Variable Configuration](/getting-started/env-configuration) page. ::: The following is a summary of the environment variables for speech to text (STT). From 8d130ee923eef56f38d243d022bfb96b1be34451 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Mon, 3 Mar 2025 22:06:51 -0800 Subject: [PATCH 14/29] Update enterprise.mdx --- docs/enterprise.mdx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/enterprise.mdx b/docs/enterprise.mdx index 9276c6d..008b516 100644 --- a/docs/enterprise.mdx +++ b/docs/enterprise.mdx @@ -28,6 +28,14 @@ In the rapidly advancing AI landscape, staying ahead isn't just a competitive ad ## **Let’s Talk** +:::info + +We selectively partner with **teams of 100+ seats** to provide the **dedicated attention and expertise you deserve**, ensuring a seamless path to success. + +Have **fewer than 100 seats** but still want **customization and enterprise features?** A **self-serve license** is coming by **end of Q2**β€”**stay tuned!** + +::: + Transform the way your organization leverages AI. **Contact our enterprise team today** for customized pricing, expert consulting, and tailored deployment strategies. πŸ“§ **sales@openwebui.com** β€” Support available in **English & Korean (ν•œκ΅­μ–΄), with more languages coming soon!** From 490033a7750749b937944e81351350793bc883d5 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Mon, 3 Mar 2025 22:20:59 -0800 Subject: [PATCH 15/29] Update enterprise.mdx --- docs/enterprise.mdx | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/docs/enterprise.mdx b/docs/enterprise.mdx index 008b516..0812a47 100644 --- a/docs/enterprise.mdx +++ b/docs/enterprise.mdx @@ -28,17 +28,22 @@ In the rapidly advancing AI landscape, staying ahead isn't just a competitive ad ## **Let’s Talk** -:::info - -We selectively partner with **teams of 100+ seats** to provide the **dedicated attention and expertise you deserve**, ensuring a seamless path to success. - -Have **fewer than 100 seats** but still want **customization and enterprise features?** A **self-serve license** is coming by **end of Q2**β€”**stay tuned!** - -::: +πŸ“§ **sales@openwebui.com** β€” Send us your **team size**, and let’s explore how we can work together! Support available in **English & Korean (ν•œκ΅­μ–΄), with more languages coming soon!** Transform the way your organization leverages AI. **Contact our enterprise team today** for customized pricing, expert consulting, and tailored deployment strategies. -πŸ“§ **sales@openwebui.com** β€” Support available in **English & Korean (ν•œκ΅­μ–΄), with more languages coming soon!** + +:::info + +We are **currently focused on partnering with teams of 100+ seats** to provide the **dedicated attention, expertise, and tailored solutions** needed for guaranteed success. + +If your team is **close to 50 seats** and you're looking for advanced features, **reach out**β€”we may still be able to help. + +For **smaller teams**, we're launching a **self-serve licensing option** by the **end of Q2**, bringing **customization and select enterprise features** to companies of all sizes. **Stay tuned!** + +::: + + --- From 6e425a0db2cb0624ebc53d124ba6f861c395fdb5 Mon Sep 17 00:00:00 2001 From: thiswillbeyourgithub <26625900+thiswillbeyourgithub@users.noreply.github.com> Date: Wed, 5 Mar 2025 12:35:43 +0100 Subject: [PATCH 16/29] mention docker compose syntax for logging level Signed-off-by: thiswillbeyourgithub <26625900+thiswillbeyourgithub@users.noreply.github.com> --- docs/getting-started/advanced-topics/logging.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/getting-started/advanced-topics/logging.md b/docs/getting-started/advanced-topics/logging.md index 796d16e..ac6550c 100644 --- a/docs/getting-started/advanced-topics/logging.md +++ b/docs/getting-started/advanced-topics/logging.md @@ -45,6 +45,12 @@ For example, to set `DEBUG` logging level as a Docker parameter use: --env GLOBAL_LOG_LEVEL="DEBUG" ``` +or for Docker Compose put this in the environment section of the docker-compose.yml file (notice the absence of quotation signs): +``` +environment: + - GLOBAL_LOG_LEVEL=DEBUG +``` + ### App/Backend ### Some level of granularity is possible using any of the following combination of variables. Note that `basicConfig` `force` isn't presently used so these statements may only affect Open-WebUI logging and not 3rd party modules. From 64ddd5cee6e6f77fb520658119464f264adc3c18 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Wed, 5 Mar 2025 13:40:03 -0800 Subject: [PATCH 17/29] Update env-configuration.md --- docs/getting-started/env-configuration.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/getting-started/env-configuration.md b/docs/getting-started/env-configuration.md index 86f3538..d2ccfc7 100644 --- a/docs/getting-started/env-configuration.md +++ b/docs/getting-started/env-configuration.md @@ -242,10 +242,15 @@ allowing the client to wait indefinitely. ::: +#### `AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST` + +- Type: `int` +- Description: Sets the timeout in seconds for fetching the model list. This can be useful in cases where network latency requires a longer timeout duration to successfully retrieve the model list. + #### `AIOHTTP_CLIENT_TIMEOUT_OPENAI_MODEL_LIST` - Type: `int` -- Description: Sets the timeout in seconds for fetching the OpenAI model list. This can be useful in cases where network latency requires a longer timeout duration to successfully retrieve the model list. +- Description: Sets the timeout in seconds for fetching the model list. This can be useful in cases where network latency requires a longer timeout duration to successfully retrieve the model list. ### Directories From 7e57af9c812d90e2282c845e4edcc607b46a2050 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Wed, 5 Mar 2025 15:58:08 -0800 Subject: [PATCH 18/29] fix --- docs/enterprise.mdx | 17 +++++++++++++++- .../tutorials/integrations/firefox-sidebar.md | 20 ------------------- .../openai-edge-tts-integration.md | 2 +- 3 files changed, 17 insertions(+), 22 deletions(-) diff --git a/docs/enterprise.mdx b/docs/enterprise.mdx index 0812a47..38466e6 100644 --- a/docs/enterprise.mdx +++ b/docs/enterprise.mdx @@ -28,12 +28,14 @@ In the rapidly advancing AI landscape, staying ahead isn't just a competitive ad ## **Let’s Talk** + πŸ“§ **sales@openwebui.com** β€” Send us your **team size**, and let’s explore how we can work together! Support available in **English & Korean (ν•œκ΅­μ–΄), with more languages coming soon!** Transform the way your organization leverages AI. **Contact our enterprise team today** for customized pricing, expert consulting, and tailored deployment strategies. -:::info + +:::tip We are **currently focused on partnering with teams of 100+ seats** to provide the **dedicated attention, expertise, and tailored solutions** needed for guaranteed success. @@ -44,6 +46,19 @@ For **smaller teams**, we're launching a **self-serve licensing option** by the ::: +:::info + +## ⚠️ Partnership Guidelines for Agencies + +We **carefully select** our partners to maintain the **highest standards** and provide meaningful benefits to our community. + +If you are a **consulting agency**, **AI services provider**, or **reseller**, please **do not** contact our enterprise sales directly. Instead, **fill out our partnership interest form**: + +πŸ”— **[Apply Here](https://forms.gle/SemdgxjFXpHmdCby6)** + +We evaluate all applications to ensure alignment with our **mission, vision, and values**, selecting only those partners best suited for our ecosystem. +::: + --- diff --git a/docs/tutorials/integrations/firefox-sidebar.md b/docs/tutorials/integrations/firefox-sidebar.md index 9def27f..eaa136b 100644 --- a/docs/tutorials/integrations/firefox-sidebar.md +++ b/docs/tutorials/integrations/firefox-sidebar.md @@ -11,26 +11,6 @@ This tutorial is a community contribution and is not supported by the Open WebUI # Integrating Open WebUI as a Local AI Chatbot Browser Assistant in Mozilla Firefox -Table of Contents -================= -1. [Prerequisites](#prerequisites) -2. [Enabling AI Chatbot in Firefox](#enabling-ai-chatbot-in-firefox) -3. [Configuring about:config Settings](#configuring-aboutconfig-settings) - * [browser.ml.chat.enabled](#browsermlchatenabled) - * [browser.ml.chat.hideLocalhost](#browsermlchathidelocalhost) - * [browser.ml.chat.prompts.#](#browsermlchatsprompts) - * [browser.ml.chat.provider](#browsermlchatprovider) -4. [URL Parameters for Open WebUI](#url-parameters-for-open-webui) - * [Models and Model Selection](#models-and-model-selection) - * [YouTube Transcription](#youtube-transcription) - * [Web Search](#web-search) - * [Tool Selection](#tool-selection) - * [Call Overlay](#call-overlay) - * [Initial Query Prompt](#initial-query-prompt) - * [Temporary Chat Sessions](#temporary-chat-sessions) -5. [Additional about:config Settings](#additional-aboutconfig-settings) -6. [Accessing the AI Chatbot Sidebar](#accessing-the-ai-chatbot-sidebar) - ## Prerequisites Before integrating Open WebUI as a AI chatbot browser assistant in Mozilla Firefox, ensure you have: diff --git a/docs/tutorials/text-to-speech/openai-edge-tts-integration.md b/docs/tutorials/text-to-speech/openai-edge-tts-integration.md index effb4d7..0608b50 100644 --- a/docs/tutorials/text-to-speech/openai-edge-tts-integration.md +++ b/docs/tutorials/text-to-speech/openai-edge-tts-integration.md @@ -127,7 +127,7 @@ The server will start running at `http://localhost:5050`. #### 6. Test the API -You can now interact with the API at `http://localhost:5050/v1/audio/speech` and other available endpoints. See the [Usage](#usage) section for request examples. +You can now interact with the API at `http://localhost:5050/v1/audio/speech` and other available endpoints. See the Usage section for request examples. From eca4e41a26e40153a6e620de6db42a9eb6560ded Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Wed, 5 Mar 2025 23:45:35 -0800 Subject: [PATCH 19/29] Update enterprise.mdx --- docs/enterprise.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/enterprise.mdx b/docs/enterprise.mdx index 38466e6..78767f8 100644 --- a/docs/enterprise.mdx +++ b/docs/enterprise.mdx @@ -50,7 +50,7 @@ For **smaller teams**, we're launching a **self-serve licensing option** by the ## ⚠️ Partnership Guidelines for Agencies -We **carefully select** our partners to maintain the **highest standards** and provide meaningful benefits to our community. +We **carefully select** our partners to maintain the **highest standards** and provide **the best experience** to our community. If you are a **consulting agency**, **AI services provider**, or **reseller**, please **do not** contact our enterprise sales directly. Instead, **fill out our partnership interest form**: From 384e90f83e698ecc54f51b29273effbb29dada62 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Thu, 6 Mar 2025 01:19:32 -0800 Subject: [PATCH 20/29] Update enterprise.mdx --- docs/enterprise.mdx | 5 ----- 1 file changed, 5 deletions(-) diff --git a/docs/enterprise.mdx b/docs/enterprise.mdx index 78767f8..9462317 100644 --- a/docs/enterprise.mdx +++ b/docs/enterprise.mdx @@ -110,11 +110,6 @@ Open WebUI’s enterprise solutions provide mission-critical businesses with **a βœ… **Operational AI Consulting** – On-demand **architecture, optimization, and deployment consulting**. βœ… **Strategic AI Roadmap Planning** – Work with our experts to **define your AI transformation strategy**. -### πŸ”„ **Lifecycle & Ecosystem Benefits** -βœ… **Multi-Tenant & Enterprise-Scale Deployments** – Support for **large-scale organizations**, distributed teams, and divisions. -βœ… **Access to Private Beta & Enterprise-Only Features** – Stay ahead with access to upcoming, high-priority capabilities. -βœ… **Software Bill of Materials (SBOM) & Security Transparency** – Enterprise customers receive **full security reports and compliance packages**. - --- ## **Keep Open WebUI Thriving: Support Continuous Innovation** From 36cd7affe0ec8110ba5dbd451f558f32c5aaa3e7 Mon Sep 17 00:00:00 2001 From: Kyle Parrish Date: Thu, 6 Mar 2025 10:02:46 -0500 Subject: [PATCH 21/29] Fix Docker command syntax `-restart` is an invalid Docker command. Replaced with `--restart`. --- docs/tutorials/integrations/apachetika.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorials/integrations/apachetika.md b/docs/tutorials/integrations/apachetika.md index c54baa8..59ccdd6 100644 --- a/docs/tutorials/integrations/apachetika.md +++ b/docs/tutorials/integrations/apachetika.md @@ -52,7 +52,7 @@ Alternatively, you can run Apache Tika using the following Docker command: ```bash docker run -d --name tika \ -p 9998:9998 \ - -restart unless-stopped \ + --restart unless-stopped \ apache/tika:latest-full ``` From 7361df449f715f11f1f340c13dabd76962636951 Mon Sep 17 00:00:00 2001 From: Jeff Axelrod Date: Thu, 6 Mar 2025 11:32:41 -0600 Subject: [PATCH 22/29] Update rag.md to include detailed Google Drive integration setup instructions Thanks to @shashanknimje, taken from the following Github discussion. https://github.com/open-webui/open-webui/discussions/8138#discussioncomment-12084273 --- docs/features/rag.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/docs/features/rag.md b/docs/features/rag.md index d836469..a435c96 100644 --- a/docs/features/rag.md +++ b/docs/features/rag.md @@ -48,3 +48,18 @@ A variety of parsers extract content from local and remote documents. For more, ## Google Drive Integration When paired with a Google Cloud project that has the Google Picker API and Google Drive API enabled, this feature allows users to directly access their Drive files from the chat interface and upload documents, slides, sheets and more and uploads them as context to your chat. Can be enabled `Admin Panel` > `Settings` > `Documents` menu. Must set [`GOOGLE_DRIVE_API_KEY and GOOGLE_DRIVE_CLIENT_ID`](https://github.com/open-webui/docs/blob/main/docs/getting-started/env-configuration.md) environment variables to use. + +### Detailed Instructions +1. Create an OAuth 2.0 client and configure both the Authorized JavaScript origins & Authorized redirect URI to be the URL (include the port if any) you use to access your Open-WebUI instance. +1. Make a note of the Client ID associated with that OAuth client. +1. Make sure that you enable both Google Drive API and Google Picker API for your project. +1. Also set your app (project) as Testing and add your Google Drive email to the User List +1. Set the permission scope to include everything those APIs have to offer. And because the app would be in Testing mode, no verification is required by Google to allow the app from accessing the data of the limited test users. +1. Go to the Google Picker API page, and click on the create credentials button. +1. Create an API key and under Application restrictions and choose Websites. Then add your Open-WebUI instance's URL, same as the Authorized JavaScript origins and Authorized redirect URIs settings in the step 1. +1. Set up API restrictions on the API Key to only have access to Google Drive API & Google Picker API +1. Set up the environment variable, `GOOGLE_DRIVE_CLIENT_ID` to the Client ID of the OAuth client from step 2. +1. Set up the environment variable `GOOGLE_DRIVE_API_KEY` to the API Key value setup up in step 7 (NOT the OAuth client secret from step 2). +1. Set up the `GOOGLE_REDIRECT_URI` to my Open-WebUI instance's URL (include the port, if any). +1. Then relaunch your Open-WebUI instance with those three environment variables. +1. After that, make sure Google Drive was enabled under `Admin Panel` < `Settings` < `Documents` < `Google Drive` From a2370b28fbbf9d0f55264f2d5310da455d0c81a0 Mon Sep 17 00:00:00 2001 From: Sebulba46 Date: Sat, 8 Mar 2025 13:16:15 +0300 Subject: [PATCH 23/29] Update tutorials.md Add document RAG tutorial --- docs/pipelines/tutorials.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/pipelines/tutorials.md b/docs/pipelines/tutorials.md index b6d6e05..b935953 100644 --- a/docs/pipelines/tutorials.md +++ b/docs/pipelines/tutorials.md @@ -23,3 +23,7 @@ with us, as we'd love to feature it here! [Demo and Code Review for Text-To-SQL with Open-WebUI](https://www.youtube.com/watch?v=iLVyEgxGbg4) (YouTube video by Jordan Nanos) - A hands-on demonstration and code review on utilizing text-to-sql tools powered by the Open WebUI. + +[Deploying custom Document RAG pipeline with Open-WebUI](https://github.com/Sebulba46/document-RAG-pipeline) + +- Step by step guide to deploy Open-WebUI and pipelines containers and creating your own document RAG with local LLM API. From 471d6d5c8b0b2fa78cb469488838e249e9a059ca Mon Sep 17 00:00:00 2001 From: Sebulba46 Date: Sat, 8 Mar 2025 13:33:47 +0300 Subject: [PATCH 24/29] Update tutorials.md --- docs/pipelines/tutorials.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pipelines/tutorials.md b/docs/pipelines/tutorials.md index b935953..7144eb7 100644 --- a/docs/pipelines/tutorials.md +++ b/docs/pipelines/tutorials.md @@ -24,6 +24,6 @@ with us, as we'd love to feature it here! - A hands-on demonstration and code review on utilizing text-to-sql tools powered by the Open WebUI. -[Deploying custom Document RAG pipeline with Open-WebUI](https://github.com/Sebulba46/document-RAG-pipeline) +[Deploying custom Document RAG pipeline with Open-WebUI](https://github.com/Sebulba46/document-RAG-pipeline) (GitHub guide by Sebulba46) - Step by step guide to deploy Open-WebUI and pipelines containers and creating your own document RAG with local LLM API. From 1be333221cc87985dbd7fd8268dd2d2a202345cc Mon Sep 17 00:00:00 2001 From: thiswillbeyourgithub <26625900+thiswillbeyourgithub@users.noreply.github.com> Date: Sun, 9 Mar 2025 07:10:44 +0100 Subject: [PATCH 25/29] fix: double quote it is making the example syntactically wrong. Signed-off-by: thiswillbeyourgithub <26625900+thiswillbeyourgithub@users.noreply.github.com> --- docs/features/plugin/tools/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/features/plugin/tools/index.mdx b/docs/features/plugin/tools/index.mdx index 3b63016..4087bf8 100644 --- a/docs/features/plugin/tools/index.mdx +++ b/docs/features/plugin/tools/index.mdx @@ -304,7 +304,7 @@ async def test_function( "source": title, } ], - "source": {"name": "Title of the content"", "url": "http://link-to-citation"}, + "source": {"name": "Title of the content", "url": "http://link-to-citation"}, }, } ) From 402c40aabc32740840c9a433b560e4650c7403f9 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Wed, 12 Mar 2025 09:05:40 +0000 Subject: [PATCH 26/29] Update team.mdx --- docs/team.mdx | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/docs/team.mdx b/docs/team.mdx index 52cc4b2..4024fd5 100644 --- a/docs/team.mdx +++ b/docs/team.mdx @@ -20,11 +20,16 @@ Our team is led by the dedicated creator and founder, [Tim J. Baek](https://gith /> -### Important Note: +## πŸ›οΈ Governance -To keep things smooth and organized, please do not contact or `@` mention anyone other than the official maintainer. If you have any questions or need assistance, `@tjbck` is your go-to person. You can also reach out via our official email, hello@openwebui.com. πŸ“¨ +Open WebUI is centrally managed and operated by Open WebUI, Inc. Our governance model is straightforward and intentionalβ€”we do not operate on [a committee-based governance system or a community-driven voting process](https://www.reddit.com/r/OpenWebUI/comments/1ijkh6m/comment/mbf0yhm/). Strategic and operational decisions are led openly and transparently by our founder, Tim J. Baek, ensuring a clear, unified, long-term vision. -Your understanding and cooperation are appreciated! πŸ’ͺ +Our project is specifically designed and structured to remain sustainable and independent for **decades** to comeβ€”thanks largely to an intentional focus on remaining extremely lean, strategic, and capital-efficient. We aren't pursuing short-term milestones or temporary trends; we're carefully building something lasting and meaningful. + +We greatly appreciate enthusiasm and thoughtful suggestions from our community. At the same time, **we're not looking for unsolicited governance recommendations or guidance on how to operate**β€”we know exactly how we want to run our project (just as, for example, you wouldn't tell OpenAI how to run theirs). Open WebUI maintains strong, opinionated leadership because that's precisely what we believe is necessary to build something truly great, fast-moving, and purposeful. + +If our leadership and governance style align with your views, we're thrilled to have your continued support and contributions. However, if you fundamentally disagree with our direction, **one of the key benefits of our open-source license is the freedom to fork the project and implement your preferred approach.** + +Thank you for respecting our perspective and for your continued support and contributions. We're excited to keep building with the community around the vision we've established together! -Let's keep building something awesome together! πŸš€ From e0c485a2221bc52bb00c25e7bd9d37d732ce31ee Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Wed, 12 Mar 2025 09:11:38 +0000 Subject: [PATCH 27/29] Update team.mdx --- docs/team.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/team.mdx b/docs/team.mdx index 4024fd5..4e2d456 100644 --- a/docs/team.mdx +++ b/docs/team.mdx @@ -9,7 +9,7 @@ import { TopBanners } from "@site/src/components/TopBanners"; ## 🌟 Meet Our Team! -Our team is led by the dedicated creator and founder, [Tim J. Baek](https://github.com/tjbck). Although Tim is currently the only official member of the team, we are incredibly fortunate to have a community of **[amazing contributors](https://github.com/open-webui/open-webui/graphs/contributors)** who find this project valuable and actively participate in its continued success. +Our team is led by the dedicated creator and founder, [Tim J. Baek](https://github.com/tjbck). Although Tim is currently the only official full-time member of the team, we are incredibly fortunate to have a community of **[amazing contributors](https://github.com/open-webui/open-webui/graphs/contributors)** who find this project valuable and actively participate in its continued success. ### πŸ’“ Our Contributors From f47a371d6fd8450247e8dcb53130dfb42fcaf9ca Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Wed, 12 Mar 2025 10:17:41 +0000 Subject: [PATCH 28/29] Update team.mdx --- docs/team.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/team.mdx b/docs/team.mdx index 4e2d456..5a24ce2 100644 --- a/docs/team.mdx +++ b/docs/team.mdx @@ -26,6 +26,8 @@ Open WebUI is centrally managed and operated by Open WebUI, Inc. Our governance Our project is specifically designed and structured to remain sustainable and independent for **decades** to comeβ€”thanks largely to an intentional focus on remaining extremely lean, strategic, and capital-efficient. We aren't pursuing short-term milestones or temporary trends; we're carefully building something lasting and meaningful. +Beyond our open-source contributors, Open WebUI, Inc. has an incredible global team working behind the scenes across multiple domains, including technology, operations, strategy, finance, legal, marketing, communications, partnerships, and community management. While Tim leads the vision, execution is supported by a growing network of talented individuals helping to ensure the long-term success of the project. Our team spans various expertise areas, ensuring that Open WebUI, Inc. thrives not just in software development but also in operational excellence, financial sustainability, legal compliance, brand awareness, and effective collaboration with partners. + We greatly appreciate enthusiasm and thoughtful suggestions from our community. At the same time, **we're not looking for unsolicited governance recommendations or guidance on how to operate**β€”we know exactly how we want to run our project (just as, for example, you wouldn't tell OpenAI how to run theirs). Open WebUI maintains strong, opinionated leadership because that's precisely what we believe is necessary to build something truly great, fast-moving, and purposeful. If our leadership and governance style align with your views, we're thrilled to have your continued support and contributions. However, if you fundamentally disagree with our direction, **one of the key benefits of our open-source license is the freedom to fork the project and implement your preferred approach.** From 5a275c154f425a6c7181a4895785c04307a9914c Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Wed, 12 Mar 2025 10:40:37 +0000 Subject: [PATCH 29/29] Update team.mdx --- docs/team.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/team.mdx b/docs/team.mdx index 5a24ce2..8ab76e5 100644 --- a/docs/team.mdx +++ b/docs/team.mdx @@ -7,9 +7,9 @@ import { TopBanners } from "@site/src/components/TopBanners"; -## 🌟 Meet Our Team! +## 🌟 Meet Our Development Team! -Our team is led by the dedicated creator and founder, [Tim J. Baek](https://github.com/tjbck). Although Tim is currently the only official full-time member of the team, we are incredibly fortunate to have a community of **[amazing contributors](https://github.com/open-webui/open-webui/graphs/contributors)** who find this project valuable and actively participate in its continued success. +Our team is led by the dedicated creator and founder, [Tim J. Baek](https://github.com/tjbck). Although Tim is currently the only official full-time member of the development team, we are incredibly fortunate to have a community of **[amazing contributors](https://github.com/open-webui/open-webui/graphs/contributors)** who find this project valuable and actively participate in its continued success. ### πŸ’“ Our Contributors