Storage Destinations
Storage destinations define where FireBackup stores your backup data. FireBackup supports multiple cloud storage providers, allowing you to choose based on cost, compliance, or redundancy requirements.
Supported Storage Providers
| Provider | Type | Best For |
|---|---|---|
| Amazon S3 | Object Storage | AWS-centric infrastructure |
| Google Cloud Storage | Object Storage | GCP integration, Firebase alignment |
| DigitalOcean Spaces | S3-compatible | Cost-effective, simple setup |
| Firebase Storage | Object Storage | Firebase ecosystem |
| Custom S3-compatible | S3-compatible | MinIO, Wasabi, Backblaze B2 |
Adding a Storage Destination
Navigate to Storage Settings
- Go to Settings in the sidebar
- Click Storage tab
- Click Add Storage Destination
Amazon S3 Setup
Step 1: Create IAM User
- Go to AWS IAM Console
- Create a new IAM user
- Attach the following policy:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::your-bucket-name",
"arn:aws:s3:::your-bucket-name/*"
]
}
]
}
- Create access keys and save them securely
Step 2: Configure in FireBackup
- Select Amazon S3 as provider
- Enter configuration:
| Field | Description |
|---|---|
| Name | Display name for this destination |
| Access Key ID | AWS access key ID |
| Secret Access Key | AWS secret access key |
| Region | AWS region (e.g., us-east-1) |
| Bucket Name | S3 bucket name |
| Path Prefix | Optional folder path within bucket |
- Click Verify Connection to test
- Click Save
See AWS S3 Setup Tutorial for detailed instructions.
Google Cloud Storage Setup
Step 1: Create Service Account
- Go to Google Cloud Console
- Navigate to IAM & Admin > Service Accounts
- Create a new service account
- Grant Storage Object Admin role
- Create and download JSON key
Step 2: Configure in FireBackup
- Select Google Cloud Storage as provider
- Enter configuration:
| Field | Description |
|---|---|
| Name | Display name for this destination |
| Service Account JSON | Upload or paste JSON key |
| Bucket Name | GCS bucket name |
| Path Prefix | Optional folder path within bucket |
- Click Verify Connection to test
- Click Save
See GCS Setup Tutorial for detailed instructions.
DigitalOcean Spaces Setup
Step 1: Create Spaces Access Keys
- Go to DigitalOcean Control Panel
- Navigate to API > Spaces Keys
- Generate new key pair
Step 2: Configure in FireBackup
- Select DigitalOcean Spaces as provider
- Enter configuration:
| Field | Description |
|---|---|
| Name | Display name for this destination |
| Access Key | Spaces access key |
| Secret Key | Spaces secret key |
| Region | Spaces region (e.g., nyc3) |
| Space Name | Name of the Space |
| Path Prefix | Optional folder path |
- Click Verify Connection to test
- Click Save
See DigitalOcean Spaces Tutorial for detailed instructions.
Firebase Storage Setup
Configuration
- Select Firebase Storage as provider
- Enter configuration:
| Field | Description |
|---|---|
| Name | Display name for this destination |
| Project ID | Firebase project ID |
| Bucket | Storage bucket (default: project-id.appspot.com) |
| Path Prefix | Optional folder path |
Firebase Storage uses the same OAuth credentials as the connected Firebase project.
Custom S3-Compatible Setup
For MinIO, Wasabi, Backblaze B2, or other S3-compatible storage:
| Field | Description |
|---|---|
| Name | Display name for this destination |
| Endpoint | Custom endpoint URL |
| Access Key | Access key ID |
| Secret Key | Secret access key |
| Bucket | Bucket name |
| Region | Region (if applicable) |
| Path Prefix | Optional folder path |
| Force Path Style | Enable for MinIO and some providers |
Managing Storage Destinations
Viewing Destinations
The storage page shows all configured destinations:
| Column | Description |
|---|---|
| Name | Display name |
| Provider | Storage provider type |
| Bucket | Bucket/container name |
| Status | Connection status |
| Backups | Number of backups stored |
| Size | Total storage used |
Default Destination
Set a default destination for new backups:
- Click the star icon next to a destination
- This destination becomes the default for:
- New schedules
- Manual backups (unless overridden)
Testing Connection
Verify a destination is working:
- Click Test Connection on the destination
- FireBackup will:
- Verify credentials
- Test read/write access
- Check bucket permissions
Editing Destinations
To modify a destination:
- Click Edit on the destination
- Update configuration
- Click Verify Connection
- Click Save
Changing bucket or credentials may make existing backups inaccessible. Ensure you have copies of important data before changing configuration.
Deleting Destinations
To remove a destination:
- Click Delete on the destination
- Choose whether to delete stored backups
- Confirm deletion
If you choose to delete stored backups, this action is permanent and cannot be undone.
Browsing Stored Files
View files stored in a destination:
- Navigate to the storage destination
- Click Browse Files
- Navigate the folder structure
- View backup files and metadata
File Actions
- View Details - See file metadata and properties
- Download - Download backup file
- Delete - Remove individual files
Storage Statistics
Per-Destination Statistics
Each destination shows:
| Metric | Description |
|---|---|
| Total Backups | Number of backups stored |
| Total Size | Storage consumption |
| Oldest Backup | Date of oldest backup |
| Newest Backup | Date of most recent backup |
| Growth Rate | Storage growth over time |
Organization Storage Overview
View aggregate storage across all destinations:
- Total storage used
- Storage by provider
- Storage by project
- Growth trends
Retention Policies
Configure automatic cleanup of old backups:
Setting Up Retention
- Navigate to storage destination
- Click Retention Policy
- Configure retention rules
Retention Options
| Option | Description |
|---|---|
| Keep All | Never auto-delete |
| Keep Last N | Keep only N most recent backups |
| Keep N Days | Delete backups older than N days |
| Keep N GB | Delete oldest when size exceeds N GB |
Retention Execution
- Retention runs daily at midnight UTC
- Oldest backups are deleted first
- PITR data follows its own retention settings
Ensure retention periods meet your compliance requirements before enabling auto-deletion.
Storage Sync
Synchronize metadata between FireBackup and storage:
When to Sync
- After manual file operations in storage
- If backup counts seem incorrect
- After storage provider issues
Running Sync
- Navigate to storage destination
- Click Sync Storage
- FireBackup will:
- Scan storage for backup files
- Update metadata in database
- Report any orphaned files
Orphan File Management
Files in storage without corresponding database records:
- Keep - Leave files in storage
- Delete - Remove orphaned files
- Import - Add to FireBackup database (if valid backup format)
Multi-Region Redundancy
For disaster recovery, configure multiple destinations:
Setting Up Redundancy
- Add primary storage destination (e.g., US-East)
- Add secondary storage destination (e.g., EU-West)
- Configure schedules to backup to both
Redundancy Strategy
Primary Destination: AWS S3 (us-east-1)
- All backups
Secondary Destination: GCS (europe-west1)
- Daily full backups only
- 30-day retention
This provides:
- Local access with low latency
- Geographic redundancy for disaster recovery
- Cost optimization by limiting secondary storage
Security Considerations
Encryption in Transit
All data transferred to storage is encrypted using TLS 1.2+.
Encryption at Rest
FireBackup encrypts backup data before upload:
- AES-256-GCM encryption
- Per-backup unique encryption keys
- Keys derived from organization master key
Storage Provider Encryption
Most providers offer additional encryption:
| Provider | Default Encryption | Options |
|---|---|---|
| AWS S3 | SSE-S3 | SSE-KMS, SSE-C |
| GCS | Google-managed | Customer-managed keys |
| DO Spaces | Server-side | N/A |
FireBackup encryption + provider encryption provides defense in depth.
Service Account Management
Manage service accounts used for storage and Firebase access:
Viewing Service Accounts
- Go to Settings > Storage
- Scroll to Service Accounts section
Adding Service Account
- Click Add Service Account
- Upload JSON key file
- FireBackup validates:
- JSON format
- Required fields present
- Scopes available
- Click Save
Service Account Usage
Service accounts can be used for:
- Storage destinations - GCS access
- Firebase projects - Backup operations
- PITR monitoring - Audit log access
Removing Service Account
- Click Remove on the service account
- Confirm deletion
- Associated destinations will need reconfiguration
Before removing a service account, ensure no active destinations or projects depend on it.
Troubleshooting
"Connection Failed" Error
Possible causes:
- Invalid credentials
- Bucket doesn't exist
- Insufficient permissions
- Network issues
Solution:
- Verify credentials are correct
- Confirm bucket exists and is accessible
- Check IAM/permission policies
- Test from your network
"Access Denied" Error
Possible causes:
- Missing IAM permissions
- Bucket policy restrictions
- Service account revoked
Solution:
- Review required permissions for provider
- Check bucket policies allow access
- Regenerate service account key
"Storage Full" Error
Possible causes:
- Storage quota exceeded
- Billing issues with provider
Solution:
- Check storage quotas in provider console
- Clean up old backups
- Configure retention policy
- Upgrade storage plan