Skip to main content

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

  1. Python 3.11+

    • Python 3.11.0 or higher is required
    • Must have python3-venv package installed for virtual environment support
    • Must have pip installed for package management
    • Installation commands (for Debian/Ubuntu):
      sudo apt install python3-venv
      sudo apt install python3-pip
  2. Node.js 22+

    • Node.js version 22 or higher is required
    • The node command must be available in PATH
  3. Docker Compose

    • Either Docker Compose v2 (docker compose) or v1 (docker-compose) must be installed
    • Docker must be running and accessible
  4. Nginx

    • nginx must be installed on the system
    • Installation command (Debian/Ubuntu):
      sudo apt update && sudo apt install -y nginx
  5. Certbot (for SSL certificates)

    • certbot must 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
  6. OpenSSL (Strongly Recommended)

    • openssl command-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: A Name: api-cmp Content: your.ip Proxy: DNS only
  • Type: A Name: api-customer Content: your.ip Proxy: DNS only
  • Type: A Name: api-notice-worker Content: your.ip Proxy: DNS only
  • Type: A Name: api-cookie-consent Content: your.ip Proxy: DNS only
  • Type: A Name: cmp Content: your.ip Proxy: DNS only
  • Type: A Name: customer Content: your.ip Proxy: 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

ComponentMinimum Requirement
OSUbuntu 24.04 LTS (or compatible Linux distribution)
RAM16 GB
Disk Space20 GB SSD (for application, logs, and dependencies)
vCPU4 vCPUs
Network1 Gbps recommended
Software DependenciesDocker, 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

ComponentMinimum Requirement
OSRHEL 9.x, Rocky Linux 9.x, AlmaLinux 9.x, or Ubuntu 24.04 LTS
RAM32 GB (recommended for concurrent users and larger datasets)
Disk Space100 GB SSD or NVMe (expandable as data grows)
vCPU8 vCPUs
Network1–10 Gbps recommended
DatabaseDedicated PostgreSQL or equivalent DB instance (can be on same node or external)
Cache LayerRedis/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

ComponentMinimum Requirement (per node)
OSRHEL 9.x, Rocky Linux 9.x, AlmaLinux 9.x, or Ubuntu 24.04 LTS
RAM16 GB per node (minimum)
Disk Space50 GB per node
vCPU4–8 vCPUs per node
NodesMinimum 3 manager nodes (odd number for quorum) + 2 worker nodes
NetworkOverlay 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

ComponentMinimum Requirement (per node)
OSRHEL 9.x, Rocky Linux 9.x, AlmaLinux 9.x, Ubuntu 24.04 LTS, or managed Kubernetes service (AKS, EKS, GKE)
RAM16 GB per worker node (minimum)
Disk Space50 GB per node (expandable persistent volumes recommended)
vCPU4–8 vCPUs per node
Control PlaneManaged by your Kubernetes provider or 3+ control plane nodes for self-hosted
NetworkCNI plugin with 1–10 Gbps bandwidth
StoragePersistent 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

ComponentMinimum Requirement (per node)
OSRHEL 9.x, Rocky Linux 9.x, AlmaLinux 9.x, or Ubuntu 24.04 LTS
RAM16 GB per node
Disk Space50 GB per node
vCPU4–8 vCPUs per node
Cluster SizeMinimum 3 Nomad server nodes + 2 worker nodes
NetworkHigh-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

EnvironmentOSRAMDiskvCPUNodes
DevelopmentUbuntu 24.0416 GB20 GB41
Production Single NodeRHEL/Rocky/Alma/Ubuntu 24.0432 GB100 GB81
Docker SwarmRHEL/Rocky/Alma/Ubuntu 24.0416 GB per node50 GB per node4–8 per node3+ manager + 2+ worker
KubernetesRHEL/Rocky/Alma/Ubuntu 24.04 or managed16 GB per worker50 GB per node4–8 per node3+ control plane + worker nodes
NomadRHEL/Rocky/Alma/Ubuntu 24.0416 GB per node50 GB per node4–8 per node3+ server + 2+ worker