mirror of
https://github.com/lobehub/lobehub.git
synced 2026-09-20 04:56:13 +08:00
191f3fe776
* 📝 docs: fix outdated content across the docs site Audited docs/ against the current codebase and fixed stale content that drifted after major refactors (Clerk/NextAuth → Better Auth, src/server → apps/server, src/{config,envs,locales} → packages/*, model-bank updates). - self-hosting/auth: mark removed NextAuth/Clerk pages with deprecation warnings; fix microsoft/zitadel alias claims and the Logto callback path - environment-variables & advanced: correct wrong defaults (S3_SET_ACL, AI_IMAGE_DEFAULT_IMAGE_NUM, index/proxy URLs), drop non-existent env vars and fictional feature flags, fix OIDC config guidance - development: update refactored paths, Better Auth, .mjs configs, remove the MSW section (msw is not a dependency) - providers & model examples: replace retired model ids with in-bank ones; fix comfyui frontmatter corruption - usage: rename Moderator→Orchestrator, GTD→Task, correct shortcut keys, channel capability tables, Feishu/Lark WebSocket mode - platform/migration: fix dead links, docker service name, npx/npm → bun EN and zh-CN pairs updated together. * 📝 docs: fix Logto callback path and AUTH_SECRET deprecation guidance - Revert Logto/Sealos callback URLs to /api/auth/callback/logto to match the runtime SSO redirectURI override - Narrow legacy auth Callout: AUTH_SECRET remains required for Better Auth; mark NEXT_AUTH_SECRET as deprecated in zh-CN * 📝 docs: refresh agent skills for locales, env, auth, and agentRun paths Align OSS agent guidance with post-refactor layout: - packages/locales/src/default + bun run i18n - packages/env/src for env schemas (@/envs alias) - spa-auth shell + src/routes/auth segments - chat agentRun/transports/hetero instead of aiChat * 📝 docs: document APP_URL as required for Better Auth base URL Self-hosted auth uses appEnv.APP_URL as baseURL, not request-header auto-detection. NEXT_PUBLIC_AUTH_URL remains deprecated. * 📝 docs: note self-host search provider setup for web search Built-in lobe-web-browsing needs no client plugin, but self-hosted servers still require SEARCH_PROVIDERS / SEARXNG_URL (default SearXNG). * 📝 docs: point feature guide welcome UI at AgentHome Opening message/questions on the agent chat page live in src/features/AgentHome, not Onboarding WelcomeMessage.
84 lines
4.1 KiB
Plaintext
84 lines
4.1 KiB
Plaintext
---
|
|
title: Configuring S3 Storage Service for AI - LobeHub
|
|
description: Learn how to configure S3 storage for LobeHub's multimodal AI conversations.
|
|
tags:
|
|
- S3 Storage
|
|
- LobeHub
|
|
- AI Conversations
|
|
- Cloud Storage
|
|
- Image Upload
|
|
---
|
|
|
|
# Configuring S3 Storage Service
|
|
|
|
LobeHub has supported multimodal AI conversations since [a long time ago](https://x.com/lobehub/status/1724289575672291782), which involves the function of uploading images to AI. In the client-side database solution, image files are stored as binary data directly in the browser's IndexedDB database. However, this solution is not feasible in the server-side database. Storing file-like data directly in Postgres would greatly waste database storage space and slow down computational performance.
|
|
|
|
The best practice in this area is to use a file storage service (S3) to store image files. S3 is also the storage solution on which the file upload/knowledge base function depends.
|
|
|
|
<Callout type={'info'}>
|
|
In this documentation, S3 refers to a compatible S3 storage solution, which supports the Amazon S3
|
|
API for object storage systems. Common examples include Cloudflare R2, Alibaba Cloud OSS, and
|
|
self-deployable RustFS, all of which support the S3 compatible API.
|
|
</Callout>
|
|
|
|
## Core Environment Variables
|
|
|
|
<Steps>
|
|
### `S3_ACCESS_KEY_ID` and `S3_SECRET_ACCESS_KEY`
|
|
|
|
These are the two keys required by all S3 compatible storage services to access the S3 storage service, not detailed here.
|
|
|
|
### `S3_ENDPOINT`
|
|
|
|
The request endpoint of the storage bucket. Note that this link should not contain the name of the storage bucket.
|
|
|
|
<Callout type={'warning'}>
|
|
`S3_ENDPOINT` must remove the suffix path, otherwise the uploaded files will not be accessible
|
|
</Callout>
|
|
|
|
For example, for Cloudflare:
|
|
|
|
```shell
|
|
S3_ENDPOINT=https://0b33a03b5c993fd2f453379dc36558e5.r2.cloudflarestorage.com
|
|
```
|
|
|
|
### `S3_BUCKET` and `S3_REGION`
|
|
|
|
The name and region of the storage bucket. `S3_BUCKET` is required to specify the name of the storage bucket. `S3_REGION` is optional and is used to specify the region of the storage bucket. Generally, it does not need to be added, but some service providers may require configuration.
|
|
|
|
### `S3_SET_ACL`
|
|
|
|
Whether to set the ACL to `public-read` when uploading files. This option is disabled by default; the ACL is only set when `S3_SET_ACL` is explicitly configured to `1`. If the service provider does not support setting individual ACLs for files (i.e., all files inherit the ACL of the storage bucket), enabling this option may cause request errors.
|
|
|
|
### `S3_ENABLE_PATH_STYLE`
|
|
|
|
Whether to enable the `path-style` access mode of S3. This option is disabled by default. If your S3 service provider uses `path-style`, set `S3_ENABLE_PATH_STYLE` to `1` to enable it.
|
|
|
|
<Callout type={'info'}>
|
|
`path-style` and `virtual-host` are different ways to access buckets and objects in S3, with different URL structures and domain name resolutions.
|
|
|
|
Assuming the domain name of the S3 service provider is s3.example.net, the bucket is mybucket, and the object is config.env, the specific differences are as follows:
|
|
|
|
- path-style: `s3.example.net/mybucket/config.env`
|
|
- virtual-host: `mybucket.s3.example.net/config.env`
|
|
</Callout>
|
|
|
|
<Callout type={'tip'}>
|
|
Common S3 cloud service providers often default to the `virtual-host` mode, while self-deployed services like RustFS default to using `path-style`. Therefore, if you use RustFS as the S3 service, you need to set `S3_ENABLE_PATH_STYLE=1`.
|
|
</Callout>
|
|
</Steps>
|
|
|
|
## S3 Configuration Guide
|
|
|
|
Currently, the S3 configuration tutorials included in the documentation are:
|
|
|
|
<Cards>
|
|
<Card href={'/docs/self-hosting/advanced/s3/cloudflare-r2'} title={'Cloudflare R2'} />
|
|
|
|
<Card href={'/docs/self-hosting/advanced/s3/tencent-cloud'} title={'Tencent Cloud COS'} />
|
|
|
|
<Card href={'/docs/self-hosting/advanced/s3/rustfs'} title={'RustFS'} />
|
|
</Cards>
|
|
|
|
Click to view the tutorial for the corresponding platform. If the above tutorials do not include the S3 service provider you are using, feel free to submit a Pull Request to collectively improve the guide on S3 object storage.
|