Replace Minio with Managed S3 using Self-Hosted Budibase #7609
memarius
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hey fellow Budibasers,
since S3 storage is so cheap and I feel like it makes self-hosting much easier and flexible, I looked into ways to replace Minio with a managed S3-Compatible Service.
I just wanna share what currently works for me in this post. No guarantees for anything and of course thank you for the budibase team and contributors for your great work so far.
I am using Nginx Reverse Proxy Manager and Nginx S3 Gateway in addition to Budibase. All is containerized and managed in Portainer (docker-compose)
Basically the Nginx S3 Gateway(s) proxy requests to the underlying remote S3 service. Nginx Reverse Proxy Manager is what I use determine which request to send to which S3 Gateway. However you could do it with only the existing Budibase nginx proxy.
Replace Minio Connection Information & Credentials
Containers bbapps & bbworker: The environment variables
MINIO_URL
,MINIO_ACCESS_KEY
andMINIO_SECRET_KEY
have to be updated to the credentials of the remote S3 service.Nginx S3 Gateways
I am using an S3 compatible service, not native S3. Maybe that is the reason I am seeing 3 different buckets instead of folders for the high level file structure on S3. For each of the buckets
templates
,global
andprod-budi-app-assets
there is one corresponding container of Nginx S3 Gateway with the following parameters:Nginx Reverse Proxy Manager
Adding to my existing Proxy Host for Budibase I created 3 custom locations. One for each bucket rewriting to the respective s3 gateway container.
Reference Screenshot Configuration below
App Assets Location
Location:
/prod-budi-app-assets
Scheme / Forward Hostname / Forward Port: Whatever your container and network configuration is
Extra Config:
rewrite ^/prod-budi-app-assets(.*)$ $1 break;
Templates Location
Location:
/templates
Scheme / Forward Hostname / Forward Port: Whatever your container and network configuration is
Extra Config:
rewrite ^/templates(.*)$ $1 break;
Global Location
Location:
/global
Scheme / Forward Hostname / Forward Port: Whatever your container and network configuration is
Extra Config:
rewrite ^/global(.*)$ $1 break;
Beta Was this translation helpful? Give feedback.
All reactions