apps/web/content/docs/s3-config/aws-s3.mdx
TL;DR: Open Cap Desktop → Cap Apps → S3 Config → Configure → Select Amazon S3 → Enter your AWS credentials → Configure bucket permissions → Save and test with a shareable link upload.
Note: While this guide focuses on AWS S3, Cap supports any S3-compatible storage service (like Supabase, MinIO, DigitalOcean Spaces, or Backblaze B2). The setup process is similar - you'll just need the appropriate endpoint URL and credentials from your provider.
Open the Cap Desktop App: Click the Cap icon on your desktop or find it in your applications folder to launch the app.
Navigate to Cap Apps: Once the app is open, locate the 'Cap Apps' tab in Settings.
Click on S3 config
Click on Configure
Select Amazon S3 from the list of available services.
Create S3 Bucket First:
Create IAM Policy:
BUCKET_NAME with your bucket name and paste:{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:ListBucket",
"s3:PutObjectAcl"
],
"Resource": ["arn:aws:s3:::BUCKET_NAME", "arn:aws:s3:::BUCKET_NAME/*"]
}
]
}
Create IAM User:
Configure Bucket Policy:
BUCKET_NAME and YOUR_ACCOUNT_ID):{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "CapDesktopAppAccess",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::YOUR_ACCOUNT_ID:user/cap-app-user"
},
"Action": ["s3:PutObject", "s3:GetObject", "s3:ListBucket"],
"Resource": ["arn:aws:s3:::BUCKET_NAME", "arn:aws:s3:::BUCKET_NAME/*"]
}
]
}
Configure CORS Settings:
[
{
"AllowedHeaders": ["*"],
"AllowedMethods": ["GET", "HEAD", "PUT"],
"AllowedOrigins": [
"https://cap.so",
"https://www.cap.so",
"https://cap.link",
"https://www.cap.link"
],
"ExposeHeaders": [],
"MaxAgeSeconds": 3000
}
]
Once the connection is established and you have saved your configuration, all new shareable links you create will serve images and videos directly from your configured S3 bucket, giving you full control over your content delivery and storage.