Pārlūkot izejas kodu

feat: support suppressing version checks

guenhter 3 mēneši atpakaļ
vecāks
revīzija
34ddd62951

+ 4 - 1
backend/open_webui/env.py

@@ -529,11 +529,14 @@ else:
 # OFFLINE_MODE
 # OFFLINE_MODE
 ####################################
 ####################################
 
 
+ENABLE_VERSION_UPDATE_CHECK = (
+    os.environ.get("ENABLE_VERSION_UPDATE_CHECK", "true").lower() == "true"
+)
 OFFLINE_MODE = os.environ.get("OFFLINE_MODE", "false").lower() == "true"
 OFFLINE_MODE = os.environ.get("OFFLINE_MODE", "false").lower() == "true"
 
 
 if OFFLINE_MODE:
 if OFFLINE_MODE:
     os.environ["HF_HUB_OFFLINE"] = "1"
     os.environ["HF_HUB_OFFLINE"] = "1"
-
+    ENABLE_VERSION_UPDATE_CHECK = False
 
 
 ####################################
 ####################################
 # AUDIT LOGGING
 # AUDIT LOGGING

+ 4 - 4
backend/open_webui/main.py

@@ -418,7 +418,7 @@ from open_webui.env import (
     ENABLE_WEBSOCKET_SUPPORT,
     ENABLE_WEBSOCKET_SUPPORT,
     BYPASS_MODEL_ACCESS_CONTROL,
     BYPASS_MODEL_ACCESS_CONTROL,
     RESET_CONFIG_ON_START,
     RESET_CONFIG_ON_START,
-    OFFLINE_MODE,
+    ENABLE_VERSION_UPDATE_CHECK,
     ENABLE_OTEL,
     ENABLE_OTEL,
     EXTERNAL_PWA_MANIFEST_URL,
     EXTERNAL_PWA_MANIFEST_URL,
     AIOHTTP_CLIENT_SESSION_SSL,
     AIOHTTP_CLIENT_SESSION_SSL,
@@ -1546,7 +1546,6 @@ async def get_app_config(request: Request):
         "name": app.state.WEBUI_NAME,
         "name": app.state.WEBUI_NAME,
         "version": VERSION,
         "version": VERSION,
         "default_locale": str(DEFAULT_LOCALE),
         "default_locale": str(DEFAULT_LOCALE),
-        "offline_mode": OFFLINE_MODE,
         "oauth": {
         "oauth": {
             "providers": {
             "providers": {
                 name: config.get("name", name)
                 name: config.get("name", name)
@@ -1561,6 +1560,7 @@ async def get_app_config(request: Request):
             "enable_signup": app.state.config.ENABLE_SIGNUP,
             "enable_signup": app.state.config.ENABLE_SIGNUP,
             "enable_login_form": app.state.config.ENABLE_LOGIN_FORM,
             "enable_login_form": app.state.config.ENABLE_LOGIN_FORM,
             "enable_websocket": ENABLE_WEBSOCKET_SUPPORT,
             "enable_websocket": ENABLE_WEBSOCKET_SUPPORT,
+            "enable_version_update_check": ENABLE_VERSION_UPDATE_CHECK,
             **(
             **(
                 {
                 {
                     "enable_direct_connections": app.state.config.ENABLE_DIRECT_CONNECTIONS,
                     "enable_direct_connections": app.state.config.ENABLE_DIRECT_CONNECTIONS,
@@ -1666,9 +1666,9 @@ async def get_app_version():
 
 
 @app.get("/api/version/updates")
 @app.get("/api/version/updates")
 async def get_app_latest_release_version(user=Depends(get_verified_user)):
 async def get_app_latest_release_version(user=Depends(get_verified_user)):
-    if OFFLINE_MODE:
+    if not ENABLE_VERSION_UPDATE_CHECK:
         log.debug(
         log.debug(
-            f"Offline mode is enabled, returning current version as latest version"
+            f"Version update check is disabled, returning current version as latest version"
         )
         )
         return {"current": VERSION, "latest": VERSION}
         return {"current": VERSION, "latest": VERSION}
     try:
     try:

+ 2 - 2
src/lib/components/admin/Settings/General.svelte

@@ -90,7 +90,7 @@
 	};
 	};
 
 
 	onMount(async () => {
 	onMount(async () => {
-		if (!$config?.offline_mode) {
+		if ($config?.features?.enable_version_update_check) {
 			checkForVersionUpdates();
 			checkForVersionUpdates();
 		}
 		}
 
 
@@ -162,7 +162,7 @@
 								</button>
 								</button>
 							</div>
 							</div>
 
 
-							{#if !$config?.offline_mode}
+							{#if $config?.features?.enable_version_update_check}
 								<button
 								<button
 									class=" text-xs px-3 py-1.5 bg-gray-50 hover:bg-gray-100 dark:bg-gray-850 dark:hover:bg-gray-800 transition rounded-lg font-medium"
 									class=" text-xs px-3 py-1.5 bg-gray-50 hover:bg-gray-100 dark:bg-gray-850 dark:hover:bg-gray-800 transition rounded-lg font-medium"
 									type="button"
 									type="button"

+ 2 - 2
src/lib/components/chat/Settings/About.svelte

@@ -38,7 +38,7 @@
 			return '';
 			return '';
 		});
 		});
 
 
-		if (!$config?.offline_mode) {
+		if ($config?.features?.enable_version_update_check) {
 			checkForVersionUpdates();
 			checkForVersionUpdates();
 		}
 		}
 	});
 	});
@@ -82,7 +82,7 @@
 					</button>
 					</button>
 				</div>
 				</div>
 
 
-				{#if $config?.offline_mode}
+				{#if $config?.features?.enable_version_update_check}
 					<button
 					<button
 						class=" text-xs px-3 py-1.5 bg-gray-100 hover:bg-gray-200 dark:bg-gray-850 dark:hover:bg-gray-800 transition rounded-lg font-medium"
 						class=" text-xs px-3 py-1.5 bg-gray-100 hover:bg-gray-200 dark:bg-gray-850 dark:hover:bg-gray-800 transition rounded-lg font-medium"
 						on:click={() => {
 						on:click={() => {

+ 1 - 0
src/lib/stores/index.ts

@@ -255,6 +255,7 @@ type Config = {
 		enable_community_sharing: boolean;
 		enable_community_sharing: boolean;
 		enable_autocomplete_generation: boolean;
 		enable_autocomplete_generation: boolean;
 		enable_direct_connections: boolean;
 		enable_direct_connections: boolean;
+		enable_version_update_check: boolean;
 	};
 	};
 	oauth: {
 	oauth: {
 		providers: {
 		providers: {

+ 1 - 1
src/routes/(app)/+layout.svelte

@@ -227,7 +227,7 @@
 			}
 			}
 
 
 			// Check for version updates
 			// Check for version updates
-			if ($user?.role === 'admin' && !$config?.offline_mode) {
+			if ($user?.role === 'admin' && $config?.features?.enable_version_update_check) {
 				// Check if the user has dismissed the update toast in the last 24 hours
 				// Check if the user has dismissed the update toast in the last 24 hours
 				if (localStorage.dismissedUpdateToast) {
 				if (localStorage.dismissedUpdateToast) {
 					const dismissedUpdateToast = new Date(Number(localStorage.dismissedUpdateToast));
 					const dismissedUpdateToast = new Date(Number(localStorage.dismissedUpdateToast));