# 环境变量
LobeChat 在部署时提供了一些额外的配置项,你可以使用环境变量进行自定义设置。
## 通用变量
### `ACCESS_CODE`
- 类型:可选
- 描述:添加访问 LobeChat 服务的密码,你可以设置一个长密码以防被爆破
- 默认值:-
- 示例:`awCTe)re_r74` or `rtrt_ewee3@09!`
### `ENABLE_OAUTH_SSO`
- 类型:可选
- 描述:为 LobeChat 启用单点登录 (SSO)。设置为 `1` 以启用单点登录。有关详细信息,请参阅[身份验证服务](#身份验证服务)。
- 默认值: `-`
- 示例: `1`
### `NEXT_PUBLIC_BASE_PATH`
- 类型:可选
- 描述:为 LobeChat 添加 `basePath`
- 默认值: `-`
- 示例: `/test`
### `DEFAULT_AGENT_CONFIG`
- 类型:可选
- 描述:用于配置 LobeChat 默认助理的默认配置。它支持多种数据类型和结构,包括键值对、嵌套字段、数组值等。
- 默认值:`-`
- 示例:`'model=gpt-4-1106-preview;params.max_tokens=300;plugins=search-engine,lobe-image-designer`
`DEFAULT_AGENT_CONFIG` 用于配置 LobeChat 默认助理的默认配置。它支持多种数据类型和结构,包括键值对、嵌套字段、数组值等。下表详细说明了 `DEFAULT_AGENT_CONFIG` 环境变量的配置项、示例以及相应解释:
| 配置项类型 | 示例 | 解释 |
| --- | --- | --- |
| 基本键值对 | `model=gpt-4` | 设置模型为 `gpt-4`。 |
| 嵌套字段 | `tts.sttLocale=en-US` | 设置文本到语音服务的语言区域为 `en-US`。 |
| 数组 | `plugins=search-engine,lobe-image-designer` | 启用 `search-engine` 和 `lobe-image-designer` 插件。 |
| 中文逗号 | `plugins=search-engine,lobe-image-designer` | 同上,演示支持中文逗号分隔。 |
| 多个配置项 | `model=glm-4;provider=zhipu` | 设置模型为 `glm-4` 且模型服务商为 `zhipu`。 |
| 数字值 | `params.max_tokens=300` | 设置最大令牌数为 `300`。 |
| 布尔值 | `enableAutoCreateTopic=true` | 启用自动创建主题。 |
| 特殊字符 | `inputTemplate="Hello; I am a bot;"` | 设置输入模板为 `Hello; I am a bot;`。 |
| 错误处理 | `model=gpt-4;maxToken` | 忽略无效条目 `maxToken`,仅解析出 `model=gpt-4`。 |
| 值覆盖 | `model=gpt-4;model=gpt-4-1106-preview` | 如果键重复,使用最后一次出现的值,此处 `model` 的值为 `gpt-4-1106-preview`。 |
相关阅读:
- [\[RFC\] 022 - 环境变量配置默认助手参数](https://github.com/lobehub/lobe-chat/discussions/913)
## 身份验证服务
### 通用设置
#### `ENABLE_OAUTH_SSO`
- 类型:必选
- 描述:为 LobeChat 启用单点登录 (SSO)。设置为 `1` 以启用单点登录。
- 默认值: `-`
- 示例: `1`
#### `SSO_PROVIDERS`
- Type: 必需
- 描述:选择 LoboChat 的单点登录提供商。如果有多个单点登录提供商,请用逗号分隔,例如 `auth0,azure-ad,authentik`
- 默认值: `auth0`
- 示例: `auth0,azure-ad,authentik`
#### `NEXTAUTH_SECRET`
- 类型:必选
- 描述:用于加密 Auth.js 会话令牌的密钥。您可以使用以下命令生成秘钥: `openssl rand -base64 32`.
- 默认值: `-`
- 示例: `Tfhi2t2pelSMEA8eaV61KaqPNEndFFdMIxDaJnS1CUI=`
#### `NEXTAUTH_URL`
- 类型:可选
- 描述:该 URL 用于指定 Auth.js 在执行 OAuth 验证时的回调地址,在 Vercel 上部署时无需设置。
- 默认值:`-`
- 示例:`https://example.com/api/auth`
### Auth0
目前,我们仅支持 Auth0,Microsoft Entra ID,Authentik 作为身份验证服务提供商。
如果您需要使用其他身份验证服务提供商,可以提交 [功能请求](https://github.com/lobehub/lobe-chat/issues/new/choose) 或 Pull Request。
#### `AUTH0_CLIENT_ID`
- 类型:必选
- 描述: Auth0 应用程序的 Client ID,您可以访问[这里][auth0-client-page]并导航至应用程序设置来查看
- 默认值: `-`
- 示例: `evCnOJP1UX8FMnXR9Xkj5t0NyFn5p70P`
#### `AUTH0_CLIENT_SECRET`
- 类型:必选
- 描述: Auth0 应用程序的 Client Secret
- 默认值: `-`
- 示例: `wnX7UbZg85ZUzF6ioxPLnJVEQa1Elbs7aqBUSF16xleBS5AdkVfASS49-fQIC8Rm`
#### `AUTH0_ISSUER`
- 类型:必选
- 描述: Auth0 应用程序的签发人 / 域
- 默认值: `-`
- 示例: `https://example.auth0.com`
### Microsoft Entra ID
目前,我们仅支持 Auth0,Microsoft Entra ID,Authentik 作为身份验证服务提供商。
如果您需要使用其他身份验证服务提供商,可以提交 [功能请求](https://github.com/lobehub/lobe-chat/issues/new/choose) 或 Pull Request。
#### `AZURE_AD_CLIENT_ID`
- 类型:必需
- 描述:Microsoft Entra ID 应用程序的客户端 ID。
- 默认值:`-`
- 示例:`be8f6da1-58c3-4f16-ff1b-78f5148e10df`
#### `AZURE_AD_CLIENT_SECRET`
- 类型:必需
- 描述:Microsoft Entra ID 应用程序的客户端密钥。
- 默认值:`-`
- 示例:`~gI8Q.pTiN1vwB6Gl.E1yFT1ojcXABkdACfJXaNj`
#### `AZURE_AD_TENANT_ID`
- 类型:必需
- 描述:Microsoft Entra ID 应用程序的租户 ID。
- 默认值:`-`
- 示例:`c8ae2f36-edf6-4cda-96b9-d3e198a47cba`
### Authentik
目前,我们仅支持 Auth0,Microsoft Entra ID,Authentik 作为身份验证服务提供商。如果您需要使用其他身份验证服务提供商,可以提交
[功能请求](https://github.com/lobehub/lobe-chat/issues/new/choose) 或 Pull Request。
#### `AUTHENTIK_CLIENT_ID`
- 类型:必选
- 描述: Authentik 提供程序的 Client ID
- 默认值: `-`
- 示例: `YNtbIRlYF8Kj66mTLue59nsGLlb7HNyx1qjPH6VS`
#### `AUTHENTIK_CLIENT_SECRET`
- 类型:必选
- 描述: Authentik 提供程序的 Client Secret
- 默认值: `-`
- 示例: `h3lMI1vPUzqyqqeIDUbH5UNNOxyQLXk35h89yETeaAwHk7qVXBG3sJQWeqHBU5pyggwhP9u0eaZ1eq6DHUddVPLoS4gncqD37yuCr8jI8dY66WAt45MStDsDcQm0Ygze`
#### `AUTHENTIK_ISSUER`
- 类型:必选
- 描述: Authentik 提供程序的 OpenID Connect 颁发者
- 默认值: `-`
- 示例: `https://your-authentik-domain.com/application/o/slug/`
### Github
目前,我们仅支持 Auth0,Microsoft Entra ID,Authentik,Github 作为身份验证服务提供商。如果您需要使用其他身份验证服务提供商,可以提交
[功能请求](https://github.com/lobehub/lobe-chat/issues/new/choose) 或 Pull Request。
#### `GITHUB_CLIENT_ID`
- Type: Required
- Description: Github应用的客户端ID。您可以在[这里][github-client-page]访问,并导航到应用程序设置以查看。
- Default: `-`
- Example: `abd94200333283550508`
#### `GITHUB_CLIENT_SECRET`
- Type: Required
- Description: Github应用的客户端密钥。
- Default: `-`
- Example: `dd262976ac0931d947e104891586a053f3d3750b`
## 插件服务
### `PLUGINS_INDEX_URL`
- 类型:可选
- 描述:LobeChat 插件市场的索引地址,如果你自行部署了插件市场的服务,可以使用该变量来覆盖默认的插件市场地址
- 默认值:`https://chat-plugins.lobehub.com`
### `PLUGIN_SETTINGS`
- 类型:可选
- 描述:用于配置插件的设置,使用 `插件名:设置字段=设置值` 的格式来配置插件的设置,多个设置字段用英文分号 `;` 隔开,多个插件设置使用英文逗号`,`隔开。
- 默认值:`-`
- 示例:`search-engine:SERPAPI_API_KEY=xxxxx,plugin-2:key1=value1;key2=value2`
上述示例表示设置 `search-engine` 插件的 `SERPAPI_API_KEY` 为 `xxxxx`,设置 `plugin-2` 的 `key1` 为 `value1`,`key2` 为 `value2`。生成的插件设置配置如下:
```json
{
"plugin-2": {
"key1": "value1",
"key2": "value2"
},
"search-engine": {
"SERPAPI_API_KEY": "xxxxx"
}
}
```
## 助手市场
### `AGENTS_INDEX_URL`
- 类型:可选
- 描述:LobeChat 助手市场的索引地址,如果你自行部署了助手市场的服务,可以使用该变量来覆盖默认的市场地址
- 默认值:`https://chat-agents.lobehub.com`
[auth0-client-page]: https://manage.auth0.com/dashboard
[github-client-page]: https://github.com/settings/apps