Skip to main content
Version: 10.0

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.

Important

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:

  • NFS – NFS network file shares (Linux/Unix)
  • SMB – SMB/CIFS network file shares (Windows, NAS)

Local Storage

For single-node deployments:

  • LOCAL – Local filesystem storage

Quick Selection Guide

By Deployment Type

DeploymentDocument StorageFile StorageSession Storage
DevelopmentLOCALLOCALLOCAL
Single ServerLOCALLOCALLOCAL
Small ClusterREDISSMB or NFS or MINIOREDIS
Production ClusterREDIS/VALKEYMINIO or NFSREDIS/VALKEY
Azure CloudVALKEYAZURE_BLOBVALKEY
AWS CloudREDIS/VALKEYMINIO (S3)REDIS/VALKEY
Windows/ADREDISSMBREDIS
Linux ClusterREDIS/VALKEYNFSREDIS/VALKEY

By Infrastructure

You HaveUse Provider
Existing Redis serverREDIS
Valkey serverVALKEY
MinIO or S3MINIO
Azure Storage AccountAZURE_BLOB
Windows file serverSMB
NFS server or NAS with NFSNFS
NAS deviceSMB or NFS
Nothing (single server)LOCAL

Provider Comparison

Performance

ProviderLatencyThroughputBest For
LOCAL⭐⭐⭐⭐⭐⭐⭐⭐⭐Single server
REDIS⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐Documents/sessions
VALKEY⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐Documents/sessions
MINIO⭐⭐⭐⭐⭐⭐⭐⭐Large files
AZURE_BLOB⭐⭐⭐⭐⭐⭐⭐Cloud files
NFS⭐⭐⭐⭐⭐⭐⭐⭐Linux clusters
SMB⭐⭐⭐⭐⭐⭐Windows/NAS

Scalability

ProviderHorizontal ScalingCapacityComplexity
LOCAL✗ NoDisk-limitedLow
REDIS✓ Via clusteringRAM-limitedLow-Medium
VALKEY✓ Via clusteringRAM-limitedLow-Medium
MINIO✓ DistributedVery largeMedium
AZURE_BLOB✓ Auto-scalingUnlimitedMedium
NFS~ Via HA NFSStorage-limitedLow-Medium
SMB~ Via DFSStorage-limitedLow-Medium

Cost Considerations

ProviderInfrastructure CostOperational CostLicense
LOCALNoneLowFree
REDISLow-Medium (self-hosted)LowFree (OSS)
VALKEYLow-Medium (self-hosted)LowFree (BSD)
MINIOMedium (self-hosted)Low-MediumFree (AGPL)
AZURE_BLOBUsage-basedMediumPay-as-you-go
NFSLow (self-hosted)LowFree
SMBLow-Medium (existing NAS)LowVaries

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:

  1. Determine deployment type (single server vs. cluster)
  2. Review infrastructure (existing Redis, cloud services, NAS, etc.)
  3. Consider requirements (performance, cost, scalability)
  4. 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:

  1. Edit provider.json – Select providers
  2. Create provider configs – Configure connection details
  3. Set credentials – Use environment variables for secrets
  4. Enable health checks – Monitor provider availability

Step 4: Test and Deploy

Before production deployment:

  1. Test connectivity – Verify webPDF can connect to providers
  2. Test operations – Upload files, process documents, create sessions
  3. Monitor performance – Check latency and throughput
  4. Enable monitoring – Set up alerts for provider issues

Provider Documentation

Select a provider to view detailed documentation:

In-Memory Storage

Object Storage

Network File Shares

Local Storage