Quick Start
The Multistore proxy is a multi-runtime S3 gateway that proxies requests to backend object stores. This guide gets you running locally in minutes.
Prerequisites
Start the Backend
Use Docker Compose to start MinIO as a local object store:
bash
docker compose upThis starts:
- MinIO API on port
9000 - MinIO Console on port
9001(user:minioadmin, password:minioadmin) - A seed job that creates example buckets with test data
Run the Proxy
Choose either the native server runtime or Cloudflare Workers:
bash
cargo run -p multistore-server -- \
--config config.local.toml \
--listen 0.0.0.0:8080bash
cd examples/cf-workers && npx wrangler devThe server runtime listens on port 8080. The Workers runtime listens on port 8787.
Make Your First Request
bash
# Anonymous read from a public bucket
curl http://localhost:8080/public-data/hello.txt
# Signed upload with the local dev credential
AWS_ACCESS_KEY_ID=AKLOCAL0000000000001 \
AWS_SECRET_ACCESS_KEY="localdev/secret/key/00000000000000000000" \
aws s3 cp ./myfile.txt s3://private-uploads/myfile.txt \
--endpoint-url http://localhost:8080Next Steps
- Local Development — Detailed dev environment setup
- Configuration — Configuring buckets, roles, and credentials
- Authentication — Setting up auth flows
- Deployment — Deploying to production