From 83ad488e314dff5c0eceb700221c4374229b31e9 Mon Sep 17 00:00:00 2001 From: Andrew Phillips Date: Tue, 2 Apr 2024 15:55:00 -0300 Subject: [PATCH] Do not use hardcoded manifest.json Generate manifest.json dynamically, using MANIFEST_NAME and MANIFEST_SHORT_NAME from the environment. --- .env.example | 5 ++++- Dockerfile | 3 +++ backend/config.py | 8 ++++++++ backend/main.py | 24 ++++++++++++++++++++++++ static/manifest.json | 16 ---------------- 5 files changed, 39 insertions(+), 17 deletions(-) delete mode 100644 static/manifest.json diff --git a/.env.example b/.env.example index 3d2aafc0..689d5a19 100644 --- a/.env.example +++ b/.env.example @@ -9,4 +9,7 @@ OPENAI_API_KEY='' # DO NOT TRACK SCARF_NO_ANALYTICS=true -DO_NOT_TRACK=true \ No newline at end of file +DO_NOT_TRACK=true + +MANIFEST_NAME='Open WebUI' +MANIFEST_SHORT_NAME='Open WebUI' diff --git a/Dockerfile b/Dockerfile index de501838..87820311 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,6 +30,9 @@ ENV WEBUI_SECRET_KEY "" ENV SCARF_NO_ANALYTICS true ENV DO_NOT_TRACK true +ENV MANIFEST_NAME "Open WebUI" +ENV MANIFEST_SHORT_NAME "Open WebUI" + ######## Preloaded models ######## # whisper TTS Settings ENV WHISPER_MODEL="base" diff --git a/backend/config.py b/backend/config.py index 04778f9f..df1d024c 100644 --- a/backend/config.py +++ b/backend/config.py @@ -424,3 +424,11 @@ WHISPER_MODEL_DIR = os.getenv("WHISPER_MODEL_DIR", f"{CACHE_DIR}/whisper/models" AUTOMATIC1111_BASE_URL = os.getenv("AUTOMATIC1111_BASE_URL", "") COMFYUI_BASE_URL = os.getenv("COMFYUI_BASE_URL", "") + + +#################################### +# Manifest +#################################### + +MANIFEST_NAME = os.getenv("MANIFEST_NAME", "Open WebUI") +MANIFEST_SHORT_NAME = os.getenv("MANIFEST_SHORT_NAME", "Open WebUI") diff --git a/backend/main.py b/backend/main.py index 8cc704a2..7307b54f 100644 --- a/backend/main.py +++ b/backend/main.py @@ -43,6 +43,8 @@ from config import ( GLOBAL_LOG_LEVEL, SRC_LOG_LEVELS, WEBHOOK_URL, + MANIFEST_NAME, + MANIFEST_SHORT_NAME ) from constants import ERROR_MESSAGES @@ -69,6 +71,8 @@ app.state.MODEL_FILTER_LIST = MODEL_FILTER_LIST app.state.WEBHOOK_URL = WEBHOOK_URL +app.state.MANIFEST_NAME = MANIFEST_NAME +app.state.MANIFEST_SHORT_NAME = MANIFEST_SHORT_NAME origins = ["*"] @@ -268,6 +272,26 @@ async def get_app_latest_release_version(): ) +@app.get("/manifest.json") +async def get_manifest_json(): + return { + "name": app.state.MANIFEST_NAME, + "short_name": app.state.MANIFEST_SHORT_NAME, + "start_url": "/", + "display": "standalone", + "background_color": "#343541", + "theme_color": "#343541", + "orientation": "portrait-primary", + "icons": [ + { + "src": "/favicon.png", + "type": "image/png", + "sizes": "844x884" + } + ] + } + + app.mount("/static", StaticFiles(directory="static"), name="static") app.mount("/cache", StaticFiles(directory="data/cache"), name="cache") diff --git a/static/manifest.json b/static/manifest.json deleted file mode 100644 index ee019bd9..00000000 --- a/static/manifest.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "Open WebUI", - "short_name": "Open WebUI", - "start_url": "/", - "display": "standalone", - "background_color": "#343541", - "theme_color": "#343541", - "orientation": "portrait-primary", - "icons": [ - { - "src": "/favicon.png", - "type": "image/png", - "sizes": "844x884" - } - ] -}