ddev-rustfs is a DDEV add-on that provides a local, S3-compatible object storage using RustFS.
It is intended for local development setups that expect Storage::disk('s3') to work (e.g. Laravel).
rustfsadmin / rustfsadminFrom a local checkout:
ddev add-on get ./ddev-rustfs
ddev restart
From GitHub (once published):
ddev add-on get <org-or-user>/ddev-rustfs
ddev restart
With a DDEV project name like myproj:
https://myproj.ddev.site:9000https://myproj.ddev.site:9001rustfsadminrustfsadmin.env exampleUse the internal DDEV service hostname (rustfs) for the endpoint:
FILESYSTEM_DISK=s3
AWS_ACCESS_KEY_ID=rustfsadmin
AWS_SECRET_ACCESS_KEY=rustfsadmin
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=rustfs
AWS_ENDPOINT=http://rustfs:9000
AWS_USE_PATH_STYLE_ENDPOINT=true
Notes:
AWS_DEFAULT_REGION can be any non-empty value for local S3-compatible storage.AWS_USE_PATH_STYLE_ENDPOINT=true is recommended for local S3-compatible endpoints.Storage::url() you can optionally set AWS_URL to a routable URL.On startup, the add-on runs a small init container that ensures a bucket exists.
rustfsAWS__DEFAULT_BUCKET (double underscore), e.g. in your project’s .env:AWS__DEFAULT_BUCKET=rustfs
Then set your application’s AWS_BUCKET to the same value.
/data, the add-on runs an init container that chowns the volume to RustFS’ user id 10001.rustfs-data volume.There is a small Bats smoke test in tests/test.bats