This guide covers hardware, software, and network requirements for deploying FireBackup Enterprise in your infrastructure.
Hardware Requirements
Minimum Requirements
For development, testing, or small deployments (up to 5 Firebase projects):
| Component | CPU | Memory | Storage | Notes |
|---|
| API Server | 2 cores | 4 GB | 20 GB | Handles API requests |
| Backup Worker | 2 cores | 4 GB | 50 GB | Processes backup jobs |
| PITR Worker | 2 cores | 4 GB | 50 GB | Change capture |
| PostgreSQL | 2 cores | 4 GB | 100 GB | Primary database |
| Redis | 1 core | 2 GB | 10 GB | Job queue & cache |
Total Minimum: 9 cores, 18 GB RAM, 230 GB storage
Recommended Production
For production deployments (10-50 Firebase projects):
| Component | CPU | Memory | Storage | Instances | Notes |
|---|
| API Server | 4 cores | 8 GB | 50 GB | 2 | Load balanced |
| Backup Worker | 4 cores | 8 GB | 100 GB | 3 | Concurrent jobs |
| PITR Worker | 4 cores | 8 GB | 100 GB | 1 | Change capture |
| PostgreSQL | 8 cores | 32 GB | 500 GB SSD | 2 | Primary + replica |
| Redis | 4 cores | 8 GB | 50 GB | 2 | Sentinel HA |
| Load Balancer | 2 cores | 2 GB | 10 GB | 1 | Nginx/HAProxy |
Total Recommended: 42 cores, 114 GB RAM, 1.06 TB storage
Enterprise Scale
For large deployments (50+ Firebase projects, high throughput):
| Component | CPU | Memory | Storage | Instances | Notes |
|---|
| API Server | 8 cores | 16 GB | 100 GB | 4+ | Horizontal scale |
| Backup Worker | 8 cores | 16 GB | 200 GB | 5+ | Based on load |
| PITR Worker | 8 cores | 16 GB | 200 GB | 2+ | Per project group |
| PostgreSQL | 16 cores | 64 GB | 2 TB NVMe | 3+ | Primary + 2 replicas |
| Redis Cluster | 8 cores | 32 GB | 100 GB | 6 | 3 masters, 3 replicas |
Storage Sizing Guide
Calculate storage requirements based on your data:
API Server Storage:
OS + Application: 10 GB
Logs: 10-50 GB (depends on retention)
Temp files: 20-50 GB
Backup Worker Storage:
OS + Application: 10 GB
Temp backup files: 2x largest collection
Compressed cache: 50-200 GB
PostgreSQL Storage:
Base: 10 GB
Per backup record: ~10 KB
Per PITR window: ~50 KB
Growth: Plan for 2 years
Example (1000 backups, 100 PITR windows):
10 GB + (1000 × 10 KB) + (100 × 50 KB) ≈ 25 GB
With 2-year growth: 75-100 GB recommended
Software Requirements
Operating System
| OS | Version | Support Level |
|---|
| Ubuntu | 22.04 LTS, 24.04 LTS | Fully supported |
| Debian | 11, 12 | Fully supported |
| RHEL/CentOS | 8, 9 | Fully supported |
| Amazon Linux | 2, 2023 | Fully supported |
| Alpine | 3.18+ | Container only |
Container Runtimes
| Runtime | Version | Notes |
|---|
| Docker | 24.0+ | Recommended |
| Docker Compose | 2.20+ | For simple deployments |
| containerd | 1.7+ | For Kubernetes |
| Podman | 4.5+ | Alternative to Docker |
Kubernetes
| Distribution | Version | Notes |
|---|
| Kubernetes | 1.27+ | Native K8s |
| Amazon EKS | 1.27+ | AWS managed |
| Google GKE | 1.27+ | GCP managed |
| Azure AKS | 1.27+ | Azure managed |
| OpenShift | 4.13+ | RedHat |
| Rancher RKE2 | 1.27+ | Rancher Labs |
Database Requirements
PostgreSQL
| Requirement | Specification |
|---|
| Version | 14, 15, 16 (recommended: 16) |
| Extensions | uuid-ossp, pg_trgm |
| Character Set | UTF-8 |
| Collation | en_US.UTF-8 |
| Max Connections | 100+ (depends on API replicas) |
Managed PostgreSQL services:
- AWS RDS PostgreSQL
- Google Cloud SQL
- Azure Database for PostgreSQL
- DigitalOcean Managed Databases
Redis
| Requirement | Specification |
|---|
| Version | 7.0+ (recommended: 7.2) |
| Mode | Standalone or Sentinel |
| Persistence | RDB + AOF recommended |
| Memory Policy | noeviction |
| Max Memory | 75% of available RAM |
Managed Redis services:
- AWS ElastiCache
- Google Cloud Memorystore
- Azure Cache for Redis
- DigitalOcean Managed Redis
Node.js Requirements
| Requirement | Specification |
|---|
| Version | 20 LTS or 22 LTS |
| Package Manager | Yarn 4.x or npm 10.x |
Network Requirements
Ports
| Port | Service | Protocol | Direction | Notes |
|---|
| 80 | HTTP | TCP | Inbound | Redirect to HTTPS |
| 443 | HTTPS | TCP | Inbound | API & Web |
| 4000 | API | TCP | Internal | API server (if not proxied) |
| 3000 | Web | TCP | Internal | Web dashboard (if not proxied) |
| 5432 | PostgreSQL | TCP | Internal | Database |
| 6379 | Redis | TCP | Internal | Cache & queue |
Firewall Rules
Minimum required external access:
# OAuth providers
accounts.google.com:443 # Google OAuth
www.googleapis.com:443 # Google APIs
# Firebase services
firestore.googleapis.com:443 # Firestore API
firebase.googleapis.com:443 # Firebase API
storage.googleapis.com:443 # Cloud Storage
# Storage providers (as configured)
s3.amazonaws.com:443 # AWS S3
s3.{region}.amazonaws.com:443 # Regional S3
storage.googleapis.com:443 # Google Cloud Storage
{space}.{region}.digitaloceanspaces.com:443 # DO Spaces
# License server (if online activation)
license.firebackup.io:443 # License validation
Internal Network
Bandwidth Requirements
| Scenario | Minimum | Recommended |
|---|
| API Traffic | 10 Mbps | 100 Mbps |
| Backup Uploads | 100 Mbps | 1 Gbps |
| Firebase API Calls | 10 Mbps | 100 Mbps |
| Internal (DB/Redis) | 1 Gbps | 10 Gbps |
Latency Requirements
| Connection | Maximum | Recommended |
|---|
| API → PostgreSQL | 10ms | <5ms |
| API → Redis | 5ms | <2ms |
| Worker → Redis | 5ms | <2ms |
| Worker → Storage | 100ms | <50ms |
SSL/TLS Requirements
Certificates
| Type | Supported | Notes |
|---|
| Let's Encrypt | ✓ | Auto-renewal recommended |
| Commercial CA | ✓ | Any trusted CA |
| Self-signed | ✓ | Not recommended for production |
| Wildcard | ✓ | For multiple subdomains |
TLS Configuration
Minimum TLS version: TLS 1.2 (TLS 1.3 recommended)
Recommended cipher suites:
TLS_AES_256_GCM_SHA384
TLS_CHACHA20_POLY1305_SHA256
TLS_AES_128_GCM_SHA256
ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-RSA-AES256-GCM-SHA384
Cloud Provider Requirements
AWS
| Service | Minimum | Recommended |
|---|
| EC2 | t3.medium | m5.xlarge |
| RDS | db.t3.medium | db.r5.large |
| ElastiCache | cache.t3.small | cache.r5.large |
| S3 | Standard | Standard |
| VPC | Default | Custom with private subnets |
IAM Permissions required:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::your-backup-bucket",
"arn:aws:s3:::your-backup-bucket/*"
]
}
]
}
| Service | Minimum | Recommended |
|---|
| Compute Engine | e2-standard-2 | n2-standard-4 |
| Cloud SQL | db-standard-2 | db-standard-8 |
| Memorystore | 1 GB | 5 GB |
| Cloud Storage | Standard | Standard |
| VPC | Default | Custom with private subnets |
Service Account permissions:
storage.objectAdmin on backup bucket
cloudsql.client for Cloud SQL
Azure
| Service | Minimum | Recommended |
|---|
| Virtual Machines | Standard_B2s | Standard_D4s_v3 |
| Azure Database | Basic | General Purpose |
| Azure Cache | Basic C0 | Standard C1 |
| Blob Storage | Hot | Hot |
DigitalOcean
| Service | Minimum | Recommended |
|---|
| Droplets | s-2vcpu-4gb | s-4vcpu-8gb |
| Managed DB | db-s-1vcpu-1gb | db-s-2vcpu-4gb |
| Managed Redis | 1 GB | 2 GB |
| Spaces | Standard | Standard |
Compatibility Matrix
Tested Combinations
| OS | Container | Kubernetes | PostgreSQL | Redis |
|---|
| Ubuntu 22.04 | Docker 24.0 | - | 16 | 7.2 |
| Ubuntu 22.04 | - | 1.28 | 16 | 7.2 |
| Debian 12 | Docker 24.0 | - | 15 | 7.0 |
| Amazon Linux 2023 | Docker 25.0 | - | 16 | 7.2 |
| RHEL 9 | Podman 4.6 | - | 15 | 7.0 |
Known Limitations
- PostgreSQL 13 and below: Not supported (missing required features)
- Redis 6 and below: Not supported (missing RESP3 features)
- Docker 20 and below: May work but not tested
- ARM64: Fully supported, same images
Pre-Installation Checklist
Before deploying FireBackup Enterprise, verify:
Infrastructure
Database
Cache
Network
Security
License
Next: Docker Deployment - Deploy with Docker Compose.