Document how to use S3 #56

Closed
opened 2026-02-15 19:15:50 -05:00 by yindo · 8 comments
Owner

Originally created by @hongbo-miao on GitHub (Feb 4, 2025).

Thanks for https://github.com/open-webui/open-webui/issues/5763!

Currently I cannot find any S3 related info in https://github.com/open-webui/helm-charts/blob/main/charts/open-webui/values.yaml
It would be great to document how to use S3, thanks! ☺️

Originally created by @hongbo-miao on GitHub (Feb 4, 2025). Thanks for https://github.com/open-webui/open-webui/issues/5763! Currently I cannot find any S3 related info in https://github.com/open-webui/helm-charts/blob/main/charts/open-webui/values.yaml It would be great to document how to use S3, thanks! ☺️
yindo added the enhancementdocumentationhelp wanted labels 2026-02-15 19:15:50 -05:00
yindo closed this issue 2026-02-15 19:15:50 -05:00
Author
Owner

@westbrook-ai commented on GitHub (Feb 9, 2025):

Hi @hongbo-miao, thanks for submitting this. It looks like the relevant settings are:

The easiest way to start would probably be to use the extraEnvVars values to configure these. If you wanted to open a PR with an example after you've tested the setup, you could leave commented out values under extraEnvVars in values.yaml.

Alternatively we could take this further and add to the Helm templates to support S3, with possible values looking something like the below:

storageProvider:
  provider: local | s3 | gcs 
  envVars:
    gcs_bucket_name: <name>  # if using GCS
    s3_access_key: <key ID> # if using AWS
    ...other S3 values

PRs or other ideas are welcome here, as I've never tested the S3 configuration and don't know how widely used it is. Thanks!

@westbrook-ai commented on GitHub (Feb 9, 2025): Hi @hongbo-miao, thanks for submitting this. It looks like the relevant settings are: - Set the `STORAGE_PROVIDER` env var to `s3`: https://docs.openwebui.com/getting-started/env-configuration#amazon-s3-storage - Set the following S3 environment variables: https://docs.openwebui.com/getting-started/env-configuration#amazon-s3-storage The easiest way to start would probably be to use the `extraEnvVars` values to configure these. If you wanted to open a PR with an example after you've tested the setup, you could leave commented out values under `extraEnvVars` in `values.yaml`. Alternatively we could take this further and add to the Helm templates to support S3, with possible values looking something like the below: ``` storageProvider: provider: local | s3 | gcs envVars: gcs_bucket_name: <name> # if using GCS s3_access_key: <key ID> # if using AWS ...other S3 values ``` PRs or other ideas are welcome here, as I've never tested the S3 configuration and don't know how widely used it is. Thanks!
Author
Owner

@JoeChen2me commented on GitHub (Feb 15, 2025):

I have identified a problem: S3 storage is limited to AWS S3 and does not support other compatible services such as Cloudflare R2, particularly concerning the configuration of the S3_REGION_NAME environment variable.

@JoeChen2me commented on GitHub (Feb 15, 2025): I have identified a problem: S3 storage is limited to AWS S3 and does not support other compatible services such as Cloudflare R2, particularly concerning the configuration of the S3_REGION_NAME environment variable.
Author
Owner

@hongbo-miao commented on GitHub (Mar 5, 2025):

(Hi @JoeChen2me for Cloudflare R2, definitely worth opening another feature request in a different ticket ☺️)

@hongbo-miao commented on GitHub (Mar 5, 2025): (Hi @JoeChen2me for Cloudflare R2, definitely worth opening another feature request in a different ticket ☺️)
Author
Owner

@hongbo-miao commented on GitHub (Mar 5, 2025):

Hi @0xThresh (or @JoeChen2me),

Do we still need a Persistent Volume if we are using S3?

I originally opened this issue to request S3 support for uploaded files, and it was marked as completed. However, I noticed that @JoeChen2me’s ticket (#10146) was closed. Also, since Open WebUI uses a StatefulSet instead of a Deployment (ref), I am a bit confused now.

Ideally, I’d love for Open WebUI to remain stateless so we can scale multiple replicas easily. Could you clarify how storage works in this case?

Thanks!

@hongbo-miao commented on GitHub (Mar 5, 2025): Hi @0xThresh (or @JoeChen2me), Do we still need a Persistent Volume if we are using S3? I originally opened [this issue](https://github.com/open-webui/open-webui/issues/5763) to request S3 support for uploaded files, and it was marked as completed. However, I noticed that @JoeChen2me’s ticket ([#10146](https://github.com/open-webui/open-webui/issues/10146)) was closed. Also, since Open WebUI uses a StatefulSet instead of a Deployment ([ref](https://github.com/open-webui/helm-charts/issues/152)), I am a bit confused now. Ideally, I’d love for Open WebUI to remain stateless so we can scale multiple replicas easily. Could you clarify how storage works in this case? Thanks!
Author
Owner

@JoeChen2me commented on GitHub (Mar 5, 2025):

@hongbo-miao I 've tested the file upload with S3 storage such as Cloudflare R2. The conclusion is that OpenWebUI supports CloudflareR2 storage. But there is one issue that makes me confused: after you configured S3 storage, openwebui will save a local copy while uploading files to the s3 storage. I don't understand the logic of it . Why it still leave a copy in the local storage ?

@JoeChen2me commented on GitHub (Mar 5, 2025): @hongbo-miao I 've tested the file upload with S3 storage such as Cloudflare R2. The conclusion is that OpenWebUI supports CloudflareR2 storage. But there is one issue that makes me confused: after you configured S3 storage, openwebui will save a local copy while uploading files to the s3 storage. I don't understand the logic of it . Why it still leave a copy in the local storage ?
Author
Owner

@hongbo-miao commented on GitHub (Mar 5, 2025):

Thanks @JoeChen2me when you say local storage, is it local storage on pod or Persistent Volume? When using S3, do you still have to have to use this?

persistence:
  enabled: true

If that is case, yeah, that means the pod is still not stateless. 🥲

@hongbo-miao commented on GitHub (Mar 5, 2025): Thanks @JoeChen2me when you say local storage, is it local storage on pod or Persistent Volume? When using S3, do you still have to have to use this? ``` persistence: enabled: true ``` If that is case, yeah, that means the pod is still not stateless. 🥲
Author
Owner

@biishan commented on GitHub (Apr 2, 2025):

Thanks @JoeChen2me when you say local storage, is it local storage on pod or Persistent Volume? When using S3, do you still have to have to use this?

persistence:
  enabled: true

If that is case, yeah, that means the pod is still not stateless. 🥲

Facing same issue. It's persistent volume. The files shouldn't be storing in PV when S3 provider is configured.

@biishan commented on GitHub (Apr 2, 2025): > Thanks [@JoeChen2me](https://github.com/JoeChen2me) when you say local storage, is it local storage on pod or Persistent Volume? When using S3, do you still have to have to use this? > > ``` > persistence: > enabled: true > ``` > > If that is case, yeah, that means the pod is still not stateless. 🥲 Facing same issue. It's persistent volume. The files shouldn't be storing in PV when S3 provider is configured.
Author
Owner

@westbrook-ai commented on GitHub (Apr 13, 2025):

Give the latest chart a try, some of this should be addressed in a community PR that was just merged: https://github.com/open-webui/helm-charts/pull/221

@westbrook-ai commented on GitHub (Apr 13, 2025): Give the latest chart a try, some of this should be addressed in a community PR that was just merged: https://github.com/open-webui/helm-charts/pull/221
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: open-webui/helm-charts#56