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

# Prerequisites

> Prerequisites — CometChat documentation.

This guide outlines the infrastructure, software, and network requirements for deploying CometChat on-premise. Proper capacity planning ensures optimal performance, cost efficiency, and scalability as your user base grows.

**Planning Considerations:**

* **Hardware Sizing**: Select appropriate compute and storage resources based on expected monthly active users (MAU) and peak concurrent connections (PCC)
* **Operating System**: Choose enterprise-grade Linux distributions with long-term support
* **Network Architecture**: Plan for secure network segmentation and firewall configurations
* **Storage Strategy**: Account for data retention policies, backup requirements, and growth projections

## Supported operating systems

CometChat on-premise is tested and supported on enterprise Linux distributions with long-term support (LTS) and security updates:

* **Ubuntu 20.04 / 22.04 / 24.04 LTS**: Recommended for most deployments with 5-year support lifecycle
* **RedHat Enterprise Linux 8+**: Ideal for enterprises requiring commercial support and compliance certifications

**Why these distributions:**

* Long-term security updates and kernel patches
* Docker and container runtime compatibility
* Enterprise support availability
* Proven stability in production environments

## Required software

Ensure these software dependencies are installed before deployment:

* **Docker Engine >= 24**: Container runtime for service orchestration
* **Docker Compose v2**: Required for local development and non-Swarm workflows
* **Git**: Version control for deployment scripts and configuration management
* **OpenSSL >= 1.1**: TLS/SSL certificate generation and cryptographic operations
* **jq, curl, net-tools**: Command-line utilities for configuration, API testing, and network diagnostics

**Installation Note**: The quick start guide includes automated installation scripts for Docker and Docker Compose on Ubuntu systems.

## Minimum hardware (testing / QA)

For development, testing, and proof-of-concept environments:

* **8 vCPUs**: Sufficient for running all services with light load
* **16 GB RAM**: Minimum memory for core services and data stores
* **100 GB SSD**: Base storage for application data and logs (scale up based on workload and storage needs)

**Important**: This configuration is not suitable for production workloads or performance testing at scale.

## Production hardware

Production sizing is based on two key metrics: **Monthly Active Users (MAU)** and **Peak Concurrent Connections (PCC)**. Choose the sizing model that matches your expected usage patterns.

**Important**: The values below represent total cluster capacity and can be distributed across multiple nodes.

### Baseline sizing

Recommended for standard usage patterns where peak concurrent connections are approximately 5% of MAU:

| MAU  | Peak concurrent connections (PCC) | vCPUs | RAM     |
| ---- | --------------------------------- | ----- | ------- |
| 10k  | 500                               | 32    | 64 GiB  |
| 25k  | 1,250                             | 64    | 128 GiB |
| 50k  | 2,500                             | 96    | 192 GiB |
| 100k | 5,000                             | 156   | 312 GiB |
| 200k | 10,000                            | 272   | 544 GiB |

**Storage guidance**: Start at 100 GB SSD and scale to 500 GB to 2 TB SSD depending on workload and data retention policies.

### High-concurrency sizing

Recommended for applications with sustained high concurrency where peak connections reach 10% or more of MAU:

| MAU  | Peak concurrent connections (PCC) | vCPUs | RAM     |
| ---- | --------------------------------- | ----- | ------- |
| 10k  | 1,000                             | 48    | 96 GiB  |
| 25k  | 2,500                             | 96    | 192 GiB |
| 50k  | 5,000                             | 156   | 312 GiB |
| 100k | 10,000                            | 240   | 480 GiB |
| 200k | 20,000                            | 480   | 960 GiB |

**Storage guidance**: Expect to exceed 100 GB SSD; plan 500 GB to 2 TB SSD as concurrency and data volume grow.

### Storage planning considerations

**Factors affecting storage requirements:**

* **Message retention**: Longer retention periods require more storage
* **Media attachments**: Images, videos, and files significantly increase storage needs
* **Backup strategy**: Plan for 2-3x storage capacity to accommodate backups
* **Log retention**: Compliance requirements may mandate extended log retention (30-90 days or more)
* **Growth buffer**: Allocate 30-50% additional capacity for unexpected growth

**Storage performance**: Use SSD or NVMe storage for all production deployments to ensure optimal database and Kafka performance.

## Required ports

Configure firewall rules to allow traffic on these ports:

* **80 / 443**: HTTP and HTTPS traffic to NGINX (public-facing). Port 80 should be used only for HTTP-to-HTTPS redirection.

**Network security recommendations:**

* Restrict ports 80/443 to known IP ranges when possible
* Use TLS/SSL certificates for all HTTPS traffic
* Keep all backend services (databases, Kafka, Redis) on private networks without public exposure
* Implement rate limiting and DDoS protection at the load balancer level

**Additional ports for internal communication:**
All inter-service communication occurs on Docker Swarm's private overlay network and does not require external firewall rules. Services communicate securely within the cluster using Docker's encrypted overlay networking.
