@lobehub/lobehub 2.0.2 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/.github/ISSUE_TEMPLATE/1_bug_report.yml +0 -11
  2. package/CHANGELOG.md +51 -0
  3. package/README.md +9 -13
  4. package/README.zh-CN.md +6 -8
  5. package/apps/desktop/Development.md +1 -1
  6. package/changelog/v2.json +18 -0
  7. package/docker-compose/local/docker-compose.yml +2 -2
  8. package/docker-compose/local/grafana/docker-compose.yml +3 -3
  9. package/docker-compose/local/logto/docker-compose.yml +3 -4
  10. package/docker-compose/local/zitadel/.env.example +3 -4
  11. package/docker-compose/local/zitadel/.env.zh-CN.example +1 -2
  12. package/docker-compose/local/zitadel/docker-compose.yml +3 -3
  13. package/docker-compose/production/grafana/docker-compose.yml +3 -3
  14. package/docker-compose/production/logto/.env.example +7 -9
  15. package/docker-compose/production/logto/.env.zh-CN.example +7 -9
  16. package/docker-compose/production/logto/docker-compose.yml +3 -3
  17. package/docker-compose/production/zitadel/.env.example +4 -6
  18. package/docker-compose/production/zitadel/.env.zh-CN.example +3 -5
  19. package/docker-compose/production/zitadel/docker-compose.yml +3 -3
  20. package/docs/development/basic/folder-structure.mdx +1 -2
  21. package/docs/development/basic/folder-structure.zh-CN.mdx +1 -2
  22. package/docs/self-hosting/advanced/auth/legacy.mdx +1 -1
  23. package/docs/self-hosting/advanced/auth/legacy.zh-CN.mdx +1 -1
  24. package/docs/self-hosting/advanced/auth/nextauth-to-betterauth.mdx +4 -0
  25. package/docs/self-hosting/advanced/auth/nextauth-to-betterauth.zh-CN.mdx +4 -0
  26. package/docs/self-hosting/advanced/auth/providers/casdoor.mdx +8 -0
  27. package/docs/self-hosting/advanced/auth/providers/casdoor.zh-CN.mdx +8 -0
  28. package/docs/self-hosting/advanced/auth.mdx +28 -1
  29. package/docs/self-hosting/advanced/auth.zh-CN.mdx +29 -2
  30. package/docs/self-hosting/advanced/upstream-sync.mdx +5 -5
  31. package/docs/self-hosting/advanced/upstream-sync.zh-CN.mdx +5 -5
  32. package/docs/self-hosting/environment-variables/auth.mdx +2 -334
  33. package/docs/self-hosting/environment-variables/auth.zh-CN.mdx +2 -307
  34. package/docs/self-hosting/environment-variables/basic.mdx +1 -1
  35. package/docs/self-hosting/environment-variables/basic.zh-CN.mdx +1 -1
  36. package/docs/self-hosting/environment-variables.mdx +1 -1
  37. package/docs/self-hosting/platform/docker-compose.mdx +837 -90
  38. package/docs/self-hosting/platform/docker-compose.zh-CN.mdx +809 -84
  39. package/docs/self-hosting/platform/docker.mdx +110 -111
  40. package/docs/self-hosting/platform/docker.zh-CN.mdx +103 -151
  41. package/docs/self-hosting/{server-database → platform}/dokploy.mdx +2 -2
  42. package/docs/self-hosting/{server-database → platform}/dokploy.zh-CN.mdx +2 -2
  43. package/docs/self-hosting/platform/repocloud.mdx +11 -10
  44. package/docs/self-hosting/platform/repocloud.zh-CN.mdx +13 -11
  45. package/docs/self-hosting/platform/sealos.mdx +79 -13
  46. package/docs/self-hosting/platform/sealos.zh-CN.mdx +92 -11
  47. package/docs/self-hosting/platform/vercel.mdx +323 -19
  48. package/docs/self-hosting/platform/vercel.zh-CN.mdx +318 -24
  49. package/docs/self-hosting/platform/zeabur.mdx +41 -37
  50. package/docs/self-hosting/platform/zeabur.zh-CN.mdx +34 -39
  51. package/docs/self-hosting/server-database.mdx +6 -6
  52. package/docs/self-hosting/server-database.zh-CN.mdx +5 -5
  53. package/locales/en-US/setting.json +2 -0
  54. package/locales/zh-CN/setting.json +2 -0
  55. package/package.json +2 -2
  56. package/packages/agent-runtime/src/agents/GeneralChatAgent.ts +18 -14
  57. package/packages/agent-runtime/src/types/generalAgent.ts +5 -4
  58. package/packages/types/src/user/preference.ts +2 -2
  59. package/scripts/_shared/checkDeprecatedAuth.js +16 -0
  60. package/src/features/ChatInput/ActionBar/Params/Controls.tsx +17 -1
  61. package/src/features/ModelSelect/index.tsx +1 -1
  62. package/src/libs/next/proxy/createRouteMatcher.test.ts +0 -8
  63. package/src/libs/trpc/middleware/userAuth.test.ts +0 -6
  64. package/src/locales/default/setting.ts +3 -0
  65. package/src/proxy.ts +0 -1
  66. package/src/server/routers/async/__tests__/caller.test.ts +2 -2
  67. package/src/server/routers/lambda/config/index.test.ts +0 -6
  68. package/src/server/services/agentRuntime/AgentRuntimeService.ts +4 -2
  69. package/src/store/chat/slices/aiChat/actions/streamingExecutor.ts +3 -0
  70. package/src/store/chat/slices/message/selectors/displayMessage.test.ts +21 -0
  71. package/src/store/chat/slices/message/selectors/displayMessage.ts +7 -2
  72. package/docs/self-hosting/platform/alibaba-cloud.mdx +0 -28
  73. package/docs/self-hosting/platform/alibaba-cloud.zh-CN.mdx +0 -25
  74. package/docs/self-hosting/platform/btpanel.mdx +0 -48
  75. package/docs/self-hosting/platform/btpanel.zh-CN.mdx +0 -51
  76. package/docs/self-hosting/platform/netlify.mdx +0 -91
  77. package/docs/self-hosting/platform/netlify.zh-CN.mdx +0 -86
  78. package/docs/self-hosting/platform/railway.mdx +0 -29
  79. package/docs/self-hosting/platform/railway.zh-CN.mdx +0 -29
  80. package/docs/self-hosting/platform/tencentcloud-lighthouse.mdx +0 -29
  81. package/docs/self-hosting/platform/tencentcloud-lighthouse.zh-CN.mdx +0 -26
  82. package/docs/self-hosting/server-database/docker-compose.mdx +0 -879
  83. package/docs/self-hosting/server-database/docker-compose.zh-CN.mdx +0 -854
  84. package/docs/self-hosting/server-database/docker.mdx +0 -154
  85. package/docs/self-hosting/server-database/docker.zh-CN.mdx +0 -153
  86. package/docs/self-hosting/server-database/netlify.mdx +0 -13
  87. package/docs/self-hosting/server-database/netlify.zh-CN.mdx +0 -16
  88. package/docs/self-hosting/server-database/railway.mdx +0 -13
  89. package/docs/self-hosting/server-database/railway.zh-CN.mdx +0 -15
  90. package/docs/self-hosting/server-database/repocloud.mdx +0 -33
  91. package/docs/self-hosting/server-database/repocloud.zh-CN.mdx +0 -32
  92. package/docs/self-hosting/server-database/sealos.mdx +0 -97
  93. package/docs/self-hosting/server-database/sealos.zh-CN.mdx +0 -112
  94. package/docs/self-hosting/server-database/vercel.mdx +0 -344
  95. package/docs/self-hosting/server-database/vercel.zh-CN.mdx +0 -337
  96. package/docs/self-hosting/server-database/zeabur.mdx +0 -76
  97. package/docs/self-hosting/server-database/zeabur.zh-CN.mdx +0 -67
@@ -152,7 +152,19 @@ LobeHub 与 Clerk 做了深度集成,能够为用户提供一个更加安全
152
152
 
153
153
  ### 通用配置
154
154
 
155
- 在使用 NextAuth 之前,请先在 LobeHub 的环境变量中设置以下变量:
155
+ 在使用 Better Auth 之前,请先在 LobeHub 的环境变量中设置以下变量:
156
+
157
+ ## 邮箱验证
158
+
159
+ 启用邮箱验证以确保用户拥有其注册的邮箱地址(默认关闭):
160
+
161
+ | 环境变量 | 类型 | 描述 |
162
+ | ------------------------- | -- | -------------------- |
163
+ | `AUTH_EMAIL_VERIFICATION` | 可选 | 设置为 `1` 以要求注册后进行邮箱验证 |
164
+
165
+ <Callout type={'info'}>
166
+ 邮箱验证需要上方已配置好的邮件服务(SMTP 或 Resend)。启用后,用户必须验证其邮箱地址才能登录。
167
+ </Callout>
156
168
 
157
169
  ## 魔法链接(免密)登录
158
170
 
@@ -194,6 +206,17 @@ Better Auth 支持内置提供商(Google、GitHub、Microsoft、Apple、AWS Co
194
206
  当前身份验证方案强依赖 email。请在 Casdoor 中为用户配置有效的 email 地址。
195
207
  强烈建议使用真实有效的邮箱,否则密码重置、魔法链接登录等功能将无法使用。
196
208
 
209
+ ### 邮箱可以随便乱填吗?
210
+
211
+ **强烈不建议**。请务必填写真实有效的邮箱地址。使用虚假邮箱会导致以下问题:
212
+
213
+ - 密码重置功能无法使用
214
+ - 魔法链接登录无法使用
215
+ - 邮箱验证无法通过
216
+ - 忘记密码时可能无法找回账户
217
+
218
+ 这适用于所有身份验证方式,包括 Casdoor 等 SSO 提供商。请确保用户配置了有效的邮箱地址。
219
+
197
220
  ### 如何限制只允许特定邮箱或域名注册?
198
221
 
199
222
  设置 `AUTH_ALLOWED_EMAILS` 环境变量,支持完整邮箱地址或域名,以逗号分隔。例如:
@@ -201,6 +224,10 @@ Better Auth 支持内置提供商(Google、GitHub、Microsoft、Apple、AWS Co
201
224
  - 只允许 `example.com` 域名:`AUTH_ALLOWED_EMAILS=example.com`
202
225
  - 允许多个域名和特定邮箱:`AUTH_ALLOWED_EMAILS=example.com,company.org,admin@other.com`
203
226
 
227
+ <Callout type={'info'}>
228
+ 注意:`AUTH_ALLOWED_EMAILS` 仅限制哪些邮箱地址可以注册,但不会验证邮箱所有权。如果需要确保用户确实拥有其注册的邮箱地址,请设置 `AUTH_EMAIL_VERIFICATION=1` 以启用邮箱验证。这需要配置邮件服务(SMTP)。
229
+ </Callout>
230
+
204
231
  ### Webhook 支持
205
232
 
206
233
  允许 LobeHub 在身份提供商中用户信息更新时接收通知。支持的提供商包括 Casdoor 和 Logto。请参考具体提供商文档进行配置。
@@ -211,4 +238,4 @@ Better Auth 支持内置提供商(Google、GitHub、Microsoft、Apple、AWS Co
211
238
 
212
239
  ## 其他 SSO 提供商
213
240
 
214
- 请参考 [NextAuth.js](https://next-auth.js.org/providers) 文档,欢迎提交 Pull Request。
241
+ 请参考 [Auth.js](https://authjs.dev/getting-started/authentication/oauth) 文档,欢迎提交 Pull Request。
@@ -106,7 +106,7 @@ If you wish to automate the above steps, you can follow the method below and use
106
106
  export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890
107
107
 
108
108
  # Pull the latest image and store the output in a variable
109
- output=$(docker pull lobehub/lobe-chat:latest 2>&1)
109
+ output=$(docker pull lobehub/lobehub:latest 2>&1)
110
110
 
111
111
  # Check if the pull command was executed successfully
112
112
  if [ $? -ne 0 ]; then
@@ -114,7 +114,7 @@ If you wish to automate the above steps, you can follow the method below and use
114
114
  fi
115
115
 
116
116
  # Check if the output contains a specific string
117
- echo "$output" | grep -q "Image is up to date for lobehub/lobe-chat:latest"
117
+ echo "$output" | grep -q "Image is up to date for lobehub/lobehub:latest"
118
118
 
119
119
  # If the image is already up to date, do nothing
120
120
  if [ $? -eq 0 ]; then
@@ -127,14 +127,14 @@ If you wish to automate the above steps, you can follow the method below and use
127
127
  echo "Removed: $(docker rm -f lobe-chat)"
128
128
 
129
129
  # Run the new container(Please change the path to the env file)
130
- echo "Started: $(docker run -d --network=host --env-file /path/to/lobe.env --name=lobe-chat --restart=always lobehub/lobe-chat)"
130
+ echo "Started: $(docker run -d --network=host --env-file /path/to/lobe.env --name=lobe-chat --restart=always lobehub/lobehub)"
131
131
 
132
132
  # Print the update time and version
133
133
  echo "Update time: $(date)"
134
- echo "Version: $(docker inspect lobehub/lobe-chat:latest | grep 'org.opencontainers.image.version' | awk -F'"' '{print $4}')"
134
+ echo "Version: $(docker inspect lobehub/lobehub:latest | grep 'org.opencontainers.image.version' | awk -F'"' '{print $4}')"
135
135
 
136
136
  # Clean up unused images
137
- docker images | grep 'lobehub/lobe-chat' | grep -v 'lobehub/lobe-chat-database' | grep -v 'latest' | awk '{print $3}' | xargs -r docker rmi > /dev/null 2>&1
137
+ docker images | grep 'lobehub/lobehub' | grep -v 'latest' | awk '{print $3}' | xargs -r docker rmi > /dev/null 2>&1
138
138
  echo "Removed old images."
139
139
  ```
140
140
 
@@ -101,7 +101,7 @@ Docker 部署版本的升级非常简单,只需要重新部署 LobeHub 的最
101
101
  # export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890
102
102
 
103
103
  # 拉取最新的镜像并将输出存储在变量中
104
- output=$(docker pull lobehub/lobe-chat:latest 2>&1)
104
+ output=$(docker pull lobehub/lobehub:latest 2>&1)
105
105
 
106
106
  # 检查拉取命令是否成功执行
107
107
  if [ $? -ne 0 ]; then
@@ -109,7 +109,7 @@ Docker 部署版本的升级非常简单,只需要重新部署 LobeHub 的最
109
109
  fi
110
110
 
111
111
  # 检查输出中是否包含特定的字符串
112
- echo "$output" | grep -q "Image is up to date for lobehub/lobe-chat:latest"
112
+ echo "$output" | grep -q "Image is up to date for lobehub/lobehub:latest"
113
113
 
114
114
  # 如果镜像已经是最新的,则不执行任何操作
115
115
  if [ $? -eq 0 ]; then
@@ -122,14 +122,14 @@ Docker 部署版本的升级非常简单,只需要重新部署 LobeHub 的最
122
122
  echo "Removed: $(docker rm -f lobe-chat)"
123
123
 
124
124
  # 运行新的容器(请将env配置文件地址改为你的实际地址)
125
- echo "Started: $(docker run -d --network=host --env-file path/to/lobe.env --name=lobe-chat --restart=always lobehub/lobe-chat)"
125
+ echo "Started: $(docker run -d --network=host --env-file path/to/lobe.env --name=lobe-chat --restart=always lobehub/lobehub)"
126
126
 
127
127
  # 打印更新的时间和版本
128
128
  echo "Update time: $(date)"
129
- echo "Version: $(docker inspect lobehub/lobe-chat:latest | grep 'org.opencontainers.image.version' | awk -F'"' '{print $4}')"
129
+ echo "Version: $(docker inspect lobehub/lobehub:latest | grep 'org.opencontainers.image.version' | awk -F'"' '{print $4}')"
130
130
 
131
131
  # 清理不再使用的镜像
132
- docker images | grep 'lobehub/lobe-chat' | grep -v 'lobehub/lobe-chat-database' | grep -v 'latest' | awk '{print $3}' | xargs -r docker rmi > /dev/null 2>&1
132
+ docker images | grep 'lobehub/lobehub' | grep -v 'latest' | awk '{print $3}' | xargs -r docker rmi > /dev/null 2>&1
133
133
  echo "Removed old images."
134
134
  ```
135
135
 
@@ -2,14 +2,12 @@
2
2
  title: LobeHub Authentication Service Environment Variables
3
3
  description: >-
4
4
  Explore the essential environment variables for configuring authentication
5
- services in LobeHub, including Better Auth, OAuth SSO, NextAuth settings, and
5
+ services in LobeHub, including Better Auth, OAuth SSO, and
6
6
  provider-specific details.
7
7
  tags:
8
8
  - Authentication Service
9
9
  - Better Auth
10
10
  - OAuth SSO
11
- - Clerk
12
- - NextAuth
13
11
  ---
14
12
 
15
13
  # Authentication Service
@@ -23,7 +21,7 @@ LobeHub provides a complete authentication service capability when deployed. The
23
21
  #### `AUTH_SECRET`
24
22
 
25
23
  - Type: Required
26
- - Description: Key used to encrypt session tokens. Shared between Better Auth and Next Auth. You can generate the key using the command: `openssl rand -base64 32`.
24
+ - Description: Key used to encrypt session tokens. You can generate the key using the command: `openssl rand -base64 32`.
27
25
  - Default: `-`
28
26
  - Example: `Tfhi2t2pelSMEA8eaV61KaqPNEndFFdMIxDaJnS1CUI=`
29
27
 
@@ -211,333 +209,3 @@ These settings are required for email verification and password reset features.
211
209
  - Description: App Secret of the WeChat application.
212
210
  - Default: `-`
213
211
  - Example: `xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`
214
-
215
- <Callout type={'info'}>
216
- For other OIDC-based providers (Auth0, Authelia, Authentik, Casdoor, Cloudflare Zero Trust, Keycloak, Logto, Okta, ZITADEL, Generic OIDC), the environment variables follow the same pattern as Next Auth. See the [Next Auth section](#next-auth) below for details.
217
- </Callout>
218
-
219
- ## Next Auth
220
-
221
- ### General Settings
222
-
223
- #### `NEXT_PUBLIC_ENABLE_NEXT_AUTH`
224
-
225
- - Changes after v1.52.0.
226
-
227
- - For users who deploy with Vercel using Next Auth, it is necessary to add the environment variable NEXT\_PUBLIC\_ENABLE\_NEXT\_AUTH=1 to ensure that Next Auth is enabled.
228
-
229
- - For users who use Clerk in their self-built image, it is necessary to configure the environment variable NEXT\_PUBLIC\_ENABLE\_NEXT\_AUTH=0 to disable Next Auth.\n
230
-
231
- - Other standard deployment scenarios (using Clerk on Vercel and next-auth in Docker) are not affected
232
-
233
- #### `NEXT_AUTH_SECRET`
234
-
235
- - Type: Required
236
- - Description: Key used to encrypt the session tokens in Auth.js. You can generate the key using the following command: `openssl rand -base64 32`.
237
- - Default: `-`
238
- - Example: `Tfhi2t2pelSMEA8eaV61KaqPNEndFFdMIxDaJnS1CUI=`
239
-
240
- #### `NEXT_AUTH_SSO_PROVIDERS`
241
-
242
- - Type: Optional
243
- - Description: Select the single sign-on provider for LoboChat. For multiple SSO Providers separating them with commas, for example, `auth0,microsoft-entra-id,authentik`.
244
- - Default: `auth0`
245
- - Example: `auth0,microsoft-entra-id,authentik`
246
-
247
- #### `NEXTAUTH_URL`
248
-
249
- - Type: Optional
250
- - Description: This URL is used to specify the callback address for Auth.js during OAuth authentication. It does not need to be set when deploying on Vercel.
251
- - Default: `-`
252
- - Example: `https://example.com/api/auth`
253
-
254
- ### Auth0
255
-
256
- #### `AUTH_AUTH0_ID`
257
-
258
- - Type: Required
259
- - Description: Client ID of the Auth0 application. You can access it [here](https://manage.auth0.com/dashboard) and navigate to the application settings to view.
260
- - Default: `-`
261
- - Example: `evCnOJP1UX8FMnXR9Xkj5t0NyFn5p70P`
262
-
263
- #### `AUTH_AUTH0_SECRET`
264
-
265
- - Type: Required
266
- - Description: Client Secret of the Auth0 application.
267
- - Default: `-`
268
- - Example: `wnX7UbZg85ZUzF6ioxPLnJVEQa1Elbs7aqBUSF16xleBS5AdkVfASS49-fQIC8Rm`
269
-
270
- #### `AUTH_AUTH0_ISSUER`
271
-
272
- - Type: Required
273
- - Description: Issuer/domain of the Auth0 application.
274
- - Default: `-`
275
- - Example: `https://example.auth0.com`
276
-
277
- ### Authelia
278
-
279
- #### `AUTH_AUTHELIA_ID`
280
-
281
- - Type: Required
282
- - Description: Client ID of the Authelia provider application.
283
- - Default: `-`
284
- - Example: `lobe-chat`
285
-
286
- #### `AUTH_AUTHELIA_SECRET`
287
-
288
- - Type: Required
289
- - Description: The plaintext of the Client Secret for the Authelia provider
290
- - Default: `-`
291
- - Example: `insecure_secret`
292
-
293
- #### `AUTH_AUTHELIA_ISSUER`
294
-
295
- - Type: Required
296
- - Description: Issuer of the Authelia provider application.
297
- - Default: `-`
298
- - Example: `https://sso.example.com`
299
-
300
- ### Authentik
301
-
302
- #### `AUTH_AUTHENTIK_ID`
303
-
304
- - Type: Required
305
- - Description: Client ID of the Authentik provider application.
306
- - Default: `-`
307
- - Example: `evCnOJP1UX8FMnXR9Xkj5t0NyFn5p70P`
308
-
309
- #### `AUTH_AUTHENTIK_SECRET`
310
-
311
- - Type: Required
312
- - Description: Client Secret of the Authentik provider application.
313
- - Default: `-`
314
- - Example: `wnX7UbZg85ZUzF6ioxPLnJVEQa1Elbs7aqBUSF16xleBS5AdkVfASS49-fQIC8Rm`
315
-
316
- #### `AUTH_AUTHENTIK_ISSUER`
317
-
318
- - Type: Required
319
- - Description: Issuer/domain of the Authentik provider application.
320
- - Default: `-`
321
- - Example: `https://your-authentik-domain.com/application/o/slug/`
322
-
323
- ### Casdoor
324
-
325
- #### `AUTH_CASDOOR_ID`
326
-
327
- - Type: Required
328
- - Description: Client ID provided by Casdoor
329
- - Default: `-`
330
- - Example: `570bfa85a21800a25198`
331
-
332
- #### `AUTH_CASDOOR_SECRET`
333
-
334
- - Type: Required
335
- - Description: Plaintext Client Secret provided by Casdoor
336
- - Default: `-`
337
- - Example: `233a623a15eac2db2e43bb8a323eda729552c405`
338
-
339
- #### `AUTH_CASDOOR_ISSUER`
340
-
341
- - Type: Required
342
- - Description: OpenID Connect issuer provided by Casdoor
343
- - Default: `-`
344
- - Example: `https://lobe-auth-api.example.com/`
345
-
346
- ### Cloudflare Zero Trust
347
-
348
- #### `AUTH_CLOUDFLARE_ZERO_TRUST_ID`
349
-
350
- - Type: Required
351
- - Description: Client ID of the Cloudflare Zero Trust provider application.
352
- - Default: `-`
353
- - Example: `711963a58df8c943cfd6c487cac99ce9f6ee0c88c0b7bf94584b8ff052fcb09c`
354
-
355
- #### `AUTH_CLOUDFLARE_ZERO_TRUST_SECRET`
356
-
357
- - Type: Required
358
- - Description: The plaintext of the Client Secret for the Cloudflare Zero Trust provider
359
- - Default: `-`
360
- - Example: `8f26d4ef834a828045b401e032ae128dbb00471bca53f0d25332323f525dfa30`
361
-
362
- #### `AUTH_CLOUDFLARE_ZERO_TRUST_ISSUER`
363
-
364
- - Type: Required
365
- - Description: Issuer of the Cloudflare Zero Trust provider application.
366
- - Default: `-`
367
- - Example: `https://example.cloudflareaccess.com/cdn-cgi/access/sso/oidc/711963a58df8c943cfd6c487cac99ce9f6ee0c88c0b7bf94584b8ff052fcb09c`
368
-
369
- ### Github
370
-
371
- #### `AUTH_GITHUB_ID`
372
-
373
- - Type: Required
374
- - Description: Client ID of the Github application. You can access it [here](https://github.com/settings/apps) and navigate to the application settings to view.
375
- - Default: `-`
376
- - Example: `abd94200333283550508`
377
-
378
- #### `AUTH_GITHUB_SECRET`
379
-
380
- - Type: Required
381
- - Description: Client Secret of the Github application.
382
- - Default: `-`
383
- - Example: `dd262976ac0931d947e104891586a053f3d3750b`
384
-
385
- ### Logto
386
-
387
- #### `AUTH_LOGTO_ID`
388
-
389
- - Type: Required
390
- - Description: The Client ID of the Logto application. You can find it in the Logto console for private deployment or [Logto Cloud](http://cloud.logto.io/) depending on the deployment mode.
391
- - Default value: `-`
392
- - Example: `123456789012345678@your-project`
393
-
394
- #### `AUTH_LOGTO_SECRET`
395
-
396
- - Type: Required
397
- - Description: The Client Secret of the Logto application.
398
- - Default value: `-`
399
- - Example: `9QF1n5ATzU7Z3mHp2Iw4gKX8kY6oR7uW1DnKcV3LqX2jF6iG3fBmJ1kV7nS5zE6A`
400
-
401
- #### `AUTH_LOGTO_ISSUER`
402
-
403
- - Type: Required
404
- - Description: The OpenID Connect issuer of the Logto application. You can find it in the Logto console for private deployment or [Logto Cloud](http://cloud.logto.io/) depending on the deployment mode.
405
- - Default value: `-`
406
- - Example: `https://lobe-auth-api.example.com/oidc`
407
-
408
- ### Microsoft Entra ID
409
-
410
- #### `AUTH_MICROSOFT_ENTRA_ID_BASE_URL`
411
-
412
- - Type: Required
413
- - Description: - Description: Base URL for Azure login. Use when authenticating against other Microsoft sovereignty clouds like Azure US Government.
414
- - Default: `https://login.microsoftonline.com`
415
- - Example: `https://login.microsoftonline.us`
416
-
417
- #### `AUTH_AZURE_AD_ID`
418
-
419
- - Type: Required
420
- - Description: Client ID of the Microsoft Entra ID application.
421
- - Default: `-`
422
- - Example: `be8f6da1-58c3-4f16-ff1b-78f5148e10df`
423
-
424
- #### `AUTH_AZURE_AD_SECRET`
425
-
426
- - Type: Required
427
- - Description: Client Secret of the Microsoft Entra ID application.
428
- - Default: `-`
429
- - Example: `~gI8Q.pTiN1vwB6Gl.E1yFT1ojcXABkdACfJXaNj`
430
-
431
- #### `AUTH_AZURE_AD_TENANT_ID`
432
-
433
- - Type: Required
434
- - Description: Tenant ID of the Microsoft Entra ID application.
435
- - Default: `-`
436
- - Example: `c8ae2f36-edf6-4cda-96b9-d3e198a47cba`
437
-
438
- ### ZITADEL
439
-
440
- #### `AUTH_ZITADEL_ID`
441
-
442
- - Type: Required
443
- - Description: Client ID of the ZITADEL application. This can be found under your application in the ZITADEL console.
444
- - Default: `-`
445
- - Example: `123456789012345678@your-project`
446
-
447
- #### `AUTH_ZITADEL_SECRET`
448
-
449
- - Type: Required
450
- - Description: Client Secret of the ZITADEL application.
451
- - Default: `-`
452
- - Example: `9QF1n5ATzU7Z3mHp2Iw4gKX8kY6oR7uW1DnKcV3LqX2jF6iG3fBmJ1kV7nS5zE6A`
453
-
454
- #### `AUTH_ZITADEL_ISSUER`
455
-
456
- - Type: Required
457
- - Description: Issuer of the ZITADEL application. This is usually the URL of the ZITADEL instance, and can be found in `URLs` tab of your application in the console.
458
- - Default: `-`
459
- - Example: `https://your-instance-abc123.zitadel.cloud`
460
-
461
- ### Okta
462
-
463
- #### `AUTH_OKTA_ID`
464
-
465
- - Type: Required
466
- - Description: Client ID of the Okta application. This can be found under your application settings in the Okta console.
467
- - Default: `-`
468
- - Example: `ac12c950f3ce48c8a45a`
469
-
470
- #### `AUTH_OKTA_SECRET`
471
-
472
- - Type: Required
473
- - Description: Client Secret of the Okta application. This can be found under your application settings in the Okta console.
474
- - Default: `-`
475
- - Example: `ex1HqvSOOkC5INqo42grOSqNvHoD4p84em1yy5QU7v88IZlaWGywFjYkrkpkSopt`
476
-
477
- #### `AUTH_OKTA_ISSUER`
478
-
479
- - Type: Required
480
- - Description: Issuer of the Okta application. This is the URL of the Okta instance -- If branding is set up, it can be your custom domain.
481
- - Default: `-`
482
- - Example: `https://your-instance.okta.com`
483
-
484
- ### Feishu
485
-
486
- #### `AUTH_FEISHU_APP_ID`
487
-
488
- - Type: Required
489
- - Description: App ID of the Feishu application.
490
- - Default: `-`
491
- - Example: `cli_9f7b1e1e1e1e1e1e`
492
-
493
- #### `AUTH_FEISHU_APP_SECRET`
494
-
495
- - Type: Required
496
- - Description: App Secret of the Feishu application.
497
- - Default: `-`
498
- - Example: `AlHxxX1e1e1e1e1e1e1e1e1e1e1e1e1e`
499
-
500
- ### Generic OIDC
501
-
502
- #### `AUTH_GENERIC_OIDC_ID`
503
-
504
- - Type: Required
505
- - Description: Client ID of the Generic OIDC provider application.
506
- - Default: `-`
507
- - Example: `_client_id_for_lobe_chat_`
508
-
509
- #### `AUTH_GENERIC_OIDC_SECRET`
510
-
511
- - Type: Required
512
- - Description: The plaintext of the Client Secret for the Generic OIDC provider
513
- - Default: `-`
514
- - Example: `_client_secret_for_lobe_chat_`
515
-
516
- #### `AUTH_GENERIC_OIDC_ISSUER`
517
-
518
- - Type: Required
519
- - Description: Issuer of the Generic OIDC provider application.
520
- - Default: `-`
521
- - Example: `https://sso.example.com`
522
-
523
- <Callout>
524
- Currently, we only support providers above. If you need to use other identity verification service
525
- providers, you can submit a [feature
526
- request](https://github.com/lobehub/lobe-chat/issues/new/choose) or Pull Request.
527
- </Callout>
528
-
529
- ## Clerk
530
-
531
- ### `NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY`
532
-
533
- - Type: Required
534
- - Description: Publishable key of the Clerk application. You can access it [here](https://dashboard.clerk.com) and navigate to the API Keys to view.
535
- - Default: `-`
536
- - Example: `pk_test_Zmxvd4luZy1wdW1hLTIyLmNsXXJrTmFjY291bnRzLmRldiQ` in dev / `pk_live_Y2xlcdsubG9iZWh1Yi1cbmMuY24k` in production
537
-
538
- ### `CLERK_SECRET_KEY`
539
-
540
- - Type: Required
541
- - Description: Secret key of the Clerk application.
542
- - Default: `-`
543
- - Example: `sk_test_513Ma0P7IAWM1XMv4waxZjRYRajWTaCfJLjpEO3SD2` in dev / `sk_live_eMMlHjwJvZFUfczFljSKqZdwQtLvmczmsJSNmdrpeZ` in production