@lobehub/chat 1.8.2 → 1.9.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 (52) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/docs/self-hosting/advanced/auth/clerk.mdx +81 -0
  3. package/docs/self-hosting/advanced/auth/clerk.zh-CN.mdx +71 -0
  4. package/docs/self-hosting/advanced/{sso-providers → auth/next-auth}/auth0.zh-CN.mdx +2 -1
  5. package/docs/self-hosting/advanced/s3/cloudflare-r2.mdx +146 -0
  6. package/docs/self-hosting/advanced/s3/cloudflare-r2.zh-CN.mdx +146 -0
  7. package/docs/self-hosting/advanced/s3.mdx +28 -0
  8. package/docs/self-hosting/advanced/s3.zh-CN.mdx +27 -0
  9. package/docs/self-hosting/advanced/webrtc.mdx +12 -0
  10. package/docs/self-hosting/environment-variables/basic.mdx +3 -1
  11. package/docs/self-hosting/environment-variables/basic.zh-CN.mdx +2 -2
  12. package/docs/self-hosting/server-database/docker-compose.mdx +29 -0
  13. package/docs/self-hosting/server-database/docker-compose.zh-CN.mdx +30 -0
  14. package/docs/self-hosting/server-database/docker.mdx +131 -0
  15. package/docs/self-hosting/server-database/docker.zh-CN.mdx +129 -0
  16. package/docs/self-hosting/server-database/netlify.mdx +14 -0
  17. package/docs/self-hosting/server-database/netlify.zh-CN.mdx +16 -0
  18. package/docs/self-hosting/server-database/railway.mdx +14 -0
  19. package/docs/self-hosting/server-database/railway.zh-CN.mdx +15 -0
  20. package/docs/self-hosting/server-database/repocloud.mdx +16 -0
  21. package/docs/self-hosting/server-database/repocloud.zh-CN.mdx +14 -0
  22. package/docs/self-hosting/server-database/sealos.mdx +12 -0
  23. package/docs/self-hosting/server-database/sealos.zh-CN.mdx +14 -0
  24. package/docs/self-hosting/server-database/vercel.mdx +418 -0
  25. package/docs/self-hosting/{advanced/server-database.zh-CN.mdx → server-database/vercel.zh-CN.mdx} +14 -24
  26. package/docs/self-hosting/server-database/zeabur.mdx +16 -0
  27. package/docs/self-hosting/server-database/zeabur.zh-CN.mdx +14 -0
  28. package/docs/self-hosting/server-database.mdx +164 -0
  29. package/docs/self-hosting/server-database.zh-CN.mdx +169 -0
  30. package/docs/self-hosting/start.mdx +18 -14
  31. package/docs/self-hosting/start.zh-CN.mdx +21 -16
  32. package/docs/usage/providers/novita.mdx +3 -3
  33. package/docs/usage/providers/novita.zh-CN.mdx +3 -1
  34. package/package.json +1 -1
  35. package/src/layout/GlobalProvider/StoreInitialization.tsx +2 -0
  36. package/src/server/globalConfig/index.ts +2 -0
  37. package/src/store/serverConfig/selectors.ts +1 -0
  38. package/src/store/user/slices/auth/action.ts +6 -0
  39. package/src/store/user/slices/auth/initialState.ts +2 -1
  40. package/src/types/serverConfig.ts +1 -0
  41. package/docs/self-hosting/advanced/server-database.mdx +0 -425
  42. /package/docs/self-hosting/advanced/{sso-providers → auth/next-auth}/auth0.mdx +0 -0
  43. /package/docs/self-hosting/advanced/{sso-providers → auth/next-auth}/authentik.mdx +0 -0
  44. /package/docs/self-hosting/advanced/{sso-providers → auth/next-auth}/authentik.zh-CN.mdx +0 -0
  45. /package/docs/self-hosting/advanced/{sso-providers → auth/next-auth}/github.mdx +0 -0
  46. /package/docs/self-hosting/advanced/{sso-providers → auth/next-auth}/github.zh-CN.mdx +0 -0
  47. /package/docs/self-hosting/advanced/{sso-providers → auth/next-auth}/microsoft-entra-id.mdx +0 -0
  48. /package/docs/self-hosting/advanced/{sso-providers → auth/next-auth}/microsoft-entra-id.zh-CN.mdx +0 -0
  49. /package/docs/self-hosting/advanced/{sso-providers → auth/next-auth}/zitadel.mdx +0 -0
  50. /package/docs/self-hosting/advanced/{sso-providers → auth/next-auth}/zitadel.zh-CN.mdx +0 -0
  51. /package/docs/self-hosting/advanced/{authentication.mdx → auth.mdx} +0 -0
  52. /package/docs/self-hosting/advanced/{authentication.zh-CN.mdx → auth.zh-CN.mdx} +0 -0
@@ -1,425 +0,0 @@
1
- ---
2
- title: Deploying Server-Side Database - Configuration Guide for LobeChat on Vercel
3
- description: >-
4
- Learn how to deploy the server-side database version of LobeChat on Vercel,
5
- including database configuration, identity authentication service setup, and
6
- S3 storage service configuration.
7
- tags:
8
- - Server-Side Database
9
- - Vercel Deployment
10
- - Postgres Database
11
- - Identity Authentication
12
- - S3 Storage Service
13
- - Configuration Guide
14
- ---
15
-
16
- # Deploying Server-Side Database
17
-
18
- LobeChat defaults to using a client-side database (IndexedDB) but also supports using a server-side database. LobeChat uses Postgres as the backend storage database. PostgreSQL is a powerful open-source relational database management system with high scalability and standard SQL support. It provides rich data types, concurrency control, data integrity, security, and programmability, making it suitable for complex applications and large-scale data management.
19
-
20
- This article will detail how to deploy the server-side database version of LobeChat on Vercel, including: 1) database configuration; 2) identity authentication service configuration; 3) steps for setting up the S3 storage service.
21
-
22
- <Callout type={'info'}>
23
- Due to workload constraints, currently only deployment on Vercel using the server-side database
24
- version is supported, with Docker version support planned for future iterations.
25
- </Callout>
26
-
27
- <Callout type={'warning'}>
28
- Before proceeding, please ensure the following
29
- - **Export all data.** After deploying the server-side database, the original user data cannot be migrated automatically. You must back it up in advance and import it manually!
30
- - **The `ACCESS_CODE` environment variable is set.** It should not be empty or cleared!
31
- - **It is crucial to fill in all the environment variables required for the server-side database configuration before deployment.** Failure to do so may result in database migration issues!
32
- </Callout>
33
-
34
- ## 1. Configure the Database
35
-
36
- <Steps>
37
-
38
- ### Prepare a Server-Side Database Instance and Obtain the Connection URL
39
-
40
- Before deployment, make sure you have prepared a Postgres database instance. You can choose either of the following methods:
41
-
42
- - `A.` Use Serverless Postgres instances like Vercel/Neon;
43
- - `B.` Use self-deployed Postgres instances like Docker.
44
-
45
- The configuration for both methods is slightly different, which will be distinguished in the next step.
46
-
47
- ### Add Environment Variables in Vercel
48
-
49
- In Vercel's deployment environment variables, add the `DATABASE_URL` and other environment variables. Fill in the prepared Postgres database connection URL. The typical format for the database connection URL is `postgres://username:password@host:port/database`.
50
-
51
- <Callout type={'warning'}>
52
- Confirm the type of `Postgres` your provider offers. If it's `Node Postgres`, you must add the environment variable `DATABASE_DRIVER=node`.
53
- </Callout>
54
-
55
- <Tabs items={['Serverless Postgres', 'Node Postgres']}>
56
-
57
- <Tab>
58
-
59
- Variables required for Serverless Postgres are as follows:
60
-
61
- ```shell
62
- # Serverless Postgres DB Url
63
- DATABASE_URL=
64
-
65
- # Specify the service mode as server, otherwise it won't enter the server-side database
66
- NEXT_PUBLIC_SERVICE_MODE=server
67
- ```
68
-
69
- An example of how to fill in Vercel is shown below:
70
-
71
- <Image
72
- alt={'Add Serverless Postgres DATABASE_URL'}
73
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/d4a710cd-6404-4196-90d0-cd08ca385074'}
74
- ></Image>
75
-
76
- </Tab>
77
-
78
- <Tab>
79
- Variables required for Node Postgres are as follows:
80
-
81
- ```shell
82
- # Node Postgres DB Url
83
- DATABASE_URL=
84
-
85
- # Specify the Postgres database driver as node
86
- DATABASE_DRIVER=node
87
-
88
- # Specify the service mode as server, otherwise it won't enter the server-side database
89
- NEXT_PUBLIC_SERVICE_MODE=server
90
- ```
91
-
92
- An example of how to fill in Vercel is shown below:
93
-
94
- <Image
95
- alt={'Add Node Postgres DATABASE_URL'}
96
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/1c689738-809b-4199-b305-ba5770d39da7'}
97
- ></Image>
98
-
99
- </Tab>
100
-
101
- </Tabs>
102
-
103
- <Callout type={'info'}>
104
- To connect to the database using SSL, please refer to this [link](https://stackoverflow.com/questions/14021998/using-psql-to-connect-to-postgresql-in-ssl-mode) for instructions on how to configure it.
105
- </Callout>
106
-
107
- ### Add the `KEY_VAULTS_SECRET` Environment Variable
108
-
109
- After adding the `DATABASE_URL` environment variable, you need to add a `KEY_VAULTS_SECRET` environment variable. This variable is used to encrypt sensitive information like user-stored API keys. You can generate a random 32-character string as the key using `openssl rand -base64 32`.
110
-
111
- ```shell
112
- KEY_VAULTS_SECRET=jgwsK28dspyVQoIf8/M3IIHl1h6LYYceSYNXeLpy6uk=
113
- ```
114
-
115
- Add this to the Vercel environment variables as well.
116
-
117
- </Steps>
118
-
119
- ## 2. Configure the Identity Authentication Service
120
-
121
- A server-side database needs to be paired with an identity authentication service to function properly. Therefore, the corresponding identity authentication service needs to be configured.
122
-
123
- <Callout type={'warning'}>
124
- Due to workload constraints, currently only Clerk is supported as an identity authentication
125
- service solution. Integration with Next-Auth for server-side database is under development.
126
- </Callout>
127
-
128
- <Steps>
129
-
130
- ### Prepare the Clerk Identity Authentication Service
131
-
132
- Go to [Clerk](https://clerk.com?utm_source=lobehub&utm_medium=docs) to register and create an application to obtain the corresponding Public Key and Secret Key.
133
-
134
- <Callout type={'info'}>
135
- If you are unfamiliar with Clerk, you can refer to [Authentication
136
- Service-Clerk](/en/docs/self-hosting/advanced/authentication#clerk) for details on using Clerk.
137
- </Callout>
138
-
139
- ### Add Public and Private Key Environment Variables in Vercel
140
-
141
- In Vercel's deployment environment variables, add the `NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY` and `CLERK_SECRET_KEY` environment variables. You can click on "API Keys" in the menu, then copy the corresponding values and paste them into Vercel's environment variables.
142
-
143
- <Image
144
- alt={'Find the corresponding public and private key environment variables in Clerk'}
145
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/89883703-7a1a-4a11-b944-5d804544e57c'}
146
- ></Image>
147
-
148
- The environment variables required for this step are as follows:
149
-
150
- ```shell
151
- NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_live_xxxxxxxxxxx
152
- CLERK_SECRET_KEY=sk_live_xxxxxxxxxxxxxxxxxxxxxx
153
- ```
154
-
155
- Add these variables to Vercel:
156
-
157
- <Image
158
- alt={'Add Clerk public and private key environment variables in Vercel'}
159
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/2bfa13df-6e20-4768-97c0-4dad06c85a2f'}
160
- ></Image>
161
-
162
- ### Create and Configure a Webhook in Clerk
163
-
164
- Since we let Clerk handle user authentication and management entirely, we need Clerk to notify our application and store data in the database when there are changes in the user lifecycle (create, update, delete). We achieve this using the Webhook provided by Clerk.
165
-
166
- We need to add an endpoint in Clerk's Webhooks to inform Clerk to send notifications to this endpoint when a user's status changes.
167
-
168
- <Image
169
- alt={'Add an endpoint in Clerk Webhooks'}
170
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/f50f47fb-5e8e-4930-bf4e-8cf6f5b8afb9'}
171
- >
172
-
173
- </Image>
174
-
175
- Fill in your Vercel project's URL in the endpoint, such as `https://your-project.vercel.app/api/webhooks/clerk`. Then, in the Subscribe to events section, check the three user events (`user.created`, `user.deleted`, `user.updated`), and click create.
176
-
177
- <Callout type={'warning'}>Ensure that the URL includes the `https://` prefix. Maintaining the integrity of the URL is crucial.</Callout>
178
-
179
- <Image
180
- alt={'Configure URL and user events when adding Clerk Webhooks'}
181
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/0249ea56-ab17-4aa9-a56c-9ebd556c2645'}
182
- ></Image>
183
-
184
- ### Add the Webhook Secret to Vercel Environment Variables
185
-
186
- After creation, you can find the secret of this Webhook in the bottom right corner:
187
-
188
- <Image
189
- alt={'View Clerk Webhook secret'}
190
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/fab4abb2-584b-49de-9340-813382951635'}
191
- ></Image>
192
-
193
- The corresponding environment variable name for this secret is `CLERK_WEBHOOK_SECRET`:
194
-
195
- ```shell
196
- CLERK_WEBHOOK_SECRET=whsec_xxxxxxxxxxxxxxxxxxxxxx
197
- ```
198
-
199
- Add this to Vercel's environment variables:
200
-
201
- <Image
202
- alt={'Add Clerk Webhook secret in Vercel'}
203
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/5fdc9479-007f-46ab-9d6e-a9603e949116'}>
204
-
205
- </Image>
206
-
207
- </Steps>
208
-
209
- You have now successfully configured the Clerk identity authentication service. Next, we will configure the S3 storage service.
210
-
211
- ## 3. Configure S3 Storage Service
212
-
213
- LobeChat has long supported multimodal AI conversations, involving the function of uploading images to AI. In the client-side database solution, image files are stored as binary data in the browser's indexedDB database. However, this solution is not feasible in the server-side database. We need to configure the S3 storage service to store a large number of image files, and S3 can also serve as a storage solution for file uploads.
214
-
215
- <Callout type={'info'}>
216
- In this article, S3 refers to a compatible S3 storage solution, which supports object storage
217
- systems that comply with the Amazon S3 API. Common examples include Cloudflare R2 etc., all of
218
- which support S3-compatible APIs.
219
- </Callout>
220
-
221
- <Steps>
222
-
223
- ### Configure and Obtain S3 Bucket
224
-
225
- You need to go to your S3 service provider (such as AWS S3, Cloudflare R2, etc.) and create a new storage bucket. Below is an example of the creation process using Cloudflare R2.
226
-
227
- The interface of Cloudflare R2 is shown below:
228
-
229
- <Image
230
- alt={'Cloudflare R2 Storage Interface'}
231
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/41f7f677-0153-4a96-b849-5ac9b7ebefee'}
232
- ></Image>
233
-
234
- When creating the bucket, specify its name and then click create.
235
-
236
- <Image
237
- alt={'Create Bucket in R2'}
238
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/9c0d184c-3169-40fa-9115-011cfffb9ca7'}
239
- ></Image>
240
-
241
- ### Obtain Environment Variables for the Bucket
242
-
243
- In the settings of the R2 storage bucket, you can view the bucket configuration information:
244
-
245
- <Image
246
- alt={'View Bucket Information'}
247
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/2ceb210c-eca0-4439-ba27-8734d4ebb3ee'}
248
- ></Image>
249
-
250
- The corresponding environment variables are:
251
-
252
- ```shell
253
- # Bucket name
254
- S3_BUCKET=lobechat
255
- # Bucket request endpoint(note that the path of this link contains the bucket name, you must remove the path, or use the link provided on the "Apply for S3 API Token" page)
256
- S3_ENDPOINT=https://0b33a03b5c993fd2f453379dc36558e5.r2.cloudflarestorage.com
257
- # Public domain for accessing the bucket
258
- NEXT_PUBLIC_S3_DOMAIN=https://s3-for-lobechat.your-domain.com
259
- ```
260
-
261
- <Callout type={'warning'}>The path must be removed from the `S3_ENDPOINT`, otherwise, uploaded files will be inaccessible.</Callout>
262
-
263
- ### Obtain S3 Key Environment Variables
264
-
265
- You need to obtain the access key for S3 so that the LobeChat server has permission to access the S3 storage service. In R2, you can configure the access key in the account details:
266
-
267
- <Image
268
- alt={'View Access Key for Bucket'}
269
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/be0c95c0-6693-44ee-a490-7e8dfaa8b34d'}
270
- ></Image>
271
-
272
- Click the button in the upper right corner to create an API token, then enter the API Token creation page.
273
-
274
- <Image
275
- alt={'Create Corresponding API Token'}
276
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/7b0ea46c-5157-40a8-888f-f47664a4884f'}
277
- ></Image>
278
-
279
- Since our server-side database needs to read and write to the S3 storage service, the permission needs to be set to `Administrator Read and Write`. Then, click Create.
280
-
281
- <Callout type={'warning'}>The permission must be set to `Administrator Read and Write`, otherwise, uploading photos and other files will not be possible.</Callout>
282
-
283
- <Image
284
- alt={'Configure API Token Permissions'}
285
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/d6f5a918-7b50-4d6e-83a6-3894ab930ddf'}
286
- ></Image>
287
-
288
- After creation, you can see the corresponding S3 API token.
289
-
290
- <Image
291
- alt={'Copy API Token'}
292
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/763b18f9-2b5f-44bb-a479-9b56d46f7397'}
293
- ></Image>
294
-
295
- The corresponding environment variables are:
296
-
297
- ```shell
298
- S3_ACCESS_KEY_ID=9998d6757e276cf9f1edbd325b7083a6
299
- S3_SECRET_ACCESS_KEY=55af75d8eb6b99f189f6a35f855336ea62cd9c4751a5cf4337c53c1d3f497ac2
300
- ```
301
-
302
- ### Add the Corresponding Environment Variables in Vercel
303
-
304
- The steps to obtain the required environment variables may vary for different S3 service providers, but the obtained environment variables should be consistent in the end:
305
-
306
- <Callout type={'warning'}>Ensure that the `S3_ENDPOINT` includes the `https://` prefix. Maintaining the integrity of the URL is crucial.</Callout>
307
-
308
- ```shell
309
- # S3 Key
310
- S3_ACCESS_KEY_ID=9998d6757e276cf9f1edbd325b7083a6
311
- S3_SECRET_ACCESS_KEY=55af75d8eb6b99f189f6a35f855336ea62cd9c4751a5cf4337c53c1d3f497ac2
312
-
313
- # Bucket name
314
- S3_BUCKET=lobechat
315
- # Bucket request endpoint
316
- S3_ENDPOINT=https://0b33a03b5c993fd2f453379dc36558e5.r2.cloudflarestorage.com
317
- # Public domain for accessing the bucket
318
- NEXT_PUBLIC_S3_DOMAIN=https://s3-for-lobechat.your-domain.com
319
-
320
- # Bucket region, such as us-west-1, generally not required to add, but some service providers may need to configure
321
- # S3_REGION=us-west-1
322
- ```
323
-
324
- Then enter the above environment variables into Vercel's environment variables:
325
-
326
- <Image
327
- alt={'Add S3 Environment Variables in Vercel'}
328
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/cd74152d-0ae8-44fd-b815-3307c56a3c18'}
329
- ></Image>
330
-
331
- ### Configure Cross-Origin Resource Sharing (CORS)
332
-
333
- Since S3 storage services are often on a separate domain, cross-origin access needs to be configured.
334
-
335
- In R2, you can find the CORS configuration in the settings of the storage bucket:
336
-
337
- <Image
338
- alt={'Cloudflare R2 CORS Settings'}
339
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/ab008be7-26b2-4b78-8bd9-24301bf34d23'}
340
- ></Image>
341
-
342
- Add a CORS rule to allow requests from your domain (in this case, `https://your-project.vercel.app`):
343
-
344
- <Image
345
- alt={'Configure Allowed Site Domain'}
346
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/dfcc2cb3-2958-4498-a8a4-51bec584fe7d'}
347
- ></Image>
348
-
349
- Example configuration:
350
-
351
- ```json
352
- [
353
- {
354
- "AllowedOrigins": ["https://your-project.vercel.app"],
355
- "AllowedMethods": ["GET", "PUT", "HEAD", "POST", "DELETE"],
356
- "AllowedHeaders": ["*"]
357
- }
358
- ]
359
- ```
360
-
361
- After configuration, click save.
362
-
363
- </Steps>
364
-
365
- ## 4. Deployment and Verification
366
-
367
- After completing the above steps, the configuration of the server database should be done. Next, we can deploy LobeChat to Vercel and then visit your Vercel link to verify if the server database is working correctly.
368
-
369
- <Steps>
370
- ### Redeploy the latest commit
371
-
372
- After configuring the environment variables, you need to redeploy the latest commit and wait for the deployment to complete.
373
-
374
- <Image
375
- alt={'Redeploy the latest commit'}
376
- src={'https://github.com/lobehub/lobe-chat/assets/28616219/b3a78112-adc8-4837-b4e3-48f67058f16e'}
377
- ></Image>
378
-
379
- ### Check if the features are working properly
380
-
381
- If you click on the login button in the top left corner and the login popup appears normally, then you have configured it successfully. Enjoy using it\~
382
-
383
- <Image alt={'User login popup'} src={'https://github.com/lobehub/lobe-chat/assets/28616219/da84edc3-46f7-4e2b-a0cd-dc33a98bf5cb'}>
384
-
385
- </Image>
386
-
387
- <Image alt={'Login success status'} src={'https://github.com/lobehub/lobe-chat/assets/28616219/9cb5150d-6e1e-4c59-9a18-4e418dce1a5d'}>
388
-
389
- </Image>
390
-
391
- </Steps>
392
-
393
- ## Appendix
394
-
395
- ### Overview of Server Database Environment Variables
396
-
397
- For easy copying, here is a summary of the environment variables required to configure the server database:
398
-
399
- ```shell
400
- # Specify the service mode as server
401
- NEXT_PUBLIC_SERVICE_MODE=server
402
-
403
- # Postgres database URL
404
- DATABASE_URL=
405
- KEY_VAULTS_SECRET=jgwsK28dspyVQoIf8/M3IIHl1h6LYYceSYNXeLpy6uk=
406
-
407
- # Clerk related configurations
408
- NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_live_xxxxxxxxxxx
409
- CLERK_SECRET_KEY=sk_live_xxxxxxxxxxxxxxxxxxxxxx
410
- CLERK_WEBHOOK_SECRET=whsec_xxxxxxxxxxxxxxxxxxxxxx
411
-
412
- # S3 related configurations
413
- # S3 keys
414
- S3_ACCESS_KEY_ID=9998d6757e276cf9f1edbd325b7083a6
415
- S3_SECRET_ACCESS_KEY=55af75d8eb6b99f189f6a35f855336ea62cd9c4751a5cf4337c53c1d3f497ac2
416
-
417
- # Bucket name
418
- S3_BUCKET=lobechat
419
- # Bucket request endpoint
420
- S3_ENDPOINT=https://0b33a03b5c993fd2f453379dc36558e5.r2.cloudflarestorage.com
421
- # Public access domain for the bucket
422
- NEXT_PUBLIC_S3_DOMAIN=https://s3-for-lobechat.your-domain.com
423
- # Bucket region, such as us-west-1, generally not needed to add, but some service providers may require configuration
424
- # S3_REGION=us-west-1
425
- ```