Storage configuration
Synjar stores uploaded documents in S3-compatible object storage.
Supported providers
- AWS S3
- Backblaze B2 (recommended for cost)
- MinIO (self-hosted)
- Google Cloud Storage (S3 compatibility)
- DigitalOcean Spaces
- Any S3-compatible service
Environment variables
| Variable | Description |
|---|---|
B2_KEY_ID | Access key ID |
B2_APPLICATION_KEY | Secret access key |
B2_BUCKET_NAME | Bucket name |
B2_ENDPOINT | S3 endpoint URL |
Provider configurations
Backblaze B2
B2_KEY_ID=your-key-id
B2_APPLICATION_KEY=your-application-key
B2_BUCKET_NAME=synjar-documents
B2_ENDPOINT=s3.us-west-004.backblazeb2.com
AWS S3
B2_KEY_ID=AKIAIOSFODNN7EXAMPLE
B2_APPLICATION_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
B2_BUCKET_NAME=synjar-documents
B2_ENDPOINT=s3.us-east-1.amazonaws.com
MinIO (self-hosted)
B2_KEY_ID=minioadmin
B2_APPLICATION_KEY=minioadmin
B2_BUCKET_NAME=synjar-documents
B2_ENDPOINT=http://localhost:9000
DigitalOcean Spaces
B2_KEY_ID=your-spaces-key
B2_APPLICATION_KEY=your-spaces-secret
B2_BUCKET_NAME=synjar-documents
B2_ENDPOINT=nyc3.digitaloceanspaces.com
Bucket setup
Creating a bucket
Most providers have web consoles for bucket creation. Via CLI:
# AWS CLI
aws s3 mb s3://synjar-documents
# MinIO CLI
mc mb minio/synjar-documents
Bucket permissions
Synjar needs these permissions:
s3:PutObject- Upload filess3:GetObject- Download filess3:DeleteObject- Delete filess3:ListBucket- List files
CORS configuration
For web uploads, configure CORS on your bucket:
{
"CORSRules": [
{
"AllowedOrigins": ["https://yourdomain.com"],
"AllowedMethods": ["GET", "PUT", "POST"],
"AllowedHeaders": ["*"],
"MaxAgeSeconds": 3600
}
]
}
Storage sizing
| Documents | Estimated storage |
|---|---|
| 100 | ~500 MB |
| 1,000 | ~5 GB |
| 10,000 | ~50 GB |
Backup storage
For backups, use a separate bucket:
BACKUP_B2_KEY_ID=backup-key-id
BACKUP_B2_APP_KEY=backup-app-key
BACKUP_B2_BUCKET_NAME=synjar-backups
BACKUP_B2_ENDPOINT=s3.us-west-004.backblazeb2.com
See Backup guide for details.
Troubleshooting
Access denied
- Verify credentials are correct
- Check bucket permissions
- Ensure bucket name matches exactly
Connection timeout
- Verify endpoint URL is correct
- Check network connectivity
- Ensure firewall allows outbound S3 traffic
Upload failures
- Check file size limits
- Verify bucket isn't full
- Check bucket CORS settings