Skip to main content

自定义横幅

概览

Open WebUI 允许管理员向已登录用户显示自定义横幅。此功能对于发布公告、显示系统范围的警报或分享重要信息非常有用。横幅是持久显示的,并且可以配置为允许用户关闭。

您可以通过两种方式配置横幅:通过管理面板获得用户友好的体验,或通过环境变量进行自动化或 GitOps 风格的部署。

配置横幅

选项 1:使用管理面板

这是管理横幅最直接的方法。

  1. 以管理员身份登录您的 Open WebUI 实例。
  2. 导航至管理面板 > 设置 > 界面
  3. 找到**“横幅” (Banners)** 部分。
  4. 点击 + 图标添加新横幅。

然后,您可以为每个横幅配置以下选项:

  • 类型 (Type): 横幅的颜色和样式。可选值包括:
    • info (蓝色)
    • success (绿色)
    • warning (黄色)
    • error (红色)
  • 标题 (Title): 横幅的主标题。
  • 内容 (Content): 横幅的主文本或消息。
  • 可关闭 (Dismissible): 如果开启,用户可以关闭横幅。关闭的横幅会存储在用户的浏览器中,因此除非清除浏览器缓存,否则该横幅不会再次向该用户显示。如果关闭此选项,横幅将始终可见。
  1. 点击页面底部的**“保存”**以应用更改。

选项 2:使用环境变量

对于自动化部署,您可以使用 WEBUI_BANNERS 环境变量配置横幅。该变量应为一个代表横幅对象列表的 JSON 字符串。

环境变量:

  • WEBUI_BANNERS
    • 类型: string (包含对象的 JSON 列表)
    • 默认值: []
    • 描述: 要向用户显示的横幅对象列表。

示例:

以下是在 docker-compose.yml 文件中设置 WEBUI_BANNERS 变量的示例:

services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
environment:
- 'WEBUI_BANNERS=[{"id":"update-2024-07-26","type":"info","title":"系统更新","content":"本周五晚上 10 点计划进行系统更新。预计会有短暂的停机。","dismissible":true},{"id":"policy-reminder","type":"warning","title":"政策提醒","content":"请记住遵守公司范围内的使用政策。","dismissible":false}]'

横幅对象属性

JSON 列表中的每个横幅对象具有以下属性:

  • id (字符串,必填):横幅的唯一标识符。用于跟踪用户已关闭哪些横幅。
  • type (字符串,必填):横幅的样式。必须是 infosuccesswarningerror 之一。
  • title (字符串,可选):显示在横幅上的标题文本。
  • content (字符串,必填):横幅的主要消息内容。
  • dismissible (布尔值,必填):确定用户是否可以关闭横幅。true 表示可以关闭;false 表示不可关闭。
  • timestamp (整数,必填):注意: 虽然配置中存在此字段,但目前前端未使用。时间戳不会影响横幅是否显示。

故障排除

  • 横幅未出现:
    • 确保 WEBUI_BANNERS 环境变量的 JSON 格式正确。它必须是一个有效的 JSON 对象数组。
    • 检查 Open WebUI 服务器日志,查看是否有任何与解析 WEBUI_BANNERS 变量相关的错误。
  • 横幅无法关闭:
    • 验证您的配置中该横幅的 dismissible 属性是否设置为 true
    • 如果横幅设置为不可关闭,这是设计使然,用户无法将其关闭。