From 004700c1250dcf5403197201ca1efe4fc1c434c4 Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Wed, 4 Sep 2024 22:33:40 +0200 Subject: [PATCH 1/5] feat: add `OVERRIDE_PIP_INSTALL` environment variable --- backend/open_webui/env.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/backend/open_webui/env.py b/backend/open_webui/env.py index b803b5863..a509fd1a0 100644 --- a/backend/open_webui/env.py +++ b/backend/open_webui/env.py @@ -95,6 +95,8 @@ try: except importlib.metadata.PackageNotFoundError: pass +OVERRIDE_PIP_INSTALL = os.environ.get("OVERRIDE_PIP_INSTALL") +PIP_INSTALL = OVERRIDE_PIP_INSTALL if (OVERRIDE_PIP_INSTALL != None) else PIP_INSTALL if PIP_INSTALL: PACKAGE_DATA = {"version": importlib.metadata.version("open-webui")} From a0be3822bf40dd1d448ff51dce094783fe23d4e9 Mon Sep 17 00:00:00 2001 From: "Timothy J. Baek" Date: Wed, 4 Sep 2024 23:00:01 +0200 Subject: [PATCH 2/5] refac --- backend/open_webui/env.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/backend/open_webui/env.py b/backend/open_webui/env.py index a509fd1a0..26ccdf7ec 100644 --- a/backend/open_webui/env.py +++ b/backend/open_webui/env.py @@ -95,8 +95,10 @@ try: except importlib.metadata.PackageNotFoundError: pass -OVERRIDE_PIP_INSTALL = os.environ.get("OVERRIDE_PIP_INSTALL") -PIP_INSTALL = OVERRIDE_PIP_INSTALL if (OVERRIDE_PIP_INSTALL != None) else PIP_INSTALL + +PIP_INSTALL = ( + os.environ.get("PIP_INSTALL") if os.environ.get("PIP_INSTALL") else PIP_INSTALL +) if PIP_INSTALL: PACKAGE_DATA = {"version": importlib.metadata.version("open-webui")} From 74169b0320995b9b31cdd610b020e9b645b14c8d Mon Sep 17 00:00:00 2001 From: vikrantrathore Date: Thu, 5 Sep 2024 14:17:58 +0800 Subject: [PATCH 3/5] fix: avoid overriding DATA_DIR and prevent errors when directories are the same Previously, the `DATA_DIR` environment variable was always overridden by defaulting to `OPEN_WEBUI_DIR / "data"`, which ignored user-defined `DATA_DIR` values. Additionally, when `DATA_DIR` and `NEW_DATA_DIR` were the same, the script attempted to copy files into themselves, leading to errors or redundant operations. This commit ensures that: 1. The `DATA_DIR` environment variable is respected and not overridden. 2. Copy operations between `DATA_DIR` and `NEW_DATA_DIR` are only performed if the directories are different, preventing errors when they point to the same location. These changes resolve potential file copy errors and preserve user configurations. --- backend/open_webui/env.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/open_webui/env.py b/backend/open_webui/env.py index 26ccdf7ec..f6373e2a8 100644 --- a/backend/open_webui/env.py +++ b/backend/open_webui/env.py @@ -196,7 +196,7 @@ if PIP_INSTALL: NEW_DATA_DIR.mkdir(parents=True, exist_ok=True) # Check if the data directory exists in the package directory - if DATA_DIR.exists(): + if DATA_DIR.exists() and DATA_DIR != NEW_DATA_DIR:: log.info(f"Moving {DATA_DIR} to {NEW_DATA_DIR}") for item in DATA_DIR.iterdir(): dest = NEW_DATA_DIR / item.name @@ -205,7 +205,7 @@ if PIP_INSTALL: else: shutil.copy2(item, dest) - DATA_DIR = OPEN_WEBUI_DIR / "data" + DATA_DIR = Path(os.getenv("DATA_DIR", OPEN_WEBUI_DIR / "data")) FRONTEND_BUILD_DIR = Path(os.getenv("FRONTEND_BUILD_DIR", BASE_DIR / "build")).resolve() From 85fc35492d88ecb701cd389ddca4cc32fdce84de Mon Sep 17 00:00:00 2001 From: "Timothy J. Baek" Date: Thu, 5 Sep 2024 16:11:07 +0200 Subject: [PATCH 4/5] refac --- backend/open_webui/env.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/open_webui/env.py b/backend/open_webui/env.py index f6373e2a8..05c2857dd 100644 --- a/backend/open_webui/env.py +++ b/backend/open_webui/env.py @@ -196,7 +196,7 @@ if PIP_INSTALL: NEW_DATA_DIR.mkdir(parents=True, exist_ok=True) # Check if the data directory exists in the package directory - if DATA_DIR.exists() and DATA_DIR != NEW_DATA_DIR:: + if DATA_DIR.exists() and DATA_DIR != NEW_DATA_DIR: log.info(f"Moving {DATA_DIR} to {NEW_DATA_DIR}") for item in DATA_DIR.iterdir(): dest = NEW_DATA_DIR / item.name @@ -209,6 +209,7 @@ if PIP_INSTALL: FRONTEND_BUILD_DIR = Path(os.getenv("FRONTEND_BUILD_DIR", BASE_DIR / "build")).resolve() + if PIP_INSTALL: FRONTEND_BUILD_DIR = Path( os.getenv("FRONTEND_BUILD_DIR", OPEN_WEBUI_DIR / "frontend") From 8a411decacb50ddff331b32118e5fe860539bb33 Mon Sep 17 00:00:00 2001 From: "Timothy J. Baek" Date: Thu, 5 Sep 2024 16:13:40 +0200 Subject: [PATCH 5/5] fix --- backend/open_webui/env.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/backend/open_webui/env.py b/backend/open_webui/env.py index 05c2857dd..b0585db90 100644 --- a/backend/open_webui/env.py +++ b/backend/open_webui/env.py @@ -97,7 +97,9 @@ except importlib.metadata.PackageNotFoundError: PIP_INSTALL = ( - os.environ.get("PIP_INSTALL") if os.environ.get("PIP_INSTALL") else PIP_INSTALL + os.environ.get("PIP_INSTALL", "False").lower() == "true" + if os.environ.get("PIP_INSTALL") + else PIP_INSTALL ) if PIP_INSTALL: