System Requirements
Herein, we've outlined the minimum recommended system requirements to deploy and run the Open Source SAHAJ platform. Requirements vary based on environment type — Development, Production (Single Node), Production (Docker Swarm), Production (Kubernetes), and Production (Nomad).
🌟 What is SAHAJ
SAHAJ provides unified command-line workflows and helper scripts to simplify installation, configuration, and deployment of the CMS platform along with its dependencies (services, workers, DB, message queues, etc.). It is designed for developers and organizations who want to deploy SAHAJ from source — whether for development, testing, staging, or production.
✅ Prerequisites
Before deploying SAHAJ from source, make sure your system satisfies the following:
System Requirements
-
Python 3.11+
- Python 3.11.0 or higher is required
- Must have
python3-venvpackage installed for virtual environment support - Must have
pipinstalled for package management - Installation commands (for Debian/Ubuntu):
sudo apt install python3-venv
sudo apt install python3-pip
-
Node.js 22+
- Node.js version 22 or higher is required
- The
nodecommand must be available in PATH
-
Docker Compose
- Either Docker Compose v2 (
docker compose) or v1 (docker-compose) must be installed - Docker must be running and accessible
- Either Docker Compose v2 (
-
Nginx
nginxmust be installed on the system- Installation command (Debian/Ubuntu):
sudo apt update && sudo apt install -y nginx
-
Certbot (for SSL certificates)
certbotmust be installed for issuing SSL certificates- Recommended installation via snap:
sudo snap install core && sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot - Port 80 and 443 should be accessible for Let's Encrypt validation
-
OpenSSL (Strongly Recommended)
opensslcommand-line tool for generating ECDSA keypair- Used to generate:
- Private key (SECP256R1/prime256v1)
- Public key (derived from private key)
- Signing key ID
- Installation command:
sudo apt install openssl
Cloudflare DNS Configuration
If you are managing SSL certificates yourself (not using Cloudflare proxy):
- Type:
AName:api-cmpContent:your.ipProxy:DNS only - Type:
AName:api-customerContent:your.ipProxy:DNS only - Type:
AName:api-notice-workerContent:your.ipProxy:DNS only - Type:
AName:api-cookie-consentContent:your.ipProxy:DNS only - Type:
AName:cmpContent:your.ipProxy:DNS only - Type:
AName:customerContent:your.ipProxy:DNS only
Note: If you don't want to handle certbot, you can keep the proxy to proxied (orange cloud in Cloudflare).
1. Development Environment
| Component | Minimum Requirement |
|---|---|
| OS | Ubuntu 24.04 LTS (or compatible Linux distribution) |
| RAM | 16 GB |
| Disk Space | 20 GB SSD (for application, logs, and dependencies) |
| vCPU | 4 vCPUs |
| Network | 1 Gbps recommended |
| Software Dependencies | Docker, Docker Compose, Git, Node.js (if using frontend), Python 3.11+, PostgreSQL or equivalent DB, Redis (optional for caching) |
Notes:
- The development environment is intended for local testing, feature development, and small team collaboration.
- For optimal experience, run the stack in isolated containers (Docker Compose recommended).
2. Production Environment – OS Recommendations
For production deployments, we recommend enterprise-grade Linux distributions that provide long-term support, stability, and security patches:
- Red Hat Enterprise Linux (RHEL) – ideal for enterprises with support contracts.
- Rocky Linux – a free, community-driven RHEL-compatible distribution.
- AlmaLinux – another stable, RHEL-compatible option.
- Fedora Server (Long-Term Version) – developer-friendly, though slightly more cutting-edge.
Ubuntu 24.04 LTS remains fully supported but enterprise distros are preferred for mission-critical deployments.
3. Production Environment – Single Node Deployment
| Component | Minimum Requirement |
|---|---|
| OS | RHEL 9.x, Rocky Linux 9.x, AlmaLinux 9.x, or Ubuntu 24.04 LTS |
| RAM | 32 GB (recommended for concurrent users and larger datasets) |
| Disk Space | 100 GB SSD or NVMe (expandable as data grows) |
| vCPU | 8 vCPUs |
| Network | 1–10 Gbps recommended |
| Database | Dedicated PostgreSQL or equivalent DB instance (can be on same node or external) |
| Cache Layer | Redis/Memcached for session management and queueing |
Characteristics:
- All components (backend, frontend, database, cache) run on a single server.
- Best suited for pilot deployments, PoCs, or small-scale production workloads.
4. Production Environment – Docker Swarm Deployment
| Component | Minimum Requirement (per node) |
|---|---|
| OS | RHEL 9.x, Rocky Linux 9.x, AlmaLinux 9.x, or Ubuntu 24.04 LTS |
| RAM | 16 GB per node (minimum) |
| Disk Space | 50 GB per node |
| vCPU | 4–8 vCPUs per node |
| Nodes | Minimum 3 manager nodes (odd number for quorum) + 2 worker nodes |
| Network | Overlay network with 1–10 Gbps bandwidth |
Characteristics:
- Containerized deployment across multiple nodes.
- Built-in load balancing and rolling updates.
- Recommended for medium-scale production where horizontal scaling is required but Kubernetes is not yet adopted.
5. Production Environment – Kubernetes (K8s) Deployment
| Component | Minimum Requirement (per node) |
|---|---|
| OS | RHEL 9.x, Rocky Linux 9.x, AlmaLinux 9.x, Ubuntu 24.04 LTS, or managed Kubernetes service (AKS, EKS, GKE) |
| RAM | 16 GB per worker node (minimum) |
| Disk Space | 50 GB per node (expandable persistent volumes recommended) |
| vCPU | 4–8 vCPUs per node |
| Control Plane | Managed by your Kubernetes provider or 3+ control plane nodes for self-hosted |
| Network | CNI plugin with 1–10 Gbps bandwidth |
| Storage | Persistent Volume Claims for DB and long-term data |
Characteristics:
- Ideal for large-scale production.
- Automatic scaling, rolling upgrades, and self-healing of pods.
- Integrates seamlessly with CI/CD pipelines and secrets management.
6. Production Environment – Nomad Deployment
| Component | Minimum Requirement (per node) |
|---|---|
| OS | RHEL 9.x, Rocky Linux 9.x, AlmaLinux 9.x, or Ubuntu 24.04 LTS |
| RAM | 16 GB per node |
| Disk Space | 50 GB per node |
| vCPU | 4–8 vCPUs per node |
| Cluster Size | Minimum 3 Nomad server nodes + 2 worker nodes |
| Network | High-speed network (1–10 Gbps) |
Characteristics:
- HashiCorp Nomad for orchestration.
- Simple to run, integrates well with Consul and Vault for service discovery and secrets.
- Best suited for organizations already invested in HashiCorp tooling.
Additional Recommendations Across All Environments
- Backups: Configure automated backups for databases and critical configuration files.
- Monitoring & Logging: Use Prometheus + Grafana or equivalent to monitor health and performance.
- Security: Implement TLS/HTTPS, firewall rules, and least-privilege access controls.
- Scaling: Adjust vCPUs, RAM, and disk space as your data and user base grows.
- High Availability (HA): For production, run at least 3 nodes for quorum and failover capability.
- Disaster Recovery: Test your backup and recovery strategy quarterly.
Quick Reference Table
| Environment | OS | RAM | Disk | vCPU | Nodes |
|---|---|---|---|---|---|
| Development | Ubuntu 24.04 | 16 GB | 20 GB | 4 | 1 |
| Production Single Node | RHEL/Rocky/Alma/Ubuntu 24.04 | 32 GB | 100 GB | 8 | 1 |
| Docker Swarm | RHEL/Rocky/Alma/Ubuntu 24.04 | 16 GB per node | 50 GB per node | 4–8 per node | 3+ manager + 2+ worker |
| Kubernetes | RHEL/Rocky/Alma/Ubuntu 24.04 or managed | 16 GB per worker | 50 GB per node | 4–8 per node | 3+ control plane + worker nodes |
| Nomad | RHEL/Rocky/Alma/Ubuntu 24.04 | 16 GB per node | 50 GB per node | 4–8 per node | 3+ server + 2+ worker |