S3 Storage
FluxNow provisions S3-compatible object storage, backed by Garage, when you enable it.
What you get
Section titled “What you get”- Garage — an S3-compatible object storage server
- A dedicated bucket per app (with a 1 GiB quota)
- Injected credentials — no manual setup required
Enabling S3 storage
Section titled “Enabling S3 storage”Add s3.enabled: true to your fluxnow.yaml — at the top level for a single-service
repo, or under the app’s spec for a monorepo (each app opts in independently):
# fluxnow.yaml (single service)s3: enabled: true# fluxnow.yaml (monorepo)apps: - name: api path: apps/api spec: runtime: node port: 3000 s3: enabled: trueAbsent or false means no bucket is provisioned — the setting is fully opt-in.
Environment variables
Section titled “Environment variables”FluxNow injects the credentials at deploy time under a broad set of aliases so any SDK
works unchanged — the AWS convention (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY,
AWS_REGION, AWS_ENDPOINT_URL_S3, AWS_S3_BUCKET), the generic S3_* convention, and
BUCKET_NAME. The core values:
| Variable | Description |
|---|---|
S3_ENDPOINT / AWS_ENDPOINT_URL_S3 | The in-cluster S3 API endpoint |
S3_ACCESS_KEY_ID / AWS_ACCESS_KEY_ID | Access key for authentication |
S3_SECRET_ACCESS_KEY / AWS_SECRET_ACCESS_KEY | Secret key for authentication |
S3_REGION / AWS_REGION | Region name |
S3_BUCKET / AWS_S3_BUCKET / BUCKET_NAME | The bucket name |
Point any AWS S3 SDK at the endpoint and it just works. You never set these yourself.
Preview environments
Section titled “Preview environments”S3 is not provisioned for per-PR preview environments — there are no per-preview buckets, so a preview never shares (or can overwrite) your staging objects. Provisioning happens for your staging (and production) environment.