Storage Options
Local Storage
Default optionFiles stored on container filesystem:
- Simple setup
- No external dependencies
- Requires persistent volumes
- Limited scalability
S3 Storage
Recommended for productionFiles stored in S3-compatible object storage:
- Unlimited scalability
- High availability
- Geographic distribution
- Managed backups
Local Storage
Configuration
Local storage is the default. Files are stored in/usr/src/app/cache:
.env
Docker Volume
Mount a volume to persist files:docker-compose.yml
docker-compose.yml
Kubernetes Persistent Volume
values.yaml
Limitations
S3 Storage
Supported Services
Activepieces works with any S3-compatible service:- AWS S3
- MinIO
- Cloudflare R2
- DigitalOcean Spaces
Amazon Simple Storage Service
.env
Configuration
enum
required
Storage backendOptions:
local, s3string
required
S3 bucket nameCreate bucket before deploying Activepieces.
string
required
AWS access key ID or equivalent
Not required if using
AP_S3_USE_IRSA=true on EKS.string
required
AWS secret access key or equivalent
string
required
S3 regionExamples:
us-east-1, eu-west-1, auto (for Cloudflare R2)string
Custom endpoint for S3-compatible servicesLeave empty for AWS S3
boolean
default:"false"
Generate pre-signed URLs for file downloadsEnable for private buckets:
boolean
default:"false"
Use IAM Roles for Service Accounts (EKS)
When enabled, no access key/secret required. Authentication uses pod IAM role.
S3 Setup Guide
AWS S3
1
Create S3 bucket
- Go to S3 service
- Click “Create bucket”
- Enter bucket name:
activepieces-files - Select region:
us-east-1 - Keep default settings
- Click “Create bucket”
2
Configure bucket policy
For public access (not recommended):For private access (recommended), use signed URLs:
3
Create IAM user
Create IAM user with S3 access:Generate access keys and add to
IAM Policy
.env.4
Configure Activepieces
.env
MinIO (Self-Hosted)
1
Deploy MinIO
docker-compose.yml
2
Create bucket
Access MinIO Console at http://localhost:9001Login with:
- Username:
minioadmin - Password:
minioadmin
activepieces3
Configure Activepieces
.env
EKS with IRSA
Use IAM Roles for Service Accounts (no credentials needed):1
Create IAM policy
2
Create IAM role
3
Configure Helm
values.yaml
File Structure
Files are organized by platform and project:s3-helper.ts:13):
FILE: User-uploaded filesFLOW_RUN_LOG: Execution logsSTEP_FILE: Step output filesPACKAGE_ARCHIVE: Piece package archives
File Operations
Activepieces uses the AWS SDK for S3 operations (source:s3-helper.ts):
Upload
PutObjectCommand.
Download
GetObjectCommand.
Signed URLs
Delete
Monitoring
Storage Usage
- Local Storage
- S3 Storage
Check disk usage:
Cleanup
Configure lifecycle policies to automatically delete old files:- S3 Lifecycle
- MinIO Lifecycle
Migration
Local to S3
1
Setup S3 bucket
Create and configure S3 bucket as described above.
2
Sync existing files
3
Update configuration
.env
4
Restart Activepieces
Troubleshooting
S3 connection errors
S3 connection errors
Test S3 configuration:Check logs:
Access denied errors
Access denied errors
Verify IAM permissions include:
s3:PutObjects3:GetObjects3:DeleteObjects3:ListBucket
Signed URLs not working
Signed URLs not working
Enable signed URLs:Verify bucket is private (not public).Check URL expiration (7 days default).
Files not persisting (local)
Files not persisting (local)
Ensure volume is mounted:Recreate with volume:
Best Practices
Use S3 for Production
Always use S3-compatible storage for production deployments with:
- Multiple replicas
- High availability requirements
- Large file volumes
Enable Versioning
Enable S3 bucket versioning to protect against accidental deletion:
Use Signed URLs
Keep buckets private and use pre-signed URLs:
Configure Lifecycle
Automatically delete old logs and temporary files to reduce costs.
Next Steps
Environment Variables
Complete S3 configuration reference
Database
Configure PostgreSQL
Scaling
Scale file storage
Backup
Backup S3 files