Files
YuTengjing 191f3fe776 📝 docs: fix outdated content across the docs site (#16964)
* 📝 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.
2026-07-10 17:50:03 +08:00

98 lines
2.8 KiB
Plaintext

---
title: Configuring S3 Storage Service
description: >-
Learn how to configure S3 storage service to support multimodal AI sessions
and image uploads.
tags:
- S3 Storage
- Multimodal AI
- Image Upload
- File Storage
---
# Configuring S3 Storage Service
LobeHub supports multimodal AI sessions, including the ability to upload unstructured data such as images and files to large language models. To optimize storage and performance, we use S3-compatible file storage services to store image files and support file upload/knowledge base functionality.
## Core Environment Variables
### `S3_ACCESS_KEY_ID`
- Type: Required
- Description: Access key ID for S3 storage service
- Default: -
- Example: `AKIAIOSFODNN7EXAMPLE`
### `S3_SECRET_ACCESS_KEY`
- Type: Required
- Description: Secret access key for S3 storage service
- Default: -
- Example: `wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`
### `S3_ENDPOINT`
- Type: Required
- Description: Request endpoint for the bucket; for `virtual-host` mode, should not include the bucket name prefix
- Default: -
- Example: `https://cos.ap-chengdu.myqcloud.com`
### `S3_BUCKET`
- Type: Required
- Description: Name of the storage bucket
- Default: -
- Example: `my-bucket`
### `S3_REGION`
- Type: Optional
- Description: Region of the storage bucket
- Default: -
- Example: `ap-chengdu`
### `S3_SET_ACL`
- Type: Optional
- Description: Whether to set ACL to `public-read` when uploading files
- Default: `-` (disabled; the ACL is only set when explicitly configured to `1`)
- Example: `1`
### `S3_ENABLE_PATH_STYLE`
- Type: Optional
- Description: Whether to enable S3 `path-style` access mode
- Default: `0`
- Example: `1`
<Callout type={'info'}>
`path-style` and `virtual-host` are different methods of accessing buckets and objects in S3, with differences in URL structure and domain name resolution.
Assuming the S3 service provider's domain is s3.example.net, the bucket is mybucket, and the object is config.env, the specific differences are:
- path-style: `s3.example.net/mybucket/config.env`
- virtual-host: `mybucket.s3.example.net/config.env`
</Callout>
### `LLM_VISION_IMAGE_USE_BASE64`
- Type: Optional
- Description: Set to `1` to use base64 encoding for image upload.
- Default: undefined
- Example: `1`
When set to `1`, LobeHub will convert images to base64 encoding before uploading them to the LLM model. When encountering the following error, please consider configuring this environment variable to `1`:
```log
Route: [xai] ProviderBizError: Fetching images over plain http:// is not supported.
```
### `LLM_VISION_VIDEO_USE_BASE64`
- Type: Optional
- Description: Set to `1` to use base64 encoding for video upload.
- Default: undefined
- Example: `1`
When set to `1`, LobeHub will convert videos to base64 encoding before uploading them to the LLM model.