Skip to main content
By default Openinary stores files on local disk. Set the STORAGE_* variables to switch to any S3-compatible provider.
All STORAGE_* variables also accept the S3_* prefix (e.g. S3_REGION = STORAGE_REGION).

Parameters

ParameterDescription
STORAGE_REGIONS3 region
STORAGE_ACCESS_KEY_IDAccess key ID
STORAGE_SECRET_ACCESS_KEYSecret access key
STORAGE_BUCKET_NAMEBucket name
STORAGE_ENDPOINTCustom endpoint (non-AWS providers)
STORAGE_PUBLIC_URLPublic URL or CDN domain
STORAGE_MAX_SOCKETSMax concurrent HTTP connections
STORAGE_CONNECTION_TIMEOUTConnection timeout (ms)
STORAGE_REQUEST_TIMEOUTRequest timeout (ms)
STORAGE_SOCKET_TIMEOUTSocket timeout (ms)

Quick-start configs

STORAGE_REGION=us-east-1
STORAGE_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
STORAGE_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
STORAGE_BUCKET_NAME=my-openinary-bucket
STORAGE_PUBLIC_URL=https://my-openinary-bucket.s3.us-east-1.amazonaws.com
No STORAGE_ENDPOINT needed for AWS S3.
The provider is detected automatically: set STORAGE_ENDPOINT for any non-AWS provider. Leave it unset for standard AWS S3.

Parameter reference

STORAGE_REGION
string
S3 region identifier.us-east-1 · eu-west-1 · auto (Cloudflare R2)Alternative: S3_REGION
STORAGE_ACCESS_KEY_ID
string
required
Access key ID for your storage provider.Alternative: S3_ACCESS_KEY_ID
Never commit credentials to version control.
STORAGE_SECRET_ACCESS_KEY
string
required
Secret access key for your storage provider.Alternative: S3_SECRET_ACCESS_KEY
Never expose in logs or client-side code.
STORAGE_BUCKET_NAME
string
required
Name of the bucket where files are stored.Alternative: S3_BUCKET_NAME
STORAGE_ENDPOINT
string
Custom endpoint for non-AWS S3-compatible providers. Omit for standard AWS S3.
ProviderEndpoint format
Cloudflare R2https://<account-id>.r2.cloudflarestorage.com
MinIOhttp://minio.example.com:9000
DigitalOcean Spaceshttps://nyc3.digitaloceanspaces.com
Wasabihttps://s3.wasabisys.com
Alternative: S3_ENDPOINT
STORAGE_PUBLIC_URL
string
Public base URL used to construct file URLs. Set this to your CDN or custom domain when you don’t want to expose raw S3 URLs.https://cdn.example.com · https://my-bucket.s3.us-east-1.amazonaws.comAlternative: S3_PUBLIC_URL

Advanced parameters

STORAGE_MAX_SOCKETS
integer
default:"50"
Max simultaneous HTTP connections to the storage provider. Increase if you see connection pool exhaustion under load.50 (default) · 100 (high traffic) · 25 (low resource)
STORAGE_CONNECTION_TIMEOUT
integer
default:"0"
Connection timeout in ms. 0 = no timeout.0 · 5000 (5 s) · 10000 (10 s)
STORAGE_REQUEST_TIMEOUT
integer
default:"0"
Request timeout in ms. 0 = no timeout. For large uploads, use 300000 (5 min) or higher.0 · 30000 (30 s) · 300000 (5 min)
STORAGE_SOCKET_TIMEOUT
integer
default:"0"
TCP socket timeout in ms. 0 = no timeout.0 · 60000 (1 min) · 120000 (2 min)

Quick Start

Run Openinary with local or S3 storage.

Upload & Cache Warming

Upload files and prewarm transformation cache.