Storage Providers
This section contains detailed documentation for each storage provider supported by webPDF Server. Choose the provider that best matches your deployment architecture and infrastructure.
It is recommended to configure the providers via the Admin Portal.
Provider Types
In-Memory Data Stores
For document and session storage in cluster deployments:
- REDIS – Industry-standard Redis in-memory data store
- VALKEY – Open-source Redis-compatible alternative
Object Storage
For file storage in cloud-native and cluster deployments:
- MINIO – S3-compatible object storage (self-hosted or cloud)
- AZURE_BLOB – Microsoft Azure Blob Storage
Network File Storage
For file storage using network file shares:
Local Storage
For single-node deployments:
- LOCAL – Local filesystem storage
Quick Selection Guide
By Deployment Type
| Deployment | Document Storage | File Storage | Session Storage |
|---|---|---|---|
| Development | LOCAL | LOCAL | LOCAL |
| Single Server | LOCAL | LOCAL | LOCAL |
| Small Cluster | REDIS | SMB or NFS or MINIO | REDIS |
| Production Cluster | REDIS/VALKEY | MINIO or NFS | REDIS/VALKEY |
| Azure Cloud | VALKEY | AZURE_BLOB | VALKEY |
| AWS Cloud | REDIS/VALKEY | MINIO (S3) | REDIS/VALKEY |
| Windows/AD | REDIS | SMB | REDIS |
| Linux Cluster | REDIS/VALKEY | NFS | REDIS/VALKEY |
By Infrastructure
| You Have | Use Provider |
|---|---|
| Existing Redis server | REDIS |
| Valkey server | VALKEY |
| MinIO or S3 | MINIO |
| Azure Storage Account | AZURE_BLOB |
| Windows file server | SMB |
| NFS server or NAS with NFS | NFS |
| NAS device | SMB or NFS |
| Nothing (single server) | LOCAL |
Provider Comparison
Performance
| Provider | Latency | Throughput | Best For |
|---|---|---|---|
| LOCAL | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | Single server |
| REDIS | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | Documents/sessions |
| VALKEY | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | Documents/sessions |
| MINIO | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | Large files |
| AZURE_BLOB | ⭐⭐⭐ | ⭐⭐⭐⭐ | Cloud files |
| NFS | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | Linux clusters |
| SMB | ⭐⭐⭐ | ⭐⭐⭐ | Windows/NAS |
Scalability
| Provider | Horizontal Scaling | Capacity | Complexity |
|---|---|---|---|
| LOCAL | ✗ No | Disk-limited | Low |
| REDIS | ✓ Via clustering | RAM-limited | Low-Medium |
| VALKEY | ✓ Via clustering | RAM-limited | Low-Medium |
| MINIO | ✓ Distributed | Very large | Medium |
| AZURE_BLOB | ✓ Auto-scaling | Unlimited | Medium |
| NFS | ~ Via HA NFS | Storage-limited | Low-Medium |
| SMB | ~ Via DFS | Storage-limited | Low-Medium |
Cost Considerations
| Provider | Infrastructure Cost | Operational Cost | License |
|---|---|---|---|
| LOCAL | None | Low | Free |
| REDIS | Low-Medium (self-hosted) | Low | Free (OSS) |
| VALKEY | Low-Medium (self-hosted) | Low | Free (BSD) |
| MINIO | Medium (self-hosted) | Low-Medium | Free (AGPL) |
| AZURE_BLOB | Usage-based | Medium | Pay-as-you-go |
| NFS | Low (self-hosted) | Low | Free |
| SMB | Low-Medium (existing NAS) | Low | Varies |
Common Configurations
Development Setup
{
"documentStorage": {"name": "LOCAL"},
"fileStorage": {"name": "LOCAL"},
"sessionStorage": {"name": "LOCAL"}
}
Use case: Local development, testing, demos
Small Production Cluster
{
"documentStorage": {"name": "REDIS", "checks": {"enabled": true}},
"fileStorage": {"name": "SMB", "checks": {"enabled": true}},
"sessionStorage": {"name": "REDIS", "checks": {"enabled": true}}
}
Use case: Small on-premise clusters with existing Windows infrastructure
Large Production Cluster (On-Premise)
{
"documentStorage": {"name": "REDIS", "checks": {"enabled": true}},
"fileStorage": {"name": "MINIO", "checks": {"enabled": true}},
"sessionStorage": {"name": "REDIS", "checks": {"enabled": true}}
}
Use case: High-availability clusters with dedicated storage infrastructure
Azure Cloud Deployment
{
"documentStorage": {"name": "VALKEY", "checks": {"enabled": true}},
"fileStorage": {"name": "AZURE_BLOB", "checks": {"enabled": true}},
"sessionStorage": {"name": "VALKEY", "checks": {"enabled": true}}
}
Use case: Cloud-native Azure deployments
AWS Cloud Deployment
{
"documentStorage": {"name": "REDIS", "checks": {"enabled": true}},
"fileStorage": {"name": "MINIO", "checks": {"enabled": true}},
"sessionStorage": {"name": "REDIS", "checks": {"enabled": true}}
}
Use case: Cloud-native AWS deployments using S3-compatible storage
Linux Cluster with NFS
{
"documentStorage": {"name": "REDIS", "checks": {"enabled": true}},
"fileStorage": {"name": "LOCAL", "checks": {"enabled": true}},
"sessionStorage": {"name": "REDIS", "checks": {"enabled": true}}
}
Use case: Linux on-premise clusters with NFS shared storage (requires provider-local.json with sharedUsage: true)
Getting Started
Step 1: Choose Your Providers
Based on your deployment architecture, select appropriate providers:
- Determine deployment type (single server vs. cluster)
- Review infrastructure (existing Redis, cloud services, NAS, etc.)
- Consider requirements (performance, cost, scalability)
- Select providers for document, file, and session storage
Step 2: Configure Backends
Set up the required backend services:
- Redis/Valkey: Install and configure Redis/Valkey server
- MinIO: Deploy MinIO server or configure S3 access
- Azure Blob: Create Azure Storage Account and container
- NFS: Set up NFS server and mount on all cluster nodes
- SMB: Configure Windows file share or NAS
Step 3: Configure webPDF
Create provider configuration files:
- Edit
provider.json– Select providers - Create provider configs – Configure connection details
- Set credentials – Use environment variables for secrets
- Enable health checks – Monitor provider availability
Step 4: Test and Deploy
Before production deployment:
- Test connectivity – Verify webPDF can connect to providers
- Test operations – Upload files, process documents, create sessions
- Monitor performance – Check latency and throughput
- Enable monitoring – Set up alerts for provider issues
Provider Documentation
Select a provider to view detailed documentation: