Raised: $0
0% of monthly goal Help us cross the finish line!
Goal: $12,000
Raised: $0 Goal: $12,000
0% of monthly goal Help us cross the finish line!
Sponsor DDEV

If you find this add-on useful, please star it on GitHub — stars show appreciation and help maintainers know their work matters.

add-on registry tests last commit release

ddev-versitygw

ddev-versitygw adds VersityGW to a DDEV project as a local S3-compatible object store. The default setup is tuned for Laravel apps that use Flysystem S3 locally.

It exposes three routed endpoints that are reachable over both HTTP and HTTPS:

The container itself is reachable inside the DDEV network as http://versitygw:7070, which is the endpoint Laravel should use.

Installation

ddev add-on get rexlManu/ddev-versitygw
ddev restart

For local development of this add-on itself:

ddev add-on get /path/to/ddev-versitygw
ddev restart

After installation, commit the generated .ddev/docker-compose.versitygw.yaml and .ddev/versitygw/ files in the consuming project.

First-Run Provisioning

On every start, the addon waits for VersityGW to become reachable and then performs idempotent provisioning:

With the defaults, a fresh install is ready for Laravel public asset usage without manual bucket or bucket-policy setup.

Laravel Usage

Use these values in the consuming Laravel app:

FILESYSTEM_DISK=s3
AWS_ACCESS_KEY_ID=versity
AWS_SECRET_ACCESS_KEY=versitysecret
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=local
AWS_USE_PATH_STYLE_ENDPOINT=true
AWS_ENDPOINT=http://versitygw:7070
AWS_URL=https://<project>.ddev.site:17070/local

Notes:

Endpoints

Replace <project> with your real DDEV project name.

Surface URL
S3 API https://<project>.ddev.site:17070
Admin API https://<project>.ddev.site:17071
WebUI https://<project>.ddev.site:17080
Internal Laravel endpoint http://versitygw:7070

The credentials shown by ddev describe default to:

Persistence

The add-on stores object data, versioning data, and IAM data in named Docker volumes:

This keeps local data out of the application repository while persisting across ddev restart.

Customization

Override image or credentials with a project-level .ddev/.env.versitygw file:

ddev dotenv set .ddev/.env.versitygw --versitygw-docker-image="ghcr.io/versity/versitygw:v1.4.1"
ddev dotenv set .ddev/.env.versitygw --versitygw-access-key="versity"
ddev dotenv set .ddev/.env.versitygw --versitygw-secret-key="versitysecret"
ddev dotenv set .ddev/.env.versitygw --versitygw-region="us-east-1"
ddev dotenv set .ddev/.env.versitygw --versitygw-default-bucket="local"
ddev dotenv set .ddev/.env.versitygw --versitygw-public-read="true"
ddev restart

Available variables:

Variable Default
VERSITYGW_DOCKER_IMAGE ghcr.io/versity/versitygw:v1.4.1
VERSITYGW_ACCESS_KEY versity
VERSITYGW_SECRET_KEY versitysecret
VERSITYGW_REGION us-east-1
VERSITYGW_DEFAULT_BUCKET local
VERSITYGW_PUBLIC_READ true

Verification

Useful checks in a consuming project:

ddev describe
ddev logs -s versitygw
curl -k -I https://<project>.ddev.site:17080

To verify public asset behavior end to end, write a file into the configured bucket and fetch it via AWS_URL/<key>.

Upstream Notes

This add-on uses the published VersityGW container image and its documented environment-driven startup contract:

The add-on image layers the AWS CLI on top of the published VersityGW image so it can provision the default bucket and public-read policy automatically at startup using standard S3 API calls.

Default image pin: ghcr.io/versity/versitygw:v1.4.1

Contributing

Local validation workflow:

ddev add-on get /path/to/ddev-versitygw
ddev restart

Then verify:

The GitHub Actions matrix in .github/workflows/tests.yml is the canonical CI coverage for the add-on.

Release Checklist

For a publishable release:

  1. Push the repository to rexlManu/ddev-versitygw.
  2. Make sure the repository description and ddev-get topic are set on GitHub.
  3. Let the tests workflow pass on main.
  4. Create a GitHub release with a semver tag.
  5. After the release is live, verify ddev add-on get rexlManu/ddev-versitygw in a fresh DDEV project.

If you find this add-on useful, please star it on GitHub — stars show appreciation and help maintainers know their work matters.