diff --git a/docs/features/auth/_category_.json b/docs/features/auth/_category_.json index 52fb85c7..f8a4c15a 100644 --- a/docs/features/auth/_category_.json +++ b/docs/features/auth/_category_.json @@ -1,4 +1,7 @@ { "label": "Federated Authentication", - "position": 0 + "position": 0, + "link": { + "type": "generated-index" + } } diff --git a/docs/features/chat-features/code-execution/python.md b/docs/features/chat-features/code-execution/python.md index 0ee22a61..3b869ec5 100644 --- a/docs/features/chat-features/code-execution/python.md +++ b/docs/features/chat-features/code-execution/python.md @@ -3,6 +3,8 @@ sidebar_position: 2 title: "Python Code Execution" --- +# 🐍 Python Code Execution + ## Overview Open WebUI allows for the client-side execution of Python code in the browser, utilizing Pyodide to run scripts within a code block in a chat. This feature enables Large Language Models (LLMs) to generate Python scripts that can be executed directly in the browser, leveraging a range of libraries supported by Pyodide. diff --git a/docs/features/interface/_category_.json b/docs/features/interface/_category_.json index 54d866fb..de31bcc7 100644 --- a/docs/features/interface/_category_.json +++ b/docs/features/interface/_category_.json @@ -1,4 +1,7 @@ { "label": "Interface", - "position": 6 + "position": 6, + "link": { + "type": "generated-index" + } } diff --git a/docs/features/interface/banners.md b/docs/features/interface/banners.md index 189d14cb..41f67397 100644 --- a/docs/features/interface/banners.md +++ b/docs/features/interface/banners.md @@ -15,23 +15,23 @@ You can configure banners in two ways: through the Admin Panel for a user-friend This is the most straightforward way to manage banners. -1. **Log in** to your Open WebUI instance as an administrator. -2. Navigate to the **Admin Panel** > **Settings** > **Interface**. -3. Locate the **"Banners"** section. -4. Click the **+** icon to add a new banner. +1. **Log in** to your Open WebUI instance as an administrator. +2. Navigate to the **Admin Panel** > **Settings** > **Interface**. +3. Locate the **"Banners"** section. +4. Click the **+** icon to add a new banner. You can then configure the following options for each banner: -- **Type:** The color and style of the banner. Choose from: - - `info` (Blue) - - `success` (Green) - - `warning` (Yellow) - - `error` (Red) -- **Title:** The main heading of the banner. -- **Content:** The main text or message of the banner. -- **Dismissible:** If toggled on, users can close the banner. Dismissed banners are stored in the user's browser, so they will not reappear for that user unless their browser cache is cleared. If toggled off, the banner will always be visible. +- **Type:** The color and style of the banner. Choose from: + - `info` (Blue) + - `success` (Green) + - `warning` (Yellow) + - `error` (Red) +- **Title:** The main heading of the banner. +- **Content:** The main text or message of the banner. +- **Dismissible:** If toggled on, users can close the banner. Dismissed banners are stored in the user's browser, so they will not reappear for that user unless their browser cache is cleared. If toggled off, the banner will always be visible. -5. Click **"Save"** at the bottom of the page to apply your changes. +5. Click **"Save"** at the bottom of the page to apply your changes. ### Option 2: Using Environment Variables @@ -39,10 +39,10 @@ For automated deployments, you can configure banners using the `WEBUI_BANNERS` e **Environment Variable:** -- `WEBUI_BANNERS` - - **Type:** `string` (containing a JSON list of objects) - - **Default:** `[]` - - **Description:** A list of banner objects to be displayed to users. +- `WEBUI_BANNERS` + - **Type:** `string` (containing a JSON list of objects) + - **Default:** `[]` + - **Description:** A list of banner objects to be displayed to users. **Example:** @@ -60,18 +60,18 @@ services: Each banner object in the JSON list has the following properties: -- `id` (string, required): A unique identifier for the banner. This is used to track which banners a user has dismissed. -- `type` (string, required): The style of the banner. Must be one of `info`, `success`, `warning`, or `error`. -- `title` (string, required): The title text displayed on the banner. -- `content` (string, required): The main message of the banner. -- `dismissible` (boolean, required): Determines if the user can close the banner. `true` means it can be dismissed; `false` means it cannot. -- `timestamp` (integer, optional): **Note:** While this field is present in the configuration, it is not currently used by the frontend. The timestamp does not affect whether a banner is displayed or not. +- `id` (string, required): A unique identifier for the banner. This is used to track which banners a user has dismissed. +- `type` (string, required): The style of the banner. Must be one of `info`, `success`, `warning`, or `error`. +- `title` (string, required): The title text displayed on the banner. +- `content` (string, required): The main message of the banner. +- `dismissible` (boolean, required): Determines if the user can close the banner. `true` means it can be dismissed; `false` means it cannot. +- `timestamp` (integer, optional): **Note:** While this field is present in the configuration, it is not currently used by the frontend. The timestamp does not affect whether a banner is displayed or not. ## Troubleshooting -- **Banner Not Appearing:** - - Ensure the JSON format for the `WEBUI_BANNERS` environment variable is correct. It must be a valid JSON array of objects. - - Check the Open WebUI server logs for any errors related to parsing the `WEBUI_BANNERS` variable. -- **Banner Cannot Be Dismissed:** - - Verify that the `dismissible` property for the banner is set to `true` in your configuration. - - If a banner is not dismissible, it is by design and cannot be closed by the user. +- **Banner Not Appearing:** + - Ensure the JSON format for the `WEBUI_BANNERS` environment variable is correct. It must be a valid JSON array of objects. + - Check the Open WebUI server logs for any errors related to parsing the `WEBUI_BANNERS` variable. +- **Banner Cannot Be Dismissed:** + - Verify that the `dismissible` property for the banner is set to `true` in your configuration. + - If a banner is not dismissible, it is by design and cannot be closed by the user. diff --git a/docs/features/interface/webhooks.md b/docs/features/interface/webhooks.md index c35ca954..e6bc640d 100644 --- a/docs/features/interface/webhooks.md +++ b/docs/features/interface/webhooks.md @@ -9,8 +9,8 @@ Open WebUI offers two distinct webhook integrations to help you stay informed ab There are two types of webhooks available: -1. **Admin Webhook:** A system-wide webhook that notifies administrators about new user sign-ups. -2. **User Webhook:** A personal webhook that notifies individual users when a response to their chat is ready, especially useful for long-running tasks. +1. **Admin Webhook:** A system-wide webhook that notifies administrators about new user sign-ups. +2. **User Webhook:** A personal webhook that notifies individual users when a response to their chat is ready, especially useful for long-running tasks. ## 1. Admin Webhook: New User Notifications @@ -26,11 +26,11 @@ You can configure the admin webhook in two ways: #### Option 1: Through the Admin Panel -1. Log in as an administrator. -2. Navigate to **Admin Panel > Settings > General**. -3. Locate the **"Webhook URL"** field. -4. Enter the webhook URL provided by your external service (e.g., Discord, Slack). -5. Click **"Save"**. +1. Log in as an administrator. +2. Navigate to **Admin Panel > Settings > General**. +3. Locate the **"Webhook URL"** field. +4. Enter the webhook URL provided by your external service (e.g., Discord, Slack). +5. Click **"Save"**. #### Option 2: Through Environment Variables @@ -66,11 +66,11 @@ The notification is only sent if you are **not actively using the WebUI**. If yo ### Configuration -1. Click on your profile picture in the bottom-left corner to open the settings menu. -2. Navigate to **Settings > Account**. -3. Locate the **"Notification Webhook"** field. -4. Enter your personal webhook URL. -5. Click **"Save"**. +1. Click on your profile picture in the bottom-left corner to open the settings menu. +2. Navigate to **Settings > Account**. +3. Locate the **"Notification Webhook"** field. +4. Enter your personal webhook URL. +5. Click **"Save"**. ### Payload Format @@ -93,10 +93,10 @@ When a chat response is ready and you are inactive, Open WebUI will send a `POST If you're not receiving webhook notifications, here are a few things to check: -- **Verify the URL:** Ensure the webhook URL is correct and properly pasted into the settings field. -- **Service Configuration:** Double-check that the webhook is set up correctly in the external service (e.g., Discord, Slack). -- **Firewall/Proxy:** Make sure your network or firewall is not blocking outgoing requests from the Open WebUI server. -- **Open WebUI Logs:** Check the Open WebUI server logs for any error messages related to webhook failures. +- **Verify the URL:** Ensure the webhook URL is correct and properly pasted into the settings field. +- **Service Configuration:** Double-check that the webhook is set up correctly in the external service (e.g., Discord, Slack). +- **Firewall/Proxy:** Make sure your network or firewall is not blocking outgoing requests from the Open WebUI server. +- **Open WebUI Logs:** Check the Open WebUI server logs for any error messages related to webhook failures. :::note diff --git a/docs/tutorials/tab-nginx/LetsEncrypt.md b/docs/tutorials/tab-nginx/LetsEncrypt.md index 919c39db..1f91150b 100644 --- a/docs/tutorials/tab-nginx/LetsEncrypt.md +++ b/docs/tutorials/tab-nginx/LetsEncrypt.md @@ -4,14 +4,14 @@ Let's Encrypt provides free SSL certificates trusted by most browsers, ideal for This guide uses a two-phase approach: -1. **Phase 1:** Temporarily run Nginx to prove you own the domain and get a certificate from Let's Encrypt. -2. **Phase 2:** Reconfigure Nginx to use the new certificate for a secure HTTPS connection. +1. **Phase 1:** Temporarily run Nginx to prove you own the domain and get a certificate from Let's Encrypt. +2. **Phase 2:** Reconfigure Nginx to use the new certificate for a secure HTTPS connection. #### Prerequisites -* A **domain name** (e.g., `my-webui.com`) with a **DNS `A` record** pointing to your server's public IP address. -* **Docker** and **Docker Compose** installed on your server. -* Basic understanding of running commands in a terminal. + * A **domain name** (e.g., `my-webui.com`) with a **DNS `A` record** pointing to your server's public IP address. + * **Docker** and **Docker Compose** installed on your server. + * Basic understanding of running commands in a terminal. :::info **Heads up\!** Let's Encrypt **cannot** issue certificates for an IP address. You **must** use a domain name. @@ -104,7 +104,7 @@ First, we'll set up the necessary files and a temporary Nginx configuration that Now we'll run a script that uses Docker to fetch the certificate. -1. **Create the Certificate Request Script** +1. **Create the Certificate Request Script** Create an executable script named `enable_letsencrypt.sh` in your project root. @@ -146,13 +146,13 @@ Now we'll run a script that uses Docker to fetch the certificate. echo "### Certificate obtained successfully! ###" ``` -2. **Make the Script Executable** +2. **Make the Script Executable** ```bash chmod +x enable_letsencrypt.sh ``` -3. **Run the Script** +3. **Run the Script** Execute the script. It will automatically start Nginx, request the certificate, and then stop Nginx. @@ -166,7 +166,7 @@ Now we'll run a script that uses Docker to fetch the certificate. With the certificate saved in your `ssl` directory, you can now update the Nginx configuration to enable HTTPS. -1. **Update the Nginx Configuration for SSL** +1. **Update the Nginx Configuration for SSL** **Replace the entire contents** of `nginx/conf.d/open-webui.conf` with the final configuration below. @@ -222,7 +222,7 @@ With the certificate saved in your `ssl` directory, you can now update the Nginx } ``` -2. **Launch All Services** +2. **Launch All Services** Start both Nginx and Open WebUI with the final, secure configuration. @@ -244,13 +244,13 @@ You can now access your Open WebUI instance securely via HTTPS. Let's Encrypt certificates expire every 90 days. You should set up a `cron` job to renew them automatically. -1. Open the crontab editor: +1. Open the crontab editor: ```bash sudo crontab -e ``` -2. Add the following line to run a renewal check every day at 3:30 AM. It will only renew if the certificate is close to expiring. +2. Add the following line to run a renewal check every day at 3:30 AM. It will only renew if the certificate is close to expiring. ```cron 30 3 * * * /usr/bin/docker run --rm -v "/ssl/certbot/conf:/etc/letsencrypt" -v "/ssl/certbot/www:/var/www/certbot" certbot/certbot renew --quiet --webroot --webroot-path=/var/www/certbot --deploy-hook "/usr/bin/docker compose -f /docker-compose.yml restart nginx"