Skip to main content

Storage Overview

BFFless supports multiple storage backends with a unified interface. Choose the provider that best fits your deployment needs.

Quick Start

Deployment TypeRecommended ProviderGuide
DevelopmentLocal or MinIOMinIO Setup
Small ProductionMinIO or S3AWS S3 Setup
AWS DeploymentAWS S3AWS S3 Setup
GCP DeploymentGoogle Cloud StorageGoogle Cloud Storage Setup
Azure DeploymentAzure Blob StorageAzure Blob Storage Setup
Self-HostedMinIOMinIO Setup

Storage Provider Guides

Cloud Providers

Self-Hosted

  • MinIO Setup - Self-hosted S3-compatible object storage

Additional Guides

Feature Comparison

FeatureLocalMinIOS3GCSAzure
Self-hostedYesYesNoNoNo
Presigned URLsNoYesYesYesYes
VersioningNoYesYesYesYes
Lifecycle PoliciesNoYesYesYesYes
CDN IntegrationManualManualCloudFrontCloud CDNAzure CDN
CostFreeFree*Pay-per-usePay-per-usePay-per-use
Managed ServiceNoNoYesYesYes
SLAN/AN/A99.9%99.9%99.9%

*MinIO is free software; infrastructure costs apply.

Architecture

Common Patterns

Development Setup

# Use local storage or MinIO
STORAGE_TYPE=local
LOCAL_STORAGE_PATH=/data/bffless-storage

# Or with MinIO (recommended)
pnpm dev:services # Starts PostgreSQL + MinIO

Production Setup

# AWS S3
STORAGE_TYPE=s3
S3_REGION=us-east-1
S3_BUCKET=my-bffless-bucket
S3_ACCESS_KEY_ID=AKIA...
S3_SECRET_ACCESS_KEY=...

# With caching
CACHE_ENABLED=true
CACHE_TYPE=redis
REDIS_HOST=redis.example.com

Multi-Region Setup

For global deployments, consider:

  1. Multi-region storage (GCS multi-region, S3 Cross-Region Replication)
  2. CDN for edge caching (CloudFront, Cloud CDN, Azure CDN)
  3. Regional BFFless instances with shared database

Security Checklist

  • Use IAM roles/Managed Identity when possible (avoid static keys)
  • Enable encryption at rest
  • Block public access (use presigned/SAS URLs)
  • Enable audit logging
  • Rotate credentials regularly
  • Use least-privilege permissions
  • Enable versioning for data protection
  • Configure lifecycle policies for cost optimization

Troubleshooting

See individual provider guides for specific troubleshooting. Common issues:

  1. Connection Failed - Check credentials and network connectivity
  2. Access Denied - Verify IAM permissions
  3. Slow Performance - Enable caching, consider CDN
  4. High Costs - Review storage classes and lifecycle policies

Getting Help

  • Check the specific provider guide for detailed troubleshooting
  • Review BFFless logs: docker logs bffless-backend
  • Test storage connection: Settings → Storage → Test Connection
  • GitHub Issues