ソースを参照

feat: configurable db url

Co-Authored-By: Ryan Rodriguez <62253265+ryanmrodriguez@users.noreply.github.com>
Co-Authored-By: Mario Trangoni <mario@mariotrangoni.de>
Timothy Jaeryang Baek 3 ヶ月 前
コミット
8661c4416a
1 ファイル変更24 行追加0 行削除
  1. 24 0
      backend/open_webui/env.py

+ 24 - 0
backend/open_webui/env.py

@@ -267,6 +267,30 @@ else:
 
 
 DATABASE_URL = os.environ.get("DATABASE_URL", f"sqlite:///{DATA_DIR}/webui.db")
 DATABASE_URL = os.environ.get("DATABASE_URL", f"sqlite:///{DATA_DIR}/webui.db")
 
 
+DATABASE_TYPE = os.environ.get("DATABASE_TYPE")
+DATABASE_USER = os.environ.get("DATABASE_USER")
+DATABASE_PASSWORD = os.environ.get("DATABASE_PASSWORD")
+
+DATABASE_CRED = ""
+if DATABASE_USER:
+    DATABASE_CRED += f"{DATABASE_USER}"
+if DATABASE_PASSWORD:
+    DATABASE_CRED += f":{DATABASE_PASSWORD}"
+if DATABASE_CRED:
+    DATABASE_CRED += "@"
+
+
+DB_VARS = {
+    "db_type": DATABASE_TYPE,
+    "db_cred": DATABASE_CRED,
+    "db_host": os.environ.get("DATABASE_HOST"),
+    "db_port": os.environ.get("DATABASE_PORT"),
+    "db_name": os.environ.get("DATABASE_NAME"),
+}
+
+if all(DB_VARS.values()):
+    DATABASE_URL = f"{DB_VARS['db_type']}://{DB_VARS['db_cred']}@{DB_VARS['db_host']}:{DB_VARS['db_port']}/{DB_VARS['db_name']}"
+
 # Replace the postgres:// with postgresql://
 # Replace the postgres:// with postgresql://
 if "postgres://" in DATABASE_URL:
 if "postgres://" in DATABASE_URL:
     DATABASE_URL = DATABASE_URL.replace("postgres://", "postgresql://")
     DATABASE_URL = DATABASE_URL.replace("postgres://", "postgresql://")