@lobehub/chat 1.44.3 → 1.45.0

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 (319) hide show
  1. package/.remarkrc.mdx.js +6 -0
  2. package/CHANGELOG.md +25 -0
  3. package/changelog/v1.json +9 -0
  4. package/docs/changelog/2023-09-09-plugin-system.mdx +5 -0
  5. package/docs/changelog/2023-09-09-plugin-system.zh-CN.mdx +5 -0
  6. package/docs/changelog/2023-11-14-gpt4-vision.mdx +6 -0
  7. package/docs/changelog/2023-11-14-gpt4-vision.zh-CN.mdx +6 -0
  8. package/docs/changelog/2023-11-19-tts-stt.mdx +6 -0
  9. package/docs/changelog/2023-11-19-tts-stt.zh-CN.mdx +7 -0
  10. package/docs/changelog/2023-12-22-dalle-3.mdx +6 -0
  11. package/docs/changelog/2023-12-22-dalle-3.zh-CN.mdx +4 -0
  12. package/docs/changelog/2024-02-08-sso-oauth.mdx +6 -0
  13. package/docs/changelog/2024-02-08-sso-oauth.zh-CN.mdx +6 -0
  14. package/docs/changelog/2024-02-14-ollama.mdx +6 -0
  15. package/docs/changelog/2024-02-14-ollama.zh-CN.mdx +5 -0
  16. package/docs/changelog/2024-06-19-lobe-chat-v1.mdx +6 -0
  17. package/docs/changelog/2024-06-19-lobe-chat-v1.zh-CN.mdx +5 -0
  18. package/docs/changelog/2024-07-19-gpt-4o-mini.mdx +5 -0
  19. package/docs/changelog/2024-07-19-gpt-4o-mini.zh-CN.mdx +4 -0
  20. package/docs/changelog/2024-08-02-lobe-chat-database-docker.mdx +6 -0
  21. package/docs/changelog/2024-08-02-lobe-chat-database-docker.zh-CN.mdx +5 -0
  22. package/docs/changelog/2024-08-21-file-upload-and-knowledge-base.mdx +6 -0
  23. package/docs/changelog/2024-08-21-file-upload-and-knowledge-base.zh-CN.mdx +5 -0
  24. package/docs/changelog/2024-09-13-openai-o1-models.mdx +6 -0
  25. package/docs/changelog/2024-09-13-openai-o1-models.zh-CN.mdx +6 -0
  26. package/docs/changelog/2024-09-20-artifacts.mdx +6 -0
  27. package/docs/changelog/2024-09-20-artifacts.zh-CN.mdx +6 -0
  28. package/docs/changelog/2024-10-27-pin-assistant.mdx +5 -0
  29. package/docs/changelog/2024-10-27-pin-assistant.zh-CN.mdx +4 -0
  30. package/docs/changelog/2024-11-06-share-text-json.mdx +4 -0
  31. package/docs/changelog/2024-11-06-share-text-json.zh-CN.mdx +4 -0
  32. package/docs/changelog/2024-11-25-november-providers.mdx +7 -0
  33. package/docs/changelog/2024-11-25-november-providers.zh-CN.mdx +7 -0
  34. package/docs/changelog/2024-11-27-forkable-chat.mdx +4 -0
  35. package/docs/changelog/2024-11-27-forkable-chat.zh-CN.mdx +5 -0
  36. package/docs/changelog/2025-01-03-user-profile.mdx +5 -0
  37. package/docs/changelog/2025-01-03-user-profile.zh-CN.mdx +4 -1
  38. package/docs/self-hosting/advanced/auth/clerk.mdx +25 -41
  39. package/docs/self-hosting/advanced/auth/clerk.zh-CN.mdx +23 -37
  40. package/docs/self-hosting/advanced/auth/next-auth/auth0.mdx +31 -58
  41. package/docs/self-hosting/advanced/auth/next-auth/auth0.zh-CN.mdx +30 -57
  42. package/docs/self-hosting/advanced/auth/next-auth/authelia.mdx +38 -38
  43. package/docs/self-hosting/advanced/auth/next-auth/authelia.zh-CN.mdx +37 -38
  44. package/docs/self-hosting/advanced/auth/next-auth/authentik.mdx +26 -31
  45. package/docs/self-hosting/advanced/auth/next-auth/authentik.zh-CN.mdx +25 -30
  46. package/docs/self-hosting/advanced/auth/next-auth/casdoor.mdx +74 -75
  47. package/docs/self-hosting/advanced/auth/next-auth/casdoor.zh-CN.mdx +72 -73
  48. package/docs/self-hosting/advanced/auth/next-auth/cloudflare-zero-trust.mdx +24 -25
  49. package/docs/self-hosting/advanced/auth/next-auth/cloudflare-zero-trust.zh-CN.mdx +23 -24
  50. package/docs/self-hosting/advanced/auth/next-auth/github.mdx +46 -73
  51. package/docs/self-hosting/advanced/auth/next-auth/github.zh-CN.mdx +43 -70
  52. package/docs/self-hosting/advanced/auth/next-auth/logto.mdx +28 -37
  53. package/docs/self-hosting/advanced/auth/next-auth/logto.zh-CN.mdx +28 -37
  54. package/docs/self-hosting/advanced/auth/next-auth/microsoft-entra-id.mdx +36 -49
  55. package/docs/self-hosting/advanced/auth/next-auth/microsoft-entra-id.zh-CN.mdx +30 -43
  56. package/docs/self-hosting/advanced/auth/next-auth/wechat.mdx +13 -14
  57. package/docs/self-hosting/advanced/auth/next-auth/wechat.zh-CN.mdx +14 -15
  58. package/docs/self-hosting/advanced/auth/next-auth/zitadel.mdx +35 -69
  59. package/docs/self-hosting/advanced/auth/next-auth/zitadel.zh-CN.mdx +34 -68
  60. package/docs/self-hosting/advanced/auth.mdx +14 -13
  61. package/docs/self-hosting/advanced/auth.zh-CN.mdx +15 -14
  62. package/docs/self-hosting/advanced/feature-flags.zh-CN.mdx +15 -15
  63. package/docs/self-hosting/advanced/knowledge-base.mdx +14 -3
  64. package/docs/self-hosting/advanced/knowledge-base.zh-CN.mdx +12 -3
  65. package/docs/self-hosting/advanced/model-list.zh-CN.mdx +5 -5
  66. package/docs/self-hosting/advanced/s3/cloudflare-r2.mdx +52 -81
  67. package/docs/self-hosting/advanced/s3/cloudflare-r2.zh-CN.mdx +51 -80
  68. package/docs/self-hosting/advanced/s3/tencent-cloud.mdx +20 -34
  69. package/docs/self-hosting/advanced/s3/tencent-cloud.zh-CN.mdx +28 -43
  70. package/docs/self-hosting/advanced/s3.mdx +30 -34
  71. package/docs/self-hosting/advanced/s3.zh-CN.mdx +28 -33
  72. package/docs/self-hosting/advanced/settings-url-share.mdx +6 -6
  73. package/docs/self-hosting/advanced/settings-url-share.zh-CN.mdx +19 -19
  74. package/docs/self-hosting/advanced/upstream-sync.mdx +73 -89
  75. package/docs/self-hosting/advanced/upstream-sync.zh-CN.mdx +71 -87
  76. package/docs/self-hosting/advanced/webrtc.mdx +14 -21
  77. package/docs/self-hosting/advanced/webrtc.zh-CN.mdx +19 -26
  78. package/docs/self-hosting/environment-variables/analytics.zh-CN.mdx +0 -3
  79. package/docs/self-hosting/environment-variables/auth.zh-CN.mdx +1 -1
  80. package/docs/self-hosting/environment-variables/basic.mdx +13 -13
  81. package/docs/self-hosting/environment-variables/basic.zh-CN.mdx +15 -15
  82. package/docs/self-hosting/environment-variables/model-provider.mdx +1 -1
  83. package/docs/self-hosting/environment-variables/model-provider.zh-CN.mdx +1 -1
  84. package/docs/self-hosting/environment-variables/s3.mdx +3 -4
  85. package/docs/self-hosting/environment-variables/s3.zh-CN.mdx +5 -7
  86. package/docs/self-hosting/environment-variables.mdx +8 -4
  87. package/docs/self-hosting/environment-variables.zh-CN.mdx +4 -0
  88. package/docs/self-hosting/examples/azure-openai.mdx +9 -12
  89. package/docs/self-hosting/examples/azure-openai.zh-CN.mdx +8 -11
  90. package/docs/self-hosting/examples/ollama.mdx +8 -7
  91. package/docs/self-hosting/examples/ollama.zh-CN.mdx +8 -7
  92. package/docs/self-hosting/platform/alibaba-cloud.mdx +5 -7
  93. package/docs/self-hosting/platform/alibaba-cloud.zh-CN.mdx +5 -7
  94. package/docs/self-hosting/platform/btpanel.mdx +3 -2
  95. package/docs/self-hosting/platform/btpanel.zh-CN.mdx +3 -3
  96. package/docs/self-hosting/platform/docker-compose.mdx +75 -85
  97. package/docs/self-hosting/platform/docker-compose.zh-CN.mdx +75 -85
  98. package/docs/self-hosting/platform/docker.mdx +87 -92
  99. package/docs/self-hosting/platform/docker.zh-CN.mdx +96 -115
  100. package/docs/self-hosting/platform/netlify.mdx +44 -94
  101. package/docs/self-hosting/platform/netlify.zh-CN.mdx +40 -90
  102. package/docs/self-hosting/platform/railway.mdx +6 -7
  103. package/docs/self-hosting/platform/railway.zh-CN.mdx +6 -7
  104. package/docs/self-hosting/platform/repocloud.mdx +6 -7
  105. package/docs/self-hosting/platform/repocloud.zh-CN.mdx +6 -7
  106. package/docs/self-hosting/platform/sealos.mdx +6 -7
  107. package/docs/self-hosting/platform/sealos.zh-CN.mdx +6 -7
  108. package/docs/self-hosting/platform/vercel.mdx +7 -8
  109. package/docs/self-hosting/platform/vercel.zh-CN.mdx +7 -8
  110. package/docs/self-hosting/platform/zeabur.mdx +29 -32
  111. package/docs/self-hosting/platform/zeabur.zh-CN.mdx +29 -32
  112. package/docs/self-hosting/server-database/docker-compose.mdx +44 -71
  113. package/docs/self-hosting/server-database/docker-compose.zh-CN.mdx +44 -71
  114. package/docs/self-hosting/server-database/docker.mdx +84 -88
  115. package/docs/self-hosting/server-database/docker.zh-CN.mdx +87 -91
  116. package/docs/self-hosting/server-database/dokploy.mdx +18 -1
  117. package/docs/self-hosting/server-database/dokploy.zh-CN.mdx +84 -68
  118. package/docs/self-hosting/server-database/repocloud.mdx +7 -9
  119. package/docs/self-hosting/server-database/repocloud.zh-CN.mdx +9 -11
  120. package/docs/self-hosting/server-database/vercel.mdx +158 -243
  121. package/docs/self-hosting/server-database/vercel.zh-CN.mdx +137 -205
  122. package/docs/self-hosting/server-database/zeabur.mdx +21 -23
  123. package/docs/self-hosting/server-database/zeabur.zh-CN.mdx +20 -22
  124. package/docs/self-hosting/server-database.mdx +34 -36
  125. package/docs/self-hosting/server-database.zh-CN.mdx +34 -37
  126. package/docs/self-hosting/start.mdx +1 -4
  127. package/docs/self-hosting/start.zh-CN.mdx +1 -1
  128. package/docs/usage/agents/agent-organization.mdx +5 -21
  129. package/docs/usage/agents/agent-organization.zh-CN.mdx +5 -21
  130. package/docs/usage/agents/concepts.mdx +4 -4
  131. package/docs/usage/agents/concepts.zh-CN.mdx +4 -4
  132. package/docs/usage/agents/custom-agent.mdx +2 -2
  133. package/docs/usage/agents/custom-agent.zh-CN.mdx +2 -2
  134. package/docs/usage/agents/model.mdx +4 -4
  135. package/docs/usage/agents/model.zh-CN.mdx +6 -6
  136. package/docs/usage/agents/prompt.mdx +5 -6
  137. package/docs/usage/agents/prompt.zh-CN.mdx +5 -6
  138. package/docs/usage/agents/topics.mdx +2 -2
  139. package/docs/usage/agents/topics.zh-CN.mdx +2 -2
  140. package/docs/usage/features/agent-market.mdx +2 -2
  141. package/docs/usage/features/agent-market.zh-CN.mdx +2 -2
  142. package/docs/usage/features/auth.mdx +1 -5
  143. package/docs/usage/features/auth.zh-CN.mdx +1 -5
  144. package/docs/usage/features/database.mdx +1 -5
  145. package/docs/usage/features/database.zh-CN.mdx +1 -5
  146. package/docs/usage/features/local-llm.mdx +2 -6
  147. package/docs/usage/features/local-llm.zh-CN.mdx +2 -6
  148. package/docs/usage/features/mobile.mdx +1 -5
  149. package/docs/usage/features/mobile.zh-CN.mdx +1 -5
  150. package/docs/usage/features/multi-ai-providers.mdx +3 -11
  151. package/docs/usage/features/multi-ai-providers.zh-CN.mdx +3 -11
  152. package/docs/usage/features/plugin-system.mdx +9 -10
  153. package/docs/usage/features/plugin-system.zh-CN.mdx +9 -10
  154. package/docs/usage/features/pwa.mdx +11 -25
  155. package/docs/usage/features/pwa.zh-CN.mdx +11 -25
  156. package/docs/usage/features/text-to-image.mdx +2 -2
  157. package/docs/usage/features/text-to-image.zh-CN.mdx +2 -2
  158. package/docs/usage/features/theme.mdx +1 -6
  159. package/docs/usage/features/theme.zh-CN.mdx +1 -6
  160. package/docs/usage/features/tts.mdx +3 -7
  161. package/docs/usage/features/tts.zh-CN.mdx +3 -7
  162. package/docs/usage/features/vision.mdx +2 -2
  163. package/docs/usage/features/vision.zh-CN.mdx +2 -2
  164. package/docs/usage/foundation/basic.mdx +7 -18
  165. package/docs/usage/foundation/basic.zh-CN.mdx +6 -16
  166. package/docs/usage/foundation/share.mdx +3 -13
  167. package/docs/usage/foundation/share.zh-CN.mdx +3 -13
  168. package/docs/usage/foundation/text2image.mdx +3 -12
  169. package/docs/usage/foundation/text2image.zh-CN.mdx +3 -12
  170. package/docs/usage/foundation/translate.mdx +3 -13
  171. package/docs/usage/foundation/translate.zh-CN.mdx +3 -13
  172. package/docs/usage/foundation/tts-stt.mdx +3 -12
  173. package/docs/usage/foundation/tts-stt.zh-CN.mdx +3 -12
  174. package/docs/usage/foundation/vision.mdx +4 -16
  175. package/docs/usage/foundation/vision.zh-CN.mdx +4 -16
  176. package/docs/usage/plugins/basic-usage.mdx +7 -30
  177. package/docs/usage/plugins/basic-usage.zh-CN.mdx +7 -30
  178. package/docs/usage/plugins/development.mdx +30 -78
  179. package/docs/usage/plugins/development.zh-CN.mdx +31 -79
  180. package/docs/usage/plugins/store.mdx +2 -10
  181. package/docs/usage/plugins/store.zh-CN.mdx +2 -10
  182. package/docs/usage/providers/ai21.mdx +17 -33
  183. package/docs/usage/providers/ai21.zh-CN.mdx +17 -33
  184. package/docs/usage/providers/ai360.mdx +17 -33
  185. package/docs/usage/providers/ai360.zh-CN.mdx +20 -36
  186. package/docs/usage/providers/anthropic.mdx +23 -45
  187. package/docs/usage/providers/anthropic.zh-CN.mdx +22 -44
  188. package/docs/usage/providers/azure.mdx +21 -51
  189. package/docs/usage/providers/azure.zh-CN.mdx +19 -48
  190. package/docs/usage/providers/baichuan.mdx +16 -34
  191. package/docs/usage/providers/baichuan.zh-CN.mdx +15 -33
  192. package/docs/usage/providers/bedrock.mdx +38 -87
  193. package/docs/usage/providers/bedrock.zh-CN.mdx +37 -86
  194. package/docs/usage/providers/cloudflare.mdx +25 -48
  195. package/docs/usage/providers/cloudflare.zh-CN.mdx +24 -45
  196. package/docs/usage/providers/deepseek.mdx +25 -51
  197. package/docs/usage/providers/deepseek.zh-CN.mdx +24 -50
  198. package/docs/usage/providers/fireworksai.mdx +23 -43
  199. package/docs/usage/providers/fireworksai.zh-CN.mdx +21 -41
  200. package/docs/usage/providers/gemini.mdx +20 -46
  201. package/docs/usage/providers/gemini.zh-CN.mdx +20 -46
  202. package/docs/usage/providers/giteeai.mdx +24 -45
  203. package/docs/usage/providers/giteeai.zh-CN.mdx +22 -43
  204. package/docs/usage/providers/github.mdx +19 -45
  205. package/docs/usage/providers/github.zh-CN.mdx +19 -44
  206. package/docs/usage/providers/groq.mdx +12 -29
  207. package/docs/usage/providers/groq.zh-CN.mdx +11 -28
  208. package/docs/usage/providers/hunyuan.mdx +19 -39
  209. package/docs/usage/providers/hunyuan.zh-CN.mdx +18 -38
  210. package/docs/usage/providers/internlm.mdx +21 -38
  211. package/docs/usage/providers/internlm.zh-CN.mdx +19 -36
  212. package/docs/usage/providers/minimax.mdx +24 -50
  213. package/docs/usage/providers/minimax.zh-CN.mdx +22 -48
  214. package/docs/usage/providers/mistral.mdx +21 -39
  215. package/docs/usage/providers/mistral.zh-CN.mdx +20 -38
  216. package/docs/usage/providers/moonshot.mdx +20 -38
  217. package/docs/usage/providers/moonshot.zh-CN.mdx +19 -37
  218. package/docs/usage/providers/novita.mdx +20 -43
  219. package/docs/usage/providers/novita.zh-CN.mdx +19 -42
  220. package/docs/usage/providers/ollama/gemma.mdx +12 -29
  221. package/docs/usage/providers/ollama/gemma.zh-CN.mdx +12 -30
  222. package/docs/usage/providers/ollama/qwen.mdx +17 -32
  223. package/docs/usage/providers/ollama/qwen.zh-CN.mdx +12 -27
  224. package/docs/usage/providers/ollama.mdx +67 -99
  225. package/docs/usage/providers/ollama.zh-CN.mdx +67 -99
  226. package/docs/usage/providers/openai.mdx +42 -56
  227. package/docs/usage/providers/openai.zh-CN.mdx +39 -52
  228. package/docs/usage/providers/openrouter.mdx +48 -84
  229. package/docs/usage/providers/openrouter.zh-CN.mdx +31 -67
  230. package/docs/usage/providers/perplexity.mdx +16 -34
  231. package/docs/usage/providers/perplexity.zh-CN.mdx +16 -34
  232. package/docs/usage/providers/qwen.mdx +26 -52
  233. package/docs/usage/providers/qwen.zh-CN.mdx +25 -51
  234. package/docs/usage/providers/sensenova.mdx +24 -45
  235. package/docs/usage/providers/sensenova.zh-CN.mdx +22 -43
  236. package/docs/usage/providers/siliconcloud.mdx +17 -33
  237. package/docs/usage/providers/siliconcloud.zh-CN.mdx +17 -33
  238. package/docs/usage/providers/spark.mdx +20 -40
  239. package/docs/usage/providers/spark.zh-CN.mdx +19 -39
  240. package/docs/usage/providers/stepfun.mdx +17 -35
  241. package/docs/usage/providers/stepfun.zh-CN.mdx +17 -35
  242. package/docs/usage/providers/taichu.mdx +16 -34
  243. package/docs/usage/providers/taichu.zh-CN.mdx +15 -33
  244. package/docs/usage/providers/togetherai.mdx +18 -40
  245. package/docs/usage/providers/togetherai.zh-CN.mdx +18 -40
  246. package/docs/usage/providers/upstage.mdx +18 -34
  247. package/docs/usage/providers/upstage.zh-CN.mdx +17 -33
  248. package/docs/usage/providers/wenxin.mdx +22 -42
  249. package/docs/usage/providers/wenxin.zh-CN.mdx +20 -40
  250. package/docs/usage/providers/xai.mdx +21 -38
  251. package/docs/usage/providers/xai.zh-CN.mdx +20 -37
  252. package/docs/usage/providers/zeroone.mdx +22 -48
  253. package/docs/usage/providers/zeroone.zh-CN.mdx +22 -48
  254. package/docs/usage/providers/zhipu.mdx +17 -35
  255. package/docs/usage/providers/zhipu.zh-CN.mdx +18 -34
  256. package/docs/usage/providers.mdx +1 -6
  257. package/docs/usage/providers.zh-CN.mdx +1 -6
  258. package/docs/usage/start.mdx +4 -18
  259. package/docs/usage/start.zh-CN.mdx +2 -19
  260. package/docs/usage/tools-calling/anthropic.mdx +18 -51
  261. package/docs/usage/tools-calling/anthropic.zh-CN.mdx +22 -55
  262. package/docs/usage/tools-calling/google.mdx +16 -23
  263. package/docs/usage/tools-calling/google.zh-CN.mdx +17 -24
  264. package/docs/usage/tools-calling/groq.mdx +9 -0
  265. package/docs/usage/tools-calling/groq.zh-CN.mdx +44 -70
  266. package/docs/usage/tools-calling/moonshot.mdx +9 -0
  267. package/docs/usage/tools-calling/openai.mdx +19 -44
  268. package/docs/usage/tools-calling/openai.zh-CN.mdx +20 -45
  269. package/docs/usage/tools-calling.mdx +9 -0
  270. package/docs/usage/tools-calling.zh-CN.mdx +60 -68
  271. package/package.json +42 -41
  272. package/scripts/mdxWorkflow/index.ts +7 -0
  273. package/src/app/(main)/(mobile)/me/(home)/features/Header.tsx +2 -1
  274. package/src/app/(main)/(mobile)/me/data/features/Header.tsx +1 -1
  275. package/src/app/(main)/(mobile)/me/profile/features/Header.tsx +1 -1
  276. package/src/app/(main)/(mobile)/me/settings/features/Header.tsx +1 -1
  277. package/src/app/(main)/@nav/_layout/Mobile.tsx +2 -1
  278. package/src/app/(main)/chat/(workspace)/@topic/features/SystemRole/SystemRoleContent.tsx +2 -1
  279. package/src/app/(main)/chat/(workspace)/@topic/features/TopicListContent/ByTimeMode/GroupItem.tsx +2 -2
  280. package/src/app/(main)/chat/(workspace)/_layout/Desktop/ChatHeader/Main.tsx +2 -1
  281. package/src/app/(main)/chat/(workspace)/_layout/Desktop/ChatHeader/index.tsx +1 -1
  282. package/src/app/(main)/chat/(workspace)/_layout/Mobile/ChatHeader/ChatHeaderTitle.tsx +2 -1
  283. package/src/app/(main)/chat/(workspace)/_layout/Mobile/ChatHeader/index.tsx +1 -1
  284. package/src/app/(main)/chat/@session/_layout/Mobile/SessionHeader.tsx +2 -1
  285. package/src/app/(main)/chat/settings/_layout/Desktop/Header.tsx +1 -1
  286. package/src/app/(main)/chat/settings/_layout/Mobile/Header.tsx +1 -1
  287. package/src/app/(main)/discover/(detail)/provider/[slug]/features/InfoSidebar/SuggestionItem.tsx +8 -6
  288. package/src/app/(main)/discover/(list)/_layout/Desktop/Nav.tsx +1 -1
  289. package/src/app/(main)/discover/(list)/_layout/Mobile/Header.tsx +2 -1
  290. package/src/app/(main)/discover/_layout/Desktop/Header.tsx +1 -1
  291. package/src/app/(main)/discover/components/VirtuosoGridList/index.tsx +9 -5
  292. package/src/app/(main)/discover/search/_layout/Mobile/Header.tsx +1 -1
  293. package/src/app/(main)/files/(content)/@menu/features/KnowledgeBase/EmptyStatus.tsx +21 -13
  294. package/src/app/(main)/repos/[id]/evals/evaluation/EvaluationList/index.tsx +1 -1
  295. package/src/app/(main)/settings/sync/features/DeviceInfo/SystemIcon.tsx +2 -0
  296. package/src/components/Branding/ProductLogo/Custom.tsx +19 -20
  297. package/src/components/BrowserIcon/index.tsx +19 -30
  298. package/src/components/BubblesLoading/index.tsx +31 -23
  299. package/src/components/FunctionModal/createModalHooks.ts +6 -3
  300. package/src/components/StopLoading.tsx +10 -7
  301. package/src/features/ChatInput/Desktop/InputArea/index.tsx +2 -2
  302. package/src/features/InitClientDB/EnableModal.tsx +2 -2
  303. package/src/features/InitClientDB/{PGliteSVG.tsx → PGliteIcon.tsx} +17 -11
  304. package/src/features/ShareModal/ShareImage/index.tsx +32 -22
  305. package/src/features/ShareModal/ShareJSON/Preview.tsx +2 -2
  306. package/src/features/ShareModal/ShareJSON/index.tsx +49 -37
  307. package/src/features/ShareModal/ShareText/Preview.tsx +4 -1
  308. package/src/features/ShareModal/ShareText/index.tsx +49 -38
  309. package/src/features/ShareModal/index.tsx +1 -1
  310. package/src/features/ShareModal/style.ts +30 -0
  311. package/src/utils/colorUtils.ts +1 -1
  312. package/src/components/BrowserIcon/components/Brave.tsx +0 -56
  313. package/src/components/BrowserIcon/components/Chrome.tsx +0 -14
  314. package/src/components/BrowserIcon/components/Chromium.tsx +0 -14
  315. package/src/components/BrowserIcon/components/Edge.tsx +0 -36
  316. package/src/components/BrowserIcon/components/Firefox.tsx +0 -38
  317. package/src/components/BrowserIcon/components/Opera.tsx +0 -19
  318. package/src/components/BrowserIcon/components/Safari.tsx +0 -23
  319. package/src/components/BrowserIcon/components/Samsung.tsx +0 -21
@@ -17,37 +17,34 @@ tags:
17
17
  本文将详细介绍如何在 Vercel 中部署服务端数据库版 LobeChat,包括: 1)数据库配置;2)身份验证服务配置;3) S3 存储服务的设置步骤。
18
18
 
19
19
  <Callout type={'warning'}>
20
- 进行后续操作前,请务必确认以下事项: -
21
- 导出所有数据,部署服务端数据库后,原有用户数据无法自动迁移,只能提前备份后进行手动导入! -
22
- 环境变量中的`ACCESS_CODE`未设置或已清除! -
23
- 配置服务端数据库所需要的环境变量时,需全部填入后再进行部署,否则可能遭遇数据库迁移问题!
20
+ 进行后续操作前,请务必确认以下事项:
21
+
22
+ - 导出所有数据,部署服务端数据库后,原有用户数据无法自动迁移,只能提前备份后进行手动导入!
23
+ - 环境变量中的`ACCESS_CODE`未设置或已清除!
24
+ - 配置服务端数据库所需要的环境变量时,需全部填入后再进行部署,否则可能遭遇数据库迁移问题!
24
25
  </Callout>
25
26
 
26
27
  ## 一、 配置数据库
27
28
 
28
29
  <Steps>
30
+ ### 准备服务端数据库实例,获取连接 URL
29
31
 
30
- ### 准备服务端数据库实例,获取连接 URL
31
-
32
- 在部署之前,请确保你已经准备好 Postgres 数据库实例,你可以选择以下任一方式:
32
+ 在部署之前,请确保你已经准备好 Postgres 数据库实例,你可以选择以下任一方式:
33
33
 
34
- - `A.` 使用 Vercel / Neon 等 Serverless Postgres 实例;
35
- - `B.` 使用 Docker 等自部署 Postgres 实例。
34
+ - `A.` 使用 Vercel / Neon 等 Serverless Postgres 实例;
35
+ - `B.` 使用 Docker 等自部署 Postgres 实例。
36
36
 
37
- 两者的配置方式略有不同,在下一步会有所区分。
37
+ 两者的配置方式略有不同,在下一步会有所区分。
38
38
 
39
- ### 在 Vercel 中添加环境变量
39
+ ### 在 Vercel 中添加环境变量
40
40
 
41
- 在 Vercel 的部署环境变量中,添加 `DATABASE_URL` 等环境变量,将上一步准备好的 Postgres 数据库连接 URL 填入其中。数据库连接 URL 的通常格式为 `postgres://username:password@host:port/database`。
41
+ 在 Vercel 的部署环境变量中,添加 `DATABASE_URL` 等环境变量,将上一步准备好的 Postgres 数据库连接 URL 填入其中。数据库连接 URL 的通常格式为 `postgres://username:password@host:port/database`。
42
42
 
43
43
  <Tabs items={['Serverless Postgres', 'Node Postgres']}>
44
-
45
44
  <Tab>
46
-
47
45
  <Callout type={'warning'}>
48
46
  请确认您的供应商所提供的 `Postgres` 类型,若为 `Node Postgres`,请切换到 `Node Postgres` Tab 。
49
-
50
- </Callout>
47
+ </Callout>
51
48
 
52
49
  Serverless Postgres 需要填写的变量如下:
53
50
 
@@ -61,9 +58,8 @@ tags:
61
58
 
62
59
  在 Vercel 中填写的示例如下:
63
60
 
64
- <Image alt={'添加 Serverless Postgres DATABASE_URL'} src={'https://github.com/lobehub/lobe-chat/assets/28616219/d4a710cd-6404-4196-90d0-cd08ca385074'}/>
65
-
66
- </Tab>
61
+ <Image alt={'添加 Serverless Postgres DATABASE_URL'} src={'https://github.com/lobehub/lobe-chat/assets/28616219/d4a710cd-6404-4196-90d0-cd08ca385074'} />
62
+ </Tab>
67
63
 
68
64
  <Tab>
69
65
  Node Postgres 需要填写的变量如下:
@@ -81,31 +77,28 @@ tags:
81
77
 
82
78
  在 Vercel 中填写的示例如下:
83
79
 
84
- <Image alt={'添加 Node Postgres DATABASE_URL'} src={'https://github.com/lobehub/lobe-chat/assets/28616219/1c689738-809b-4199-b305-ba5770d39da7'}/>
80
+ <Image alt={'添加 Node Postgres DATABASE_URL'} src={'https://github.com/lobehub/lobe-chat/assets/28616219/1c689738-809b-4199-b305-ba5770d39da7'} />
81
+ </Tab>
82
+ </Tabs>
85
83
 
86
- </Tab>
84
+ <Callout type={'info'}>
85
+ 如果希望连接数据库时启用 SSL
86
+ ,请自行参考[链接](https://stackoverflow.com/questions/14021998/using-psql-to-connect-to-postgresql-in-ssl-mode)进行设置
87
+ </Callout>
87
88
 
88
- </Tabs>
89
+ ### 添加 `KEY_VAULTS_SECRET` 环境变量
89
90
 
90
- <Callout type={'info'}>
91
- 如果希望连接数据库时启用 SSL
92
- ,请自行参考[链接](https://stackoverflow.com/questions/14021998/using-psql-to-connect-to-postgresql-in-ssl-mode)进行设置
93
- </Callout>
94
-
95
- ### 添加 `KEY_VAULTS_SECRET` 环境变量
96
-
97
- 在完成数据库 DATABASE_URL 环境变量添加后,需要添加一个 `KEY_VAULTS_SECRET` 环境变量。该变量用于加密用户存储的 apikey 等敏感信息。你可以使用 `openssl rand -base64 32` 生成一个随机的 32 位字符串作为密钥。
98
-
99
- ```shell
100
- KEY_VAULTS_SECRET=jgwsK28dspyVQoIf8/M3IIHl1h6LYYceSYNXeLpy6uk=
101
- ```
91
+ 在完成数据库 `DATABASE_URL` 环境变量添加后,需要添加一个 `KEY_VAULTS_SECRET` 环境变量。该变量用于加密用户存储的 apikey 等敏感信息。你可以使用 `openssl rand -base64 32` 生成一个随机的 32 位字符串作为密钥。
102
92
 
103
- 同样需要将其添加到 Vercel 环境变量中。
93
+ ```shell
94
+ KEY_VAULTS_SECRET=jgwsK28dspyVQoIf8/M3IIHl1h6LYYceSYNXeLpy6uk=
95
+ ```
104
96
 
105
- ### 添加 `APP_URL` 环境变量
97
+ 同样需要将其添加到 Vercel 环境变量中。
106
98
 
107
- 该部分最后需要添加 APP_URL 环境变量,用于指定LobeChat 应用的 URL 地址。
99
+ ### 添加 `APP_URL` 环境变量
108
100
 
101
+ 该部分最后需要添加 `APP_UR`L 环境变量,用于指定 LobeChat 应用的 URL 地址。
109
102
  </Steps>
110
103
 
111
104
  ## 二、 配置身份验证服务
@@ -113,81 +106,61 @@ KEY_VAULTS_SECRET=jgwsK28dspyVQoIf8/M3IIHl1h6LYYceSYNXeLpy6uk=
113
106
  服务端数据库需要搭配用户身份验证服务才可以正常使用。因此需要配置对应的身份验证服务。
114
107
 
115
108
  <Steps>
109
+ ### 准备 Clerk 身份验证服务
116
110
 
117
- ### 准备 Clerk 身份验证服务
111
+ 前往 [Clerk](https://clerk.com?utm_source=lobehub\&utm_medium=docs) 注册并创建应用,获取相应的 Public Key 和 Secret Key。
118
112
 
119
- 前往 [Clerk](https://clerk.com?utm_source=lobehub&utm_medium=docs) 注册并创建应用,获取相应的 Public Key 和 Secret Key。
113
+ <Callout type={'info'}>
114
+ 如果对 Clerk 不太了解,可以查阅
115
+ [身份验证服务 - Clerk](/zh/docs/self-hosting/advanced/authentication#clerk) 了解 Clerk 的使用详情。
116
+ </Callout>
120
117
 
121
- <Callout type={'info'}>
122
- 如果对 Clerk 不太了解,可以查阅
123
- [身份验证服务-Clerk](/zh/docs/self-hosting/advanced/authentication#clerk) 了解 Clerk 的使用详情。
124
- </Callout>
118
+ ### 在 Vercel 中添加公、私钥环境变量
125
119
 
126
- ### 在 Vercel 中添加公、私钥环境变量
120
+ 在 Vercel 的部署环境变量中,添加 `NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY` 和 `CLERK_SECRET_KEY` 环境变量。你可以在菜单中点击「API Keys」,然后复制对应的值填入 Vercel 的环境变量中。
127
121
 
128
- Vercel 的部署环境变量中,添加 `NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY` 和 `CLERK_SECRET_KEY` 环境变量。你可以在菜单中点击「API Keys」,然后复制对应的值填入 Vercel 的环境变量中。
122
+ <Image alt={'Clerk 中找到对应的公私钥环境变量'} src={'https://github.com/lobehub/lobe-chat/assets/28616219/89883703-7a1a-4a11-b944-5d804544e57c'} />
129
123
 
130
- <Image
131
- alt={'在 Clerk 中找到对应的公私钥环境变量'}
132
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/89883703-7a1a-4a11-b944-5d804544e57c'}
133
- />
124
+ 此步骤所需的环境变量如下:
134
125
 
135
- 此步骤所需的环境变量如下:
126
+ ```shell
127
+ NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_live_xxxxxxxxxxx
128
+ CLERK_SECRET_KEY=sk_live_xxxxxxxxxxxxxxxxxxxxxx
129
+ ```
136
130
 
137
- ```shell
138
- NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_live_xxxxxxxxxxx
139
- CLERK_SECRET_KEY=sk_live_xxxxxxxxxxxxxxxxxxxxxx
140
- ```
141
-
142
- 添加上述变量到 Vercel 中:
143
-
144
- <Image
145
- alt={'在 Vercel 中添加 Clerk 公私钥环境变量'}
146
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/2bfa13df-6e20-4768-97c0-4dad06c85a2f'}
147
- />
131
+ 添加上述变量到 Vercel 中:
148
132
 
149
- ### 在 Clerk 中创建并配置 Webhook
133
+ <Image alt={'Vercel 中添加 Clerk 公私钥环境变量'} src={'https://github.com/lobehub/lobe-chat/assets/28616219/2bfa13df-6e20-4768-97c0-4dad06c85a2f'} />
150
134
 
151
- 由于我们让 Clerk 完全接管用户鉴权与管理,因此我们需要在 Clerk 用户生命周期变更时(创建、更新、删除)中通知我们的应用并存储落库。我们通过 Clerk 提供的 Webhook 来实现这一诉求。
135
+ ### Clerk 中创建并配置 Webhook
152
136
 
153
- 我们需要在 Clerk Webhooks 中添加一个端点(Endpoint),告诉 Clerk 当用户发生变更时,向这个端点发送通知。
137
+ 由于我们让 Clerk 完全接管用户鉴权与管理,因此我们需要在 Clerk 用户生命周期变更时(创建、更新、删除)中通知我们的应用并存储落库。我们通过 Clerk 提供的 Webhook 来实现这一诉求。
154
138
 
155
- <Image
156
- alt={'Clerk 添加 Webhooks 端点'}
157
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/f50f47fb-5e8e-4930-bf4e-8cf6f5b8afb9'}
158
- />
139
+ 我们需要在 Clerk 的 Webhooks 中添加一个端点(Endpoint),告诉 Clerk 当用户发生变更时,向这个端点发送通知。
159
140
 
160
- endppint 中填写你的 Vercel 项目的 URL,如 `https://your-project.vercel.app/api/webhooks/clerk`。然后在订阅事件(Subscribe to events)中,勾选 user 的三个事件(`user.created` 、`user.deleted`、`user.updated`),然后点击创建。
141
+ <Image alt={'Clerk 添加 Webhooks 端点'} src={'https://github.com/lobehub/lobe-chat/assets/28616219/f50f47fb-5e8e-4930-bf4e-8cf6f5b8afb9'} />
161
142
 
162
- <Callout type={'warning'}>URL的`https://`不可缺失,须保持URL的完整性</Callout>
143
+ endppint 中填写你的 Vercel 项目的 URL,如 `https://your-project.vercel.app/api/webhooks/clerk`。然后在订阅事件(Subscribe to events)中,勾选 user 的三个事件(`user.created` 、`user.deleted`、`user.updated`),然后点击创建。
163
144
 
164
- <Image
165
- alt={'添加 Clerk Webhooks 时,配置 URL 和用户事件'}
166
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/0249ea56-ab17-4aa9-a56c-9ebd556c2645'}
167
- />
145
+ <Callout type={'warning'}>URL 的`https://`不可缺失,须保持 URL 的完整性</Callout>
168
146
 
169
- ### Webhook 秘钥添加到 Vercel 环境变量
147
+ <Image alt={'添加 Clerk Webhooks 时,配置 URL 和用户事件'} src={'https://github.com/lobehub/lobe-chat/assets/28616219/0249ea56-ab17-4aa9-a56c-9ebd556c2645'} />
170
148
 
171
- 创建完毕后,可以在右下角找到该 Webhook 的秘钥:
149
+ ### Webhook 秘钥添加到 Vercel 环境变量
172
150
 
173
- <Image
174
- alt={'查看 Clerk Webhooks 秘钥'}
175
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/fab4abb2-584b-49de-9340-813382951635'}
176
- />
151
+ 创建完毕后,可以在右下角找到该 Webhook 的秘钥:
177
152
 
178
- 这个秘钥所对应的环境变量名为 `CLERK_WEBHOOK_SECRET`:
153
+ <Image alt={'查看 Clerk Webhooks 秘钥'} src={'https://github.com/lobehub/lobe-chat/assets/28616219/fab4abb2-584b-49de-9340-813382951635'} />
179
154
 
180
- ```shell
181
- CLERK_WEBHOOK_SECRET=whsec_xxxxxxxxxxxxxxxxxxxxxx
182
- ```
155
+ 这个秘钥所对应的环境变量名为 `CLERK_WEBHOOK_SECRET`:
183
156
 
184
- 将其添加到 Vercel 的环境变量中:
157
+ ```shell
158
+ CLERK_WEBHOOK_SECRET=whsec_xxxxxxxxxxxxxxxxxxxxxx
159
+ ```
185
160
 
186
- <Image
187
- alt={'在 Vercel 中 添加 Clerk Webhooks 秘钥'}
188
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/5fdc9479-007f-46ab-9d6e-a9603e949116'}
189
- />
161
+ 将其添加到 Vercel 的环境变量中:
190
162
 
163
+ <Image alt={'在 Vercel 中 添加 Clerk Webhooks 秘钥'} src={'https://github.com/lobehub/lobe-chat/assets/28616219/5fdc9479-007f-46ab-9d6e-a9603e949116'} />
191
164
  </Steps>
192
165
 
193
166
  这样,你已经成功配置了 Clerk 身份验证服务。接下来我们将配置 S3 存储服务。
@@ -197,149 +170,118 @@ CLERK_WEBHOOK_SECRET=whsec_xxxxxxxxxxxxxxxxxxxxxx
197
170
  在服务端数据库中我们需要配置 S3 存储服务来存储文件。
198
171
 
199
172
  <Callout type={'info'}>
200
- 在本文,S3所指代的是指兼容 S3 存储方案,即支持 Amazon S3 API 的对象存储系统,常见例如 Cloudflare
173
+ 在本文,S3 所指代的是指兼容 S3 存储方案,即支持 Amazon S3 API 的对象存储系统,常见例如 Cloudflare
201
174
  R2 、阿里云 OSS 等均支持 S3 兼容 API。
202
175
  </Callout>
203
176
 
204
177
  <Steps>
178
+ ### 配置并获取 S3 存储桶
205
179
 
206
- ### 配置并获取 S3 存储桶
180
+ 你需要前往你的 S3 服务提供商(如 AWS S3、Cloudflare R2 等)并创建一个新的存储桶(Bucket)。接下来以 Cloudflare R2 为例,介绍创建流程。
207
181
 
208
- 你需要前往你的 S3 服务提供商(如 AWS S3、Cloudflare R2 等)并创建一个新的存储桶(Bucket)。接下来以 Cloudflare R2 为例,介绍创建流程。
182
+ 下图是 Cloudflare R2 的界面:
209
183
 
210
- 下图是 Cloudflare R2 的界面:
184
+ <Image alt={'Cloudflare R2 存储界面'} src={'https://github.com/lobehub/lobe-chat/assets/28616219/41f7f677-0153-4a96-b849-5ac9b7ebefee'} />
211
185
 
212
- <Image
213
- alt={'Cloudflare R2 存储界面'}
214
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/41f7f677-0153-4a96-b849-5ac9b7ebefee'}
215
- />
186
+ 创建存储桶时将指定其名称,然后点击创建。
216
187
 
217
- 创建存储桶时将指定其名称,然后点击创建。
218
- <Image
219
- alt={'R2 创建存储桶'}
220
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/9c0d184c-3169-40fa-9115-011cfffb9ca7'}
221
- />
188
+ <Image alt={'R2 创建存储桶'} src={'https://github.com/lobehub/lobe-chat/assets/28616219/9c0d184c-3169-40fa-9115-011cfffb9ca7'} />
222
189
 
223
- ### 获取存储桶相关环境变量
190
+ ### 获取存储桶相关环境变量
224
191
 
225
- 在 R2 存储桶的设置中,可以看到桶配置的信息:
192
+ 在 R2 存储桶的设置中,可以看到桶配置的信息:
226
193
 
227
- <Image
228
- alt={'查看存储桶的相关信息'}
229
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/2ceb210c-eca0-4439-ba27-8734d4ebb3ee'}
230
- />
194
+ <Image alt={'查看存储桶的相关信息'} src={'https://github.com/lobehub/lobe-chat/assets/28616219/2ceb210c-eca0-4439-ba27-8734d4ebb3ee'} />
231
195
 
232
- 其对应的环境变量为:
196
+ 其对应的环境变量为:
233
197
 
234
- ```shell
235
- # 存储桶的名称
236
- S3_BUCKET=lobechat
237
- # 存储桶的请求端点(注意此处链接的路径带存储桶名称,必须删除该路径,或使用申请 S3 API token 页面所提供的链接)
238
- S3_ENDPOINT=https://0b33a03b5c993fd2f453379dc36558e5.r2.cloudflarestorage.com
239
- # 存储桶对外的访问域名
240
- S3_PUBLIC_DOMAIN=https://s3-for-lobechat.your-domain.com
241
- ```
198
+ ```shell
199
+ # 存储桶的名称
200
+ S3_BUCKET=lobechat
201
+ # 存储桶的请求端点(注意此处链接的路径带存储桶名称,必须删除该路径,或使用申请 S3 API token 页面所提供的链接)
202
+ S3_ENDPOINT=https://0b33a03b5c993fd2f453379dc36558e5.r2.cloudflarestorage.com
203
+ # 存储桶对外的访问域名
204
+ S3_PUBLIC_DOMAIN=https://s3-for-lobechat.your-domain.com
205
+ ```
242
206
 
243
- <Callout type={'warning'}>`S3_ENDPOINT`必须删除其路径,否则会无法访问所上传文件</Callout>
207
+ <Callout type={'warning'}>`S3_ENDPOINT`必须删除其路径,否则会无法访问所上传文件</Callout>
244
208
 
245
- ### 获取 S3 密钥环境变量
209
+ ### 获取 S3 密钥环境变量
246
210
 
247
- 你需要获取 S3 的访问密钥,以便 LobeChat 的服务端有权限访问 S3 存储服务。在 R2 中,你可以在账户详情中配置访问密钥:
211
+ 你需要获取 S3 的访问密钥,以便 LobeChat 的服务端有权限访问 S3 存储服务。在 R2 中,你可以在账户详情中配置访问密钥:
248
212
 
249
- <Image
250
- alt={'查看存储桶的访问秘钥'}
251
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/be0c95c0-6693-44ee-a490-7e8dfaa8b34d'}
252
- />
213
+ <Image alt={'查看存储桶的访问秘钥'} src={'https://github.com/lobehub/lobe-chat/assets/28616219/be0c95c0-6693-44ee-a490-7e8dfaa8b34d'} />
253
214
 
254
- 点击右上角按钮创建 API token,进入创建 API Token 页面
215
+ 点击右上角按钮创建 API token,进入创建 API Token 页面
255
216
 
256
- <Image
257
- alt={'创建对应 API token'}
258
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/7b0ea46c-5157-40a8-888f-f47664a4884f'}
259
- />
217
+ <Image alt={'创建对应 API token'} src={'https://github.com/lobehub/lobe-chat/assets/28616219/7b0ea46c-5157-40a8-888f-f47664a4884f'} />
260
218
 
261
- 鉴于我们的服务端数据库需要读写 S3 存储服务,因此权限需要选择`对象读与写`,然后点击创建。
219
+ 鉴于我们的服务端数据库需要读写 S3 存储服务,因此权限需要选择`对象读与写`,然后点击创建。
262
220
 
263
- <Image
264
- alt={'配置 API token 权限'}
265
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/d6f5a918-7b50-4d6e-83a6-3894ab930ddf'}
266
- />
221
+ <Image alt={'配置 API token 权限'} src={'https://github.com/lobehub/lobe-chat/assets/28616219/d6f5a918-7b50-4d6e-83a6-3894ab930ddf'} />
267
222
 
268
- 创建完成后,就可以看到对应的 S3 API token
223
+ 创建完成后,就可以看到对应的 S3 API token
269
224
 
270
- <Image
271
- alt={'复制 API token'}
272
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/763b18f9-2b5f-44bb-a479-9b56d46f7397'}
273
- />
225
+ <Image alt={'复制 API token'} src={'https://github.com/lobehub/lobe-chat/assets/28616219/763b18f9-2b5f-44bb-a479-9b56d46f7397'} />
274
226
 
275
- 其对应的环境变量为:
227
+ 其对应的环境变量为:
276
228
 
277
- ```shell
278
- S3_ACCESS_KEY_ID=9998d6757e276cf9f1edbd325b7083a6
279
- S3_SECRET_ACCESS_KEY=55af75d8eb6b99f189f6a35f855336ea62cd9c4751a5cf4337c53c1d3f497ac2
280
- ```
281
-
282
- ### 在 Vercel 中添加对应的环境变量
229
+ ```shell
230
+ S3_ACCESS_KEY_ID=9998d6757e276cf9f1edbd325b7083a6
231
+ S3_SECRET_ACCESS_KEY=55af75d8eb6b99f189f6a35f855336ea62cd9c4751a5cf4337c53c1d3f497ac2
232
+ ```
283
233
 
284
- 不同 S3 服务商获取所需环境变量的步骤可能有所不同,但最终获得到的环境变量应该都是一致的:
234
+ ### Vercel 中添加对应的环境变量
285
235
 
286
- <Callout type={'warning'}>URL的`https://`不可缺失,须保持URL的完整性</Callout>
236
+ 不同 S3 服务商获取所需环境变量的步骤可能有所不同,但最终获得到的环境变量应该都是一致的:
287
237
 
288
- ```shell
289
- # S3 秘钥
290
- S3_ACCESS_KEY_ID=9998d6757e276cf9f1edbd325b7083a6
291
- S3_SECRET_ACCESS_KEY=55af75d8eb6b99f189f6a35f855336ea62cd9c4751a5cf4337c53c1d3f497ac2
238
+ <Callout type={'warning'}>URL 的`https://`不可缺失,须保持 URL 的完整性</Callout>
292
239
 
293
- # 存储桶的名称
294
- S3_BUCKET=lobechat
295
- # 存储桶的请求端点
296
- S3_ENDPOINT=https://0b33a03b5c993fd2f453379dc36558e5.r2.cloudflarestorage.com
297
- # 存储桶对外的访问域名
298
- S3_PUBLIC_DOMAIN=https://s3-dev.your-domain.com
240
+ ```shell
241
+ # S3 秘钥
242
+ S3_ACCESS_KEY_ID=9998d6757e276cf9f1edbd325b7083a6
243
+ S3_SECRET_ACCESS_KEY=55af75d8eb6b99f189f6a35f855336ea62cd9c4751a5cf4337c53c1d3f497ac2
299
244
 
300
- # 桶的区域,如 us-west-1,一般来说不需要添加,但某些服务商则需要配置
301
- # S3_REGION=us-west-1
302
- ```
245
+ # 存储桶的名称
246
+ S3_BUCKET=lobechat
247
+ # 存储桶的请求端点
248
+ S3_ENDPOINT=https://0b33a03b5c993fd2f453379dc36558e5.r2.cloudflarestorage.com
249
+ # 存储桶对外的访问域名
250
+ S3_PUBLIC_DOMAIN=https://s3-dev.your-domain.com
303
251
 
304
- 然后将上述环境变量填入 Vercel 的环境变量中:
252
+ # 桶的区域,如 us-west-1,一般来说不需要添加,但某些服务商则需要配置
253
+ # S3_REGION=us-west-1
254
+ ```
305
255
 
306
- <Image
307
- alt={'在 Vercel 中添加 S3 的环境变量'}
308
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/cd74152d-0ae8-44fd-b815-3307c56a3c18'}
309
- />
256
+ 然后将上述环境变量填入 Vercel 的环境变量中:
310
257
 
311
- ### 配置跨域
258
+ <Image alt={'在 Vercel 中添加 S3 的环境变量'} src={'https://github.com/lobehub/lobe-chat/assets/28616219/cd74152d-0ae8-44fd-b815-3307c56a3c18'} />
312
259
 
313
- 由于 S3 存储服务往往是一个独立的网址,因此需要配置跨域访问。
260
+ ### 配置跨域
314
261
 
315
- R2 中,你可以在存储桶的设置中找到跨域配置:
262
+ 由于 S3 存储服务往往是一个独立的网址,因此需要配置跨域访问。
316
263
 
317
- <Image
318
- alt={'Cloudflare R2 的跨域设置'}
319
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/ab008be7-26b2-4b78-8bd9-24301bf34d23'}
320
- />
264
+ 在 R2 中,你可以在存储桶的设置中找到跨域配置:
321
265
 
322
- 添加跨域规则,允许你的域名(在上文是 `https://your-project.vercel.app`)来源的请求:
266
+ <Image alt={'Cloudflare R2 的跨域设置'} src={'https://github.com/lobehub/lobe-chat/assets/28616219/ab008be7-26b2-4b78-8bd9-24301bf34d23'} />
323
267
 
324
- <Image
325
- alt={'配置允许你的站点域名'}
326
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/dfcc2cb3-2958-4498-a8a4-51bec584fe7d'}
327
- />
268
+ 添加跨域规则,允许你的域名(在上文是 `https://your-project.vercel.app`)来源的请求:
328
269
 
329
- 示例配置如下:
270
+ <Image alt={'配置允许你的站点域名'} src={'https://github.com/lobehub/lobe-chat/assets/28616219/dfcc2cb3-2958-4498-a8a4-51bec584fe7d'} />
330
271
 
331
- ```json
332
- [
333
- {
334
- "AllowedOrigins": ["https://your-project.vercel.app"],
335
- "AllowedMethods": ["GET", "PUT", "HEAD", "POST", "DELETE"],
336
- "AllowedHeaders": ["*"]
337
- }
338
- ]
339
- ```
272
+ 示例配置如下:
340
273
 
341
- 配置后点击保存即可。
274
+ ```json
275
+ [
276
+ {
277
+ "AllowedOrigins": ["https://your-project.vercel.app"],
278
+ "AllowedMethods": ["GET", "PUT", "HEAD", "POST", "DELETE"],
279
+ "AllowedHeaders": ["*"]
280
+ }
281
+ ]
282
+ ```
342
283
 
284
+ 配置后点击保存即可。
343
285
  </Steps>
344
286
 
345
287
  ## 四、部署并验证
@@ -349,27 +291,17 @@ S3_PUBLIC_DOMAIN=https://s3-dev.your-domain.com
349
291
  <Steps>
350
292
  ### 重新部署最新的 commit
351
293
 
352
- 配置好环境变量后,你需要重新部署最新的 commit,并等待部署完成。
353
-
354
- <Image
355
- alt={'重新部署最新的 commit'}
356
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/b3a78112-adc8-4837-b4e3-48f67058f16e'}
357
- />
294
+ 配置好环境变量后,你需要重新部署最新的 commit,并等待部署完成。
358
295
 
359
- ### 检查功能是否正常
296
+ <Image alt={'重新部署最新的 commit'} src={'https://github.com/lobehub/lobe-chat/assets/28616219/b3a78112-adc8-4837-b4e3-48f67058f16e'} />
360
297
 
361
- 如果你点击左上角登录,可以正常显示登录弹窗,那么说明你已经配置成功了,尽情享用吧~
298
+ ### 检查功能是否正常
362
299
 
363
- <Image
364
- alt={'用户登录弹窗'}
365
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/da84edc3-46f7-4e2b-a0cd-dc33a98bf5cb'}
366
- />
300
+ 如果你点击左上角登录,可以正常显示登录弹窗,那么说明你已经配置成功了,尽情享用吧~
367
301
 
368
- <Image
369
- alt={'登录成功状态'}
370
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/9cb5150d-6e1e-4c59-9a18-4e418dce1a5d'}
371
- />
302
+ <Image alt={'用户登录弹窗'} src={'https://github.com/lobehub/lobe-chat/assets/28616219/da84edc3-46f7-4e2b-a0cd-dc33a98bf5cb'} />
372
303
 
304
+ <Image alt={'登录成功状态'} src={'https://github.com/lobehub/lobe-chat/assets/28616219/9cb5150d-6e1e-4c59-9a18-4e418dce1a5d'} />
373
305
  </Steps>
374
306
 
375
307
  ## 附录
@@ -32,47 +32,45 @@ The template on Zeabur includes 4 services:
32
32
  Here is the process for deploying the LobeChat server database version on Zeabur:
33
33
 
34
34
  <Steps>
35
+ ### Go to the template page on Zeabur
35
36
 
36
- ### Go to the template page on Zeabur
37
+ Go to the [LobeChat Database template page](https://zeabur.com/templates/RRSPSD) on Zeabur and click on the "Deploy" button.
37
38
 
38
- Go to the [LobeChat Database template page](https://zeabur.com/templates/RRSPSD) on Zeabur and click on the "Deploy" button.
39
+ ### Fill in the required environment variables
39
40
 
40
- ### Fill in the required environment variables
41
+ After you click on the "Deploy" button, you will see a modal pop-up where you can fill in the required environment variables.
41
42
 
42
- After you click on the "Deploy" button, you will see a modal pop-up where you can fill in the required environment variables.
43
+ Here are the environment variables you need to fill in:
43
44
 
44
- Here are the environment variables you need to fill in:
45
+ - OpenAI API key: Your OpenAI API key to get responses from OpenAI.
45
46
 
46
- - OpenAI API key: Your OpenAI API key to get responses from OpenAI.
47
+ - LobeChat Domain: A free subdomain with `.zeabur.app` suffix.
47
48
 
48
- - LobeChat Domain: A free subdomain with `.zeabur.app` suffix.
49
+ - MinIO Public Domain: A free subdomain with `.zeabur.app` suffix for yout MinIO web port to enable public access for the uploaded files.
49
50
 
50
- - MinIO Public Domain: A free subdomain with `.zeabur.app` suffix for yout MinIO web port to enable public access for the uploaded files.
51
+ - Logto Console Domain: A free subdomain with `.zeabur.app` suffix for your Logto console.
51
52
 
52
- - Logto Console Domain: A free subdomain with `.zeabur.app` suffix for your Logto console.
53
+ - Logto API Domain: A free subdomain with `.zeabur.app` suffix for your Logto api.
53
54
 
54
- - Logto API Domain: A free subdomain with `.zeabur.app` suffix for your Logto api.
55
+ ### Select a region and deploy
55
56
 
56
- ### Select a region and deploy
57
+ After you fill all the required environment variables, select a region where you want to deploy your LobeChat Database and click on the "Deploy" button.
57
58
 
58
- After you fill all the required environment variables, select a region where you want to deploy your LobeChat Database and click on the "Deploy" button.
59
+ You will see another modal pop-up where you can see the deployment progress.
59
60
 
60
- You will see another modal pop-up where you can see the deployment progress.
61
+ ### Configure Logto
61
62
 
62
- ### Configure Logto
63
+ After the deployment is done, you need to configure your Logto service to enable authrization.
63
64
 
64
- After the deployment is done, you need to configure your Logto service to enable authrization.
65
+ Access your Logto console with the console domain you just binded, and then create a `Next.js 14(App router)` application to get the client ID and client secret, and fill in the cors and callback URLs. You can check [this document](../advanced/auth.mdx) for a more detailed guide.
65
66
 
66
- Access your Logto console with the console domain you just binded, and then create a `Next.js 14(App router)` application to get the client ID and client secret, and fill in the cors and callback URLs. You can check [this document](../advanced/auth.mdx) for a more detailed guide.
67
+ Fill in those variables into your LobeChat service on Zeabur, here is a more detailed guide for [editing environment variables on Zeabur](https://zeabur.com/docs/deploy/variables).
67
68
 
68
- Fill in those variables into your LobeChat service on Zeabur, here is a more detailed guide for [editing environment variables on Zeabur](https://zeabur.com/docs/deploy/variables).
69
+ For detailed configuration of Logto, refer to [this document](/docs/self-hosting/advanced/auth/next-auth/logto).
69
70
 
70
- For detailed configuration of Logto, refer to [this document](/docs/self-hosting/advanced/auth/next-auth/logto).
71
+ ### Access your LobeChat Instance
71
72
 
72
- ### Access your LobeChat Instance
73
-
74
- Press on the `LobeChat-Database` and you can see the public domain you just created, click on it to access your LobeChat Database.
75
-
76
- You can also bind a custom domain for your services if you want, here is a guide on how to [bind a custom domain on Zeabur](https://zeabur.com/docs/deploy/domain-binding).
73
+ Press on the `LobeChat-Database` and you can see the public domain you just created, click on it to access your LobeChat Database.
77
74
 
75
+ You can also bind a custom domain for your services if you want, here is a guide on how to [bind a custom domain on Zeabur](https://zeabur.com/docs/deploy/domain-binding).
78
76
  </Steps>
@@ -29,41 +29,39 @@ tags:
29
29
  这里是在 Zeabur 上部署 LobeChat 服务器数据库版的流程:
30
30
 
31
31
  <Steps>
32
+ ### 前往 Zeabur 上的模板页面
32
33
 
33
- ### 前往 Zeabur 上的模板页面
34
+ 前往 [Zeabur 上的 LobeChat 数据库模板页面](https://zeabur.com/templates/RRSPSD) 并点击 "Deploy" 按钮。
34
35
 
35
- 前往 [Zeabur 上的 LobeChat 数据库模板页面](https://zeabur.com/templates/RRSPSD) 并点击 "Deploy" 按钮。
36
+ ### 填写必要的环境变量
36
37
 
37
- ### 填写必要的环境变量
38
+ 在你点击 “部署 “按钮后,你会看到一个模态弹窗,你可以在这里填写必要的环境变量。
38
39
 
39
- 在你点击“部署“按钮后,你会看到一个模态弹窗,你可以在这里填写必要的环境变量。
40
+ 以下是你需要填写的环境变量:
40
41
 
41
- 以下是你需要填写的环境变量:
42
+ - OpenAI API key: 你的 OpenAI API key 用于获取模型的访问权限。
43
+ - LobeChat Domain: 一个免费的 `.zeabur.app` 后缀的域名。
44
+ - MinIO Public Domain: 一个免费的 `.zeabur.app` 后缀的域名为了暴露 MinIO 服务以公开访问资源。
45
+ - Logto Console Domain: 一个免费的 `.zeabur.app` 后缀的域名来访问 Logto 的控制台。
46
+ - Logto API Domain: 一个免费的 `.zeabur.app` 后缀的域名来访问 Logto 的 API。
42
47
 
43
- - OpenAI API key: 你的 OpenAI API key 用于获取模型的访问权限。
44
- - LobeChat Domain: 一个免费的 `.zeabur.app` 后缀的域名。
45
- - MinIO Public Domain: 一个免费的 `.zeabur.app` 后缀的域名为了暴露 MinIO 服务以公开访问资源。
46
- - Logto Console Domain: 一个免费的 `.zeabur.app` 后缀的域名来访问 Logto 的控制台。
47
- - Logto API Domain: 一个免费的 `.zeabur.app` 后缀的域名来访问 Logto 的 API。
48
+ ### 选择一个区域并部署
48
49
 
49
- ### 选择一个区域并部署
50
+ 在你填写完所有必要的环境变量后,选择一个你想要部署 LobeChat 数据库的区域并点击 “部署” 按钮。
50
51
 
51
- 在你填写完所有必要的环境变量后,选择一个你想要部署 LobeChat 数据库的区域并点击“部署”按钮。
52
+ 你会看到另一个模态弹窗,你可以在这里看到部署的进度。
52
53
 
53
- 你会看到另一个模态弹窗,你可以在这里看到部署的进度。
54
+ ### 配置 Logto
54
55
 
55
- ### 配置 Logto
56
+ 当部署完成后,你会被自动导航到你在 Zeabur 控制台上刚刚创建的项目。你需要再进一步配置你的 Logto 服务。
56
57
 
57
- 当部署完成后,你会被自动导航到你在 Zeabur 控制台上刚刚创建的项目。你需要再进一步配置你的 Logto 服务。
58
+ 使用你刚绑定的域名来访问你的 Logto 控制台,创建一个新项目以获得对应的客户端 ID 与密钥,将它们填入你的 LobeChat 服务的变量中。关于如何填入变量,可以参照 [Zeabur 的官方文档](https://zeabur.com/docs/deploy/variables)。
58
59
 
59
- 使用你刚绑定的域名来访问你的 Logto 控制台,创建一个新项目以获得对应的客户端 ID 与密钥,将它们填入你的 LobeChat 服务的变量中。关于如何填入变量,可以参照 [Zeabur 的官方文档](https://zeabur.com/docs/deploy/variables)。
60
+ Logto 的详细配置可以参考[这篇文档](/zh/docs/self-hosting/advanced/auth/next-auth/logto)。
60
61
 
61
- Logto 的详细配置可以参考[这篇文档](/zh/docs/self-hosting/advanced/auth/next-auth/logto)。
62
+ ### 访问你的 LobeChat
62
63
 
63
- ### 访问你的 LobeChat
64
-
65
- 按下 `LobeChat-Database` 你会看到你刚刚创建的公共域名,点击它以访问你的 LobeChat 数据库。
66
-
67
- 你可以选择绑定一个自定义域名,这里有一个关于如何在 Zeabur 上[绑定自定义域名](https://zeabur.com/docs/deploy/domain-binding)的指南。
64
+ 按下 `LobeChat-Database` 你会看到你刚刚创建的公共域名,点击它以访问你的 LobeChat 数据库。
68
65
 
66
+ 你可以选择绑定一个自定义域名,这里有一个关于如何在 Zeabur 上[绑定自定义域名](https://zeabur.com/docs/deploy/domain-binding)的指南。
69
67
  </Steps>