Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 22 additions & 1 deletion content/docs/configuration/cdn/s3.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ AWS_ENDPOINT_URL=your_endpoint_url
- **AWS_SECRET_ACCESS_KEY:** Your IAM user's secret key.
- **AWS_REGION:** The AWS region where your S3 bucket is located.
- **AWS_BUCKET_NAME:** The name of the S3 bucket you created.
- **AWS_ENDPOINT_URL:** (Optional) The custom AWS endpoint URL. Required for S3-compatible services such as MinIO, Cloudflare R2, Hetzner Object Storage, and Backblaze B2.
- **AWS_ENDPOINT_URL:** (Optional) The custom AWS endpoint URL. Required for S3-compatible services such as MinIO, Cloudflare R2, Hetzner Object Storage, Backblaze B2, and Tigris.
- **AWS_FORCE_PATH_STYLE:** (Optional) Set to `true` for providers that require path-style URLs (`endpoint/bucket/key`) rather than virtual-hosted-style (`bucket.endpoint/key`). Required for Hetzner Object Storage, MinIO, and similar providers whose SSL certificates don't cover bucket subdomains. Not needed for AWS S3 or Cloudflare R2. Default: `false`.

If you are using **IRSA** on Kubernetes, you do **not** need to set `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` in your environment. The AWS SDK will automatically obtain temporary credentials via the service account assigned to your pod. Ensure that `AWS_REGION` and `AWS_BUCKET_NAME` are still provided.
Expand Down Expand Up @@ -151,3 +151,24 @@ With these steps, your LibreChat application will use Amazon S3 to handle file u
<Callout type="info" title="Note">
Always ensure your AWS credentials remain secure. Do not commit them to a public repository. Adjust IAM policies to follow the principle of least privilege as needed.
</Callout>

## S3-Compatible Providers

The same `fileStrategy: "s3"` configuration works with any S3-compatible service. Set `AWS_ENDPOINT_URL` to the provider's endpoint and adjust credentials accordingly.

### Tigris

[Tigris](https://www.tigrisdata.com/) is S3-compatible object storage with zero egress fees and a free tier (5 GB). Create credentials from the [Tigris Dashboard](https://console.tigris.dev/).

```bash filename=".env"
AWS_ACCESS_KEY_ID=tid_your_access_key
AWS_SECRET_ACCESS_KEY=tsec_your_secret_key
AWS_REGION=auto
AWS_BUCKET_NAME=librechat
AWS_ENDPOINT_URL=https://t3.storage.dev
# AWS_FORCE_PATH_STYLE=false
```

<Callout type="info" title="Note">
Tigris uses virtual-hosted-style addressing by default. Do not set `AWS_FORCE_PATH_STYLE` to `true`.
</Callout>