From 1e4e373f9347c85a5290ce0154fadecbf8f87657 Mon Sep 17 00:00:00 2001 From: R3D347HR4Y Date: Sat, 13 Jun 2026 22:55:35 +0200 Subject: [PATCH] feat(branding): update UltiAI branding and configuration - Added WEBUI_NAME variable to .env.example and Docker Compose for consistent branding. - Enhanced Nginx configuration with sub_filters to replace 'Open WebUI' with 'UltiAI' in responses. - Introduced custom CSS for UltiAI branding and added logo and favicon assets. - Implemented routing adjustments in Nginx to support SPA navigation without prefix issues. --- .env.example | 1 + deploy/nginx/default.conf.template | 33 ++++++++++++++++++ deploy/openwebui/docker-compose.openwebui.yml | 4 +++ services/openwebui/static/custom.css | 4 +++ services/openwebui/static/favicon.png | Bin 0 -> 22748 bytes services/openwebui/static/logo.png | Bin 0 -> 22748 bytes services/openwebui/static/ultiai-mark.svg | 15 ++++++++ 7 files changed, 57 insertions(+) create mode 100644 services/openwebui/static/custom.css create mode 100644 services/openwebui/static/favicon.png create mode 100644 services/openwebui/static/logo.png create mode 100644 services/openwebui/static/ultiai-mark.svg diff --git a/.env.example b/.env.example index 28751cd..9981c6c 100644 --- a/.env.example +++ b/.env.example @@ -178,6 +178,7 @@ WEBUI_SECRET_KEY=changeme-openwebui-dev-secret AI_GATEWAY_API_KEY=ulti-gateway # OpenWebUI embed : modèles ultid visibles sans entrée DB par modèle BYPASS_MODEL_ACCESS_CONTROL=true +WEBUI_NAME=UltiAI AI_ASSISTANT_PUBLIC_PATH=/ai ULTIMAIL_MCP_URL=http://ultimail-mcp:3100 # OpenWebUI utilise POSTGRES_USER/POSTGRES_PASSWORD (base openwebui créée dans init-db.sh) diff --git a/deploy/nginx/default.conf.template b/deploy/nginx/default.conf.template index b81b241..908c9e0 100644 --- a/deploy/nginx/default.conf.template +++ b/deploy/nginx/default.conf.template @@ -383,6 +383,11 @@ server { proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; + proxy_set_header Accept-Encoding ""; + sub_filter_once off; + sub_filter_types application/json text/plain; + sub_filter 'UltiAI (Open WebUI)' 'UltiAI'; + sub_filter 'Open WebUI' 'UltiAI'; proxy_read_timeout 86400s; proxy_send_timeout 86400s; } @@ -643,6 +648,20 @@ server { # SvelteKit base path — without this, /ai/ routes 404 (base "" expects site root) sub_filter 'base: ""' 'base: "/ai"'; sub_filter "base: ''" 'base: "/ai"'; + # In-app links that escape to site root (e.g. "Nouvelle conversation" → /) + sub_filter 'href="/"' 'href="/ai/"'; + sub_filter "href='/'" "href='/ai/'"; + sub_filter 'href="/notes' 'href="/ai/notes'; + sub_filter 'href="/workspace' 'href="/ai/workspace'; + sub_filter 'href="/home' 'href="/ai/home'; + sub_filter 'href="/c/' 'href="/ai/c/'; + sub_filter 'href="/automations' 'href="/ai/automations'; + sub_filter 'href="/calendar' 'href="/ai/calendar'; + sub_filter 'href="/channels' 'href="/ai/channels'; + sub_filter 'href="/playground' 'href="/ai/playground'; + # UltiAI branding (WEBUI_NAME env still appends " (Open WebUI)" in backend) + sub_filter 'UltiAI (Open WebUI)' 'UltiAI'; + sub_filter 'Open WebUI' 'UltiAI'; } location = /ai { @@ -692,6 +711,10 @@ server { sub_filter_types application/javascript text/javascript; sub_filter '"/api/' '"/ai/api/'; sub_filter "'/api/" "'/ai/api/"; + sub_filter 'href="/"' 'href="/ai/"'; + sub_filter "href='/'" "href='/ai/'"; + sub_filter 'Open WebUI' 'UltiAI'; + sub_filter 'UltiAI (Open WebUI)' 'UltiAI'; } location ^~ /_app/ { @@ -718,6 +741,10 @@ server { sub_filter_types application/javascript text/javascript application/json; sub_filter '"/api/' '"/ai/api/'; sub_filter "'/api/" "'/ai/api/"; + sub_filter 'href="/"' 'href="/ai/"'; + sub_filter "href='/'" "href='/ai/'"; + sub_filter 'Open WebUI' 'UltiAI'; + sub_filter 'UltiAI (Open WebUI)' 'UltiAI'; } location = /manifest.json { @@ -1002,6 +1029,12 @@ server { proxy_set_header X-Forwarded-Proto $scheme; } + # OpenWebUI SPA routes without /ai prefix (client nav + hard reload in UltiAI iframe). + # Do not include "auth" — Ultimail OIDC uses /auth/application/o/… (Authentik). + location ~ ^/(notes|workspace|c|home|automations|calendar|channels|playground|watch|s|error)(/|$) { + return 302 /ai$uri$is_args$args; + } + location / { default_type text/plain; return 404 "Not found\n"; diff --git a/deploy/openwebui/docker-compose.openwebui.yml b/deploy/openwebui/docker-compose.openwebui.yml index 967f3a2..469062c 100644 --- a/deploy/openwebui/docker-compose.openwebui.yml +++ b/deploy/openwebui/docker-compose.openwebui.yml @@ -11,6 +11,7 @@ services: ENABLE_PERSISTENT_CONFIG: "false" ENABLE_DIRECT_CONNECTIONS: "false" BYPASS_MODEL_ACCESS_CONTROL: "true" + WEBUI_NAME: UltiAI OPENAI_API_BASE_URL: http://ultid:8080/api/v1/ai OPENAI_API_KEY: ${AI_GATEWAY_API_KEY:-ulti-gateway} WEBUI_URL: http://${DOMAIN:-localhost}/ai @@ -20,6 +21,9 @@ services: volumes: - openwebui_data:/app/backend/data - ../services/openwebui/pipelines:/app/pipelines/custom:ro + - ../services/openwebui/static/logo.png:/app/backend/open_webui/static/logo.png:ro + - ../services/openwebui/static/favicon.png:/app/backend/open_webui/static/favicon.png:ro + - ../services/openwebui/static/custom.css:/app/backend/open_webui/static/custom.css:ro networks: - ulti-net depends_on: diff --git a/services/openwebui/static/custom.css b/services/openwebui/static/custom.css new file mode 100644 index 0000000..731a44a --- /dev/null +++ b/services/openwebui/static/custom.css @@ -0,0 +1,4 @@ +/* UltiAI branding overrides (OpenWebUI custom.css hook) */ +:root { + --ultiai-brand: #1a73e8; +} diff --git a/services/openwebui/static/favicon.png b/services/openwebui/static/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..50a37acf74cec788b55972b33a1e5c4026f0bfea GIT binary patch literal 22748 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