Merge pull request #12717 from Kheiden/progressive-webapp-enhancements

feat: Add PWA external manifest URL env var
This commit is contained in:
Tim Jaeryang Baek 2025-04-10 10:55:54 -07:00 committed by GitHub
commit 4cbf16c456
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 35 additions and 23 deletions

View File

@ -479,3 +479,10 @@ OTEL_TRACES_SAMPLER = os.environ.get(
PIP_OPTIONS = os.getenv("PIP_OPTIONS", "").split() PIP_OPTIONS = os.getenv("PIP_OPTIONS", "").split()
PIP_PACKAGE_INDEX_OPTIONS = os.getenv("PIP_PACKAGE_INDEX_OPTIONS", "").split() PIP_PACKAGE_INDEX_OPTIONS = os.getenv("PIP_PACKAGE_INDEX_OPTIONS", "").split()
####################################
# PROGRESSIVE WEB APP OPTIONS
####################################
EXTERNAL_PWA_MANIFEST_URL = os.environ.get("EXTERNAL_PWA_MANIFEST_URL")

View File

@ -342,6 +342,7 @@ from open_webui.env import (
RESET_CONFIG_ON_START, RESET_CONFIG_ON_START,
OFFLINE_MODE, OFFLINE_MODE,
ENABLE_OTEL, ENABLE_OTEL,
EXTERNAL_PWA_MANIFEST_URL,
) )
@ -567,6 +568,7 @@ app.state.config.LDAP_CIPHERS = LDAP_CIPHERS
app.state.AUTH_TRUSTED_EMAIL_HEADER = WEBUI_AUTH_TRUSTED_EMAIL_HEADER app.state.AUTH_TRUSTED_EMAIL_HEADER = WEBUI_AUTH_TRUSTED_EMAIL_HEADER
app.state.AUTH_TRUSTED_NAME_HEADER = WEBUI_AUTH_TRUSTED_NAME_HEADER app.state.AUTH_TRUSTED_NAME_HEADER = WEBUI_AUTH_TRUSTED_NAME_HEADER
app.state.EXTERNAL_PWA_MANIFEST_URL = EXTERNAL_PWA_MANIFEST_URL
app.state.USER_COUNT = None app.state.USER_COUNT = None
app.state.TOOLS = {} app.state.TOOLS = {}
@ -1398,29 +1400,32 @@ async def oauth_callback(provider: str, request: Request, response: Response):
@app.get("/manifest.json") @app.get("/manifest.json")
async def get_manifest_json(): async def get_manifest_json():
return { if app.state.EXTERNAL_PWA_MANIFEST_URL:
"name": app.state.WEBUI_NAME, return requests.get(app.state.EXTERNAL_PWA_MANIFEST_URL).json()
"short_name": app.state.WEBUI_NAME, else:
"description": "Open WebUI is an open, extensible, user-friendly interface for AI that adapts to your workflow.", return {
"start_url": "/", "name": app.state.WEBUI_NAME,
"display": "standalone", "short_name": app.state.WEBUI_NAME,
"background_color": "#343541", "description": "Open WebUI is an open, extensible, user-friendly interface for AI that adapts to your workflow.",
"orientation": "natural", "start_url": "/",
"icons": [ "display": "standalone",
{ "background_color": "#343541",
"src": "/static/logo.png", "orientation": "natural",
"type": "image/png", "icons": [
"sizes": "500x500", {
"purpose": "any", "src": "/static/logo.png",
}, "type": "image/png",
{ "sizes": "500x500",
"src": "/static/logo.png", "purpose": "any",
"type": "image/png", },
"sizes": "500x500", {
"purpose": "maskable", "src": "/static/logo.png",
}, "type": "image/png",
], "sizes": "500x500",
} "purpose": "maskable",
},
],
}
@app.get("/opensearch.xml") @app.get("/opensearch.xml")