> ## Documentation Index
> Fetch the complete documentation index at: https://docs.suprsend.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List of Dependencies

> All infrastructure dependencies required to deploy and run SuprSend in self-hosted mode.

# Dependencies

This document outlines all the infrastructure dependencies required to deploy and run SuprSend in self-hosted mode.

## Core Infrastructure Requirements

### Kubernetes Cluster

* **Version**: Kubernetes v1.29+
* **Purpose**: Container orchestration for SuprSend services
* **Deployment**: Can be deployed on any Kubernetes distribution (GKE, EKS, AKS, DigitalOcean, etc.)
* **Recommendation**: Use managed Kubernetes services for production deployments

### Storage Requirements

* **Persistent Volumes**: Required for stateful services
* **Storage Classes**: Must support ReadWriteOnce access mode
* **Recommended**: SSD storage for optimal performance
* **Size**: Minimum 100–200 GB per database instance
* **Object Storage**: Blob store for files, attachments, and media assets
  * **Options**: AWS S3, Azure Blob Storage, or Google Cloud Storage
  * **Buckets**: Two buckets required (private and public)
  * **Requirements**: Encryption at rest, access controls, versioning
  * **Use Cases**: Template assets, user uploads

### Temporal

* **Version**: Temporal v1.25+
* **Purpose**: Workflow orchestration and state management
* **Deployment**: Can be deployed in-cluster or as external service
* **Use Case**: Reliable workflow execution and state management
* **Installation Guide**: [Temporal Setup Guide](/docs/self-hosted/setup-dependencies/temporal)

## Database Dependencies

### PostgreSQL

* **Version**: PostgreSQL v17+ (required)
* **Purpose**: Primary data store for users, templates, workflows, and notifications
* **Installation Guide**: [PostgreSQL Setup Guide](/docs/self-hosted/setup-dependencies/postgres)

**Configuration Requirements:**

```conf theme={"system"}
shared_preload_libraries = 'pg_stat_statements,pg_cron'
cron.database_name = 'defaultdb'
cron.max_running_jobs = 1
hot_standby_feedback = on
max_standby_archive_delay = -1
max_standby_streaming_delay = -1
wal_level = logical
```

**Required Extensions:**

* `pg_cron` - For scheduled jobs
* `pgcrypto` - For cryptographic functions
* `pg_stat_statements` - For query performance monitoring
* `btree_gin` - For GIN indexes
* `btree_gist` - For GiST indexes

**Databases** - 6 databases required:

* `suprsend` - Main application database
* `defaultdb` - Default database for cron jobs
* `pronto` - Pronto service database
* `svix` - Svix webhook service database
* `temporal` - Temporal workflow database
* `temporal_visibility` - Temporal visibility database

### ClickHouse

* **Version**: ClickHouse v24.9+
* **Purpose**: Analytics and logs storage
* **Deployment**: Recommended outside Kubernetes for better performance
* **Storage**: High-performance storage recommended (SSD)
* **Configuration**: Single-node or clustered setup based on scale requirements
* **Installation Guide**: [ClickHouse Setup Guide](/docs/self-hosted/setup-dependencies/clickhouse)

### OpenSearch

* **Version**: OpenSearch v1.3+
* **Purpose**: Full-text search and advanced query capabilities
* **Deployment**: External service recommended
* **Use Case**: Advanced search and log analysis features
* **Installation Guide**: [OpenSearch Setup Guide](/docs/self-hosted/setup-dependencies/opensearch)

## Data Stores and Messaging

### Redis

* **Version**: Redis v7.0+
* **Purpose**: Cache and short-term state management
* **Deployment**: Dedicated deployment preferred (outside Kubernetes)
* **Instances**: 2 Redis stores required:
  * **Redis 1**: Short-term load management
  * **Redis 2**: Workflow states and data processing
* **Configuration**: High availability setup recommended
* **Installation Guide**: [Redis Setup Guide](/docs/self-hosted/setup-dependencies/redis)

### NATS

* **Version**: NATS v2.10+
* **Purpose**: Message broker for scalable event ingestion
* **Deployment**: Can be deployed in-cluster or as external service
* **Use Case**: High-volume event processing scenarios

## Object Storage

* **Purpose**: Object storage for files, attachments, and media assets
* **Supported Providers**:
  * **AWS S3**: Amazon Simple Storage Service
  * **Azure Blob Storage**: Microsoft Azure object storage
  * **Google Cloud Storage**: Google Cloud object storage
* **Bucket Configuration**: Two buckets required:
  * **Private Bucket**: For sensitive files, user uploads, and internal assets
  * **Public Bucket**: For publicly accessible content and media files
* **Use Cases**:
  * Template assets and media files
  * User-uploaded attachments
  * Backup storage for database dumps
* **Requirements**:
  * **Access Control**: IAM policies for secure access to private bucket
  * **Public Access**: Public read access for public bucket
* **Configuration Guide**: [Blob Store Configuration Guide](/docs/self-hosted/setup-dependencies/blob-store)

## Optional Services

### WorkOS

* **Purpose**: Enterprise Single Sign-On (SSO), SAML, and social login authentication for the SuprSend dashboard
* **Deployment**: SaaS service managed by WorkOS (no self-hosting required)
* **Default Behavior**: Without WorkOS, the dashboard uses passwordless email+code login
* **Installation Guide**: [WorkOS Integration Guide](/docs/self-hosted/workos-integration)

## Quick Start

For a complete step-by-step deployment guide, see:

* **Main deployment (Helm install)**: [SuprSend Installation Guide](/docs/self-hosted/suprsend-installation-guide)
* **Getting started**: [Quick Start](/docs/self-hosted/getting-started)
