diff --git a/content/docs/configuration/librechat_yaml/object_structure/branding.mdx b/content/docs/configuration/librechat_yaml/object_structure/branding.mdx new file mode 100644 index 000000000..ae8abb0b7 --- /dev/null +++ b/content/docs/configuration/librechat_yaml/object_structure/branding.mdx @@ -0,0 +1,131 @@ +--- +title: "Branding Object Structure" +icon: Palette +--- + +## Overview + +The `branding` object enables white-label customization of LibreChat. It provides runtime control over logos, favicons, browser metadata, and color themes — without requiring source code changes. + +Branding is resolved through the same app-config pipeline as `interface` and `turnstile`, and is delivered to the frontend via the `/api/config` startup payload. + +These are the top-level fields under `branding`: + +- `appLogo` +- `authLogo` +- `favicon` +- `meta` +- `theme` + +## Example + +```yaml filename="librechat.yaml" +branding: + appLogo: "/assets/my-logo.svg" + authLogo: "/assets/my-auth-logo.svg" + favicon: "/assets/my-favicon.png" + meta: + title: "My Chat App" + description: "Powered by LibreChat" + themeColor: "#0f766e" + pwaName: "My Chat App" + pwaShortName: "ChatApp" + pwaBackgroundColor: "#ffffff" + pwaThemeColor: "#0f766e" + theme: + light: + rgb-primary: "15 118 110" + rgb-accent: "13 148 136" + rgb-surface-primary: "248 250 252" + dark: + rgb-primary: "45 212 191" + rgb-accent: "20 184 166" + rgb-surface-primary: "15 23 42" +``` + +## branding + + + +### appLogo + + + +### authLogo + + + +### favicon + + + +### meta + +Browser and PWA metadata applied at runtime. + +` tag content.', 'Powered by LibreChat'], + ['themeColor', 'String', 'Sets the `` tag. Controls the browser chrome color on mobile devices.', '#0f766e'], + ['pwaName', 'String', 'Full name of the app when installed as a Progressive Web App.', 'My Chat App'], + ['pwaShortName', 'String', 'Short name shown on the home screen when installed as a PWA.', 'ChatApp'], + ['pwaBackgroundColor', 'String', 'Background color of the PWA splash screen.', '#ffffff'], + ['pwaThemeColor', 'String', 'Theme color for the PWA shell.', '#0f766e'], + ]} +/> + +### theme + +Runtime color theme tokens injected into the `ThemeProvider`. Supports separate palettes for `light` and `dark` modes. Both are optional — if only one is provided, it is used for both modes. + +Each palette is a map of CSS variable names (without the `--` prefix) to RGB values as space-separated strings (e.g. `"15 118 110"` for `rgb(15, 118, 110)`). + + + +**Common theme tokens:** + + + +--- + +## Notes + +- All `branding` fields are optional. Omitting the block entirely leaves default LibreChat behavior unchanged. +- Logo and favicon paths should be relative to the app's public assets directory or absolute URLs. +- Theme tokens are applied after the user's theme preference (light/dark) is resolved. The correct palette is selected automatically. +- The `meta.title` field takes precedence over the top-level `appTitle` config field when both are set. diff --git a/content/docs/configuration/librechat_yaml/object_structure/file_config.mdx b/content/docs/configuration/librechat_yaml/object_structure/file_config.mdx index cb8f6abba..7832f243e 100644 --- a/content/docs/configuration/librechat_yaml/object_structure/file_config.mdx +++ b/content/docs/configuration/librechat_yaml/object_structure/file_config.mdx @@ -311,6 +311,8 @@ This priority system allows features like "Upload as Text" to work without requi - The total maximum size for all files in a single request. In units of MB (e.g. use `20` for 20 megabytes) - `supportedMimeTypes` - A list of [Regular Expressions](https://en.wikipedia.org/wiki/Regular_expression) specifying what MIME types are allowed for upload. This can be customized to restrict file types. + - `disableProviderUpload` + - When `true`, hides the "Upload to Provider" option in the attachment menu for this endpoint. "Upload as Text" and "File Search" remain available. ## disabled @@ -392,3 +394,28 @@ assistants: - "image/.*" - "application/pdf" ``` + +## disableProviderUpload + + + +**Default:** `false` + +**Example:** +```yaml filename="fileConfig / endpoints / {endpoint_record} / disableProviderUpload" +fileConfig: + endpoints: + litellm: + disableProviderUpload: true + custom: + disableProviderUpload: true +``` + +**Notes:** +- Only hides "Upload to Provider". "Upload as Text" (RAG) and "File Search" are not affected. +- Can be set on any endpoint key: named custom endpoints (e.g. `litellm`), the generic `custom` fallback, or built-in endpoints like `openAI`. +- If set on `default`, it applies to all endpoints that do not have their own entry. diff --git a/content/docs/configuration/librechat_yaml/object_structure/interface.mdx b/content/docs/configuration/librechat_yaml/object_structure/interface.mdx index b3d9b78ca..569443b40 100644 --- a/content/docs/configuration/librechat_yaml/object_structure/interface.mdx +++ b/content/docs/configuration/librechat_yaml/object_structure/interface.mdx @@ -651,3 +651,4 @@ interface: marketplace: use: true # Enable marketplace access ``` + diff --git a/content/docs/configuration/librechat_yaml/object_structure/meta.json b/content/docs/configuration/librechat_yaml/object_structure/meta.json index ee9d1c6a9..f553a5cc6 100644 --- a/content/docs/configuration/librechat_yaml/object_structure/meta.json +++ b/content/docs/configuration/librechat_yaml/object_structure/meta.json @@ -5,6 +5,7 @@ "---General---", "config", "interface", + "branding", "registration", "turnstile", "---Models & Specs---",