- 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
- 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
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)
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 |
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 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
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.
- 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