环境变量配置
概览
OPL 数据空间 提供了大量环境变量,用来定制应用的认证、模型路由、存储、日志、检索、扩展能力等行为。本页是这些变量的中文化高频总览,重点先覆盖部署时最常会碰到的入口、通用 区块和容易踩坑的 PersistentConfig 机制。
如果你只是在找某一个具体设置,优先用浏览器搜索;如果你在做部署变更,建议先从下面的分类导航开始,而不是从头到尾顺序阅读整页。
本页当前优先覆盖高频配置路径与最常用变量,细分 provider / RAG / 存储 / observability 的全部条目会继续逐段补全。
快速导航
以下这些类别最适合先读:
- 身份、注册与管理员初始化:
WEBUI_URL、ENABLE_SIGNUP、WEBUI_ADMIN_EMAIL、OAuth / SCIM - 组织与混合作用域管理:
DEFAULT_ORGANIZATION_ID、ORGANIZATION_*配置映射 - 模型与 provider 连接:Ollama、OpenAI、direct connections、task models、图像 provider
- RAG 与检索:内容提取、embedding、rerank、向量数据库
- 存储与数据库:
DATABASE_URL、向量数据库、对象存储、Redis - 日志、审计与可观测性:audit logs、JSON logging、OpenTelemetry
本页会同时记录部分兼容别名与过时变量名。新部署应优先采用新的 canonical name;只有在维护老环境时,才建议继续使用 legacy alias。
关于 PersistentConfig
重要说明:PersistentConfig 环境变量
首次启动 OPL 数据空间 时,所有环境变量都一样对待,都会参与配置应用。
但对于被标记为 PersistentConfig 的变量,它们的值会被持久化存进数据库。之后如果你重启容器,这些变量就不再优先读取外部环境变量,而是优先采用数据库里已经保存的值。
普通环境变量则会在每次重启时继续从外部环境中读取并生效。
如果你想关闭这套行为,强制 OPL 数据空间 总是以环境变量为准,请设:
ENABLE_PERSISTENT_CONFIG=False重要警告: 当 ENABLE_PERSISTENT_CONFIG=False 时,你在 Admin UI 中修改这些设置,看起来仍然会暂时生效,但重启后会丢失,因为系统会重新回到环境变量定义的值。
环境变量改了却看起来没生效
最常见原因就是:这个设置已经被数据库中的 PersistentConfig 覆盖了。
有四种处理方式:
方式 1:临时关闭 PersistentConfig
ENABLE_PERSISTENT_CONFIG=False这样系统会强制从环境变量读取配置,但 UI 中修改不会持久化。
方式 2:直接在 Admin UI 中改(推荐)
对大多数场景,最安全的方式就是直接在 OPL 数据空间 的 管理员面板 里更新这些持久化配置。
方式 3:手改数据库(只在锁 死或无法进入 UI 时使用)
docker exec -it open-webui sqlite3 /app/backend/data/webui.db "UPDATE config SET data = json_set(data, '$.ENABLE_SIGNUP', json('true'));"方式 4:做真正的全新安装
- 停止容器
- 删除持久卷
- 重启容器
删除卷会清空用户数据、聊天记录和账号。
组织感知管理配置
启用了 组织 后,并不是所有管理员设置都还是“整个实例的一把总开关”。
- 有些值仍然是实例级全局的
- 有些值可以按当前选中的组织覆写
- 有些组织级覆写可以委派给 organization admin,有些则只能由 global admin 控制
如果某个设置在一个租户里看起来正确,在另一个租户里却不对,先确认 Admin switcher 当前选中的组织,再结合 Admin Scope 一起分析。
App / Backend
下面这些变量主要来自 backend/open_webui/config.py,控制 OPL 数据空间 的启动行为。
通用
WEBUI_URL
- 类型:
str - 默认值:
http://localhost:3000 - 说明:定义你的 OPL 数据空间 可被外部访问的 URL。OAuth / SSO、搜索引擎支持等能力都依赖它。
- 持久化:
PersistentConfig
在启用 OAuth / SSO 之前,必须先正确设置 WEBUI_URL。
ENABLE_SIGNUP
- 类型:
bool - 默认值:
True - 说明:控制是否允许注册 新用户
- 持久化:
PersistentConfig
ENABLE_INITIAL_ADMIN_SIGNUP
- 类型:
bool - 默认值:
False - 说明:旧式 first-admin bootstrap 开关。现在多数部署更推荐直接使用
WEBUI_ADMIN_EMAIL/WEBUI_ADMIN_PASSWORD
ENABLE_SIGNUP_PASSWORD_CONFIRMATION
- 类型:
bool - 默认值:
False - 说明:如果设为
True,注册页会额外出现 “Confirm Password” 字段
WEBUI_ADMIN_EMAIL
- 类型:
str - 默认值:空
- 说明:在数据库还没有任何用户时,用它自动创建管理员账号
这个变量适合自动化 / 容器化部署,只会在满足以下条件时生效:
- 数据库中还没有任何用户
- 同时配置了
WEBUI_ADMIN_EMAIL和WEBUI_ADMIN_PASSWORD
WEBUI_ADMIN_PASSWORD
- 类型:
str - 默认值:空
- 说明:与
WEBUI_ADMIN_EMAIL配合使用,定义自动创建管理员时的密码
生产环境请使用强密码,并优先通过 secrets manager 注入,不要把它硬编码进配置文件。
WEBUI_ADMIN_NAME
- 类型:
str - 默认值:
Admin - 说明:自动创 建管理员时使用的显示名
ENABLE_LOGIN_FORM
- 类型:
bool - 默认值:
True - 说明:控制登录页中的邮箱、密码和登录表单元素是否显示
- 持久化:
PersistentConfig
ENABLE_PASSWORD_CHANGE_FORM
- 类型:
bool - 默认值:
True - 说明:控制 设置 > Account 中是否显示密码修改 UI
- 持久化:
PersistentConfig
ENABLE_PASSWORD_AUTH
- 类型:
bool - 默认值:
True - 说明:控制是否允许密码登录。当你已经稳定启用 SSO,并把实例暴露到公网时,通常应改为
False
如果你是纯 SSO 登录环境,建议设为 False,避免密码登录入口成为额外攻击面。
只有当 OAuth / SSO 已经真的启用时,才应该关闭密码认证。否则你会把自己彻底锁在系统外面。
DEFAULT_LOCALE
- 类型:
str - 默认值:
en - 说明:设置应用默认语言
- 持久化:
PersistentConfig