Skip to main content

Prerequisites & System Requirements

Before the StackConsole team begins the CMP installation, your infrastructure must meet all requirements on this page.


Deployment models

CMP supports multiple deployment architectures — from a single POC VM to multi-server and HA production layouts. See Choosing a Hosting Topology for diagrams and guidance.

EnvironmentTypical layoutPurpose
Staging / POCSingle server (1 VM)Proof-of-concept, testing, pre-production validation
ProductionMulti-server (3 VMs)Frontend, Backend, and Database on separate servers
Large / HAHA multi-tier (18 servers)Redundant web, proxy, app, Redis, and database tiers

Use the two sections below for complete staging and production checklists. Shared items (SMTP, logos, installer access) are listed under Common requirements at the end of this page.


Staging / Single VM — full requirements

One VM runs the frontend, backend, database, Redis, and scheduler together. Use this layout for POC, staging, and pre-production validation — not for busy production workloads.

Topology: Single-server deployment

VM specifications

ParameterRequirement
Count1 VM (all CMP roles co-located)
OSUbuntu 24.04 LTS
CPU16 cores
RAM32 GB
Storage200 GB SSD
Open ports22, 80, 443, 8081

Storage layout

CMP installs packages under /, /var, and /home.

Single partition (recommended)

Allocate all available space to /. This is the simplest and recommended approach for staging.

Multiple partitions (minimum for 200 GB total)

Mount pointMinimum sizeNotes
/var100 GBPostgreSQL, logs, queue data
/home75 GBApplication data
/25 GBOS and system
warning

If partitions are too small, the installation will fail silently or services will crash after a short period. Always verify free space on all mount points before and after installation.

DNS / URL

Staging uses one public URL for the portal and API on the same host.

URLPurposeExample
Staging URLPortal and API on one hostnamestaging.yourcompany.com

DNS must be configured and propagated before installation begins. From the staging VM:

curl https://staging.yourcompany.com # must return a response, not a connection error

SSL / TLS

HTTPS is required in all environments.

ItemRequirement
Certificate filesfullchain.pem (full chain including intermediates) and privkey.pem (private key)
Where to placeUpload to /home/ssl/ on the staging VM, or share via email to satish.londhe@stackconsole.io
warning

Intermediate certificates are required. A certificate without the full chain will cause SSL handshake failures in some browsers and API clients.

Staging checklist

ItemStaging requirement
VM1 × Ubuntu 24.04, 16 CPU, 32 GB RAM, 200 GB SSD
Ports22, 80, 443, 8081 open
StorageSingle / partition recommended, or multi-partition layout above
DNSOne staging URL (for example staging.example.com)
SSLfullchain.pem + privkey.pem on the VM
Also requiredSMTP, logos, installer access

Production — three-VM requirements

Standard production splits CMP across three VMs: Frontend, Backend, and Database. Frontend serves the customer portal and reverse-proxies API traffic to the backend.

Topology: Multi-server deployment

VM specifications

Provision three separate VMs:

Frontend VM

ParameterRequirement
RoleNGINX + Customer Portal
OSUbuntu 24.04 LTS
CPU8 cores
RAM16 GB
Storage100 GB SSD
Open ports22, 80, 443, 8081

Backend VM

ParameterRequirement
RoleCMP API, workers, scheduler
OSUbuntu 24.04 LTS
CPU8 cores
RAM16 GB
Storage100 GB SSD
Open ports22, 80, 8081

Database VM

ParameterRequirement
RolePostgreSQL
OSUbuntu 24.04 LTS
CPU8 cores
RAM16 GB
Storage200 GB SSD
Open ports22, 5432

Storage layout

Single partition (recommended)

On each VM, allocate all available space to /.

Multiple partitions (minimum)

Frontend / Backend VM (100 GB total each)

Mount pointMinimum sizeNotes
/home50 GBPrimary application data
/var25 GBLogs, queue data
/25 GBOS and system

Database VM (200 GB total)

Mount pointMinimum sizeNotes
/var150 GBPostgreSQL stores all data under /var
/home25 GBApplication-level data
/25 GBOS and system
warning

If partitions are too small, the installation will fail silently or services will crash after a short period. Always verify free space on all mount points before and after installation.

Inter-VM communication

The three production VMs must reach each other over private IP addresses:

SourceDestinationPortProtocolPurpose
Frontend VMBackend VM80TCPFrontend → Backend API calls
Backend VMDatabase VM5432TCPDatabase connections (PostgreSQL)

Verify connectivity before installation:

# From Frontend VM — must succeed
curl http://<BACKEND_PRIVATE_IP>:80

# From Backend VM — must succeed
curl http://<API_URL> # e.g., curl https://api.example.com
nc -zv <DB_PRIVATE_IP> 5432
warning

Port 5432 must only be open on private IPs. Never expose the database port to the public internet.

DNS / URL

Production uses two public URLs — one for the portal and one for the API.

URLPurposeExample
Frontend URLCustomer-facing portalportal.yourcompany.com
Backend API URLAPI endpointapi.yourcompany.com

DNS must be configured and propagated before installation begins. Both frontend and backend servers must resolve and reach the backend API URL:

curl https://api.yourcompany.com # must return a response, not a connection error

What are the two URLs for?

CMP runs as two applications: a frontend (portal in the browser) and a backend (API for data and actions). Production therefore needs two FQDNs.

RoleRecommended example
Frontend (portal)portal.example.com
Backend (API)api.example.com

Do the two FQDNs need separate public IPs?

No. Both domains can use the same public IP on the frontend server:

FQDNHow it is served
portal.example.comServed from the frontend server
api.example.comReverse-proxied from the frontend server to the backend server

You do not need a separate public IP only for the API hostname when this reverse-proxy pattern is used.

SSL / TLS

HTTPS is required in all environments.

ItemRequirement
Certificate filesfullchain.pem (full chain including intermediates) and privkey.pem (private key)
Where to placeUpload to /home/ssl/ on each provisioned VM (Frontend, Backend, Database), or share via email to satish.londhe@stackconsole.io

The frontend VM terminates HTTPS for both portal and API hostnames when using the standard reverse-proxy layout.

warning

Intermediate certificates are required. A certificate without the full chain will cause SSL handshake failures in some browsers and API clients.

Production checklist

ItemProduction requirement
VMs3 × Ubuntu 24.04 — Frontend (8 CPU, 16 GB, 100 GB), Backend (8 CPU, 16 GB, 100 GB), Database (8 CPU, 16 GB, 200 GB)
PortsFrontend: 22, 80, 443, 8081 — Backend: 22, 80, 8081 — Database: 22, 5432 (private only)
StoragePer-VM layout above
NetworkingPrivate connectivity Frontend → Backend (80) and Backend → Database (5432)
DNSTwo URLs — portal + API (can share one public IP on Frontend)
SSLfullchain.pem + privkey.pem on each VM
Also requiredSMTP, logos, installer access

HA — server requirements

A full HA multi-tier CMP deployment requires 18 servers in total (redundant web, proxy, application, cache, database, and related tiers).

See HA multi-tier deployment for the topology overview.

important

Per-role CPU, RAM, storage, and networking for HA are not listed here. Check with the StackConsole team for the detailed server breakdown and sizing before you provision.


Common requirements

The following apply to both staging and production installations.

Domain Name / URL

CMP requires publicly resolvable domain names before installation begins. Requirements depend on your deployment model:

EnvironmentDNS / URL requirements
Staging / single VMOne URL for portal and API — Staging — DNS / URL
Production (3 VMs)Separate portal and API URLs (can share one public IP) — Production — DNS / URL

SSL / TLS certificates

HTTPS is required in all environments. Provide fullchain.pem (full chain including intermediates) and privkey.pem (private key) before installation:

EnvironmentSSL requirements
Staging / single VMCertificates on the single VM — Staging — SSL / TLS
Production (3 VMs)Certificates on each VM (Frontend, Backend, Database) — Production — SSL / TLS
warning

Intermediate certificates are required. A certificate without the full chain will cause SSL handshake failures in some browsers and API clients.

SMTP / Email configuration

CMP sends transactional emails (invoices, alerts, user notifications). Provide these SMTP credentials before setup:

VariableExample
MAIL_HOSTsmtp.mailgun.org
MAIL_PORT587
MAIL_USERNAMEnoreply@yourcompany.com
MAIL_PASSWORD(your SMTP password)
MAIL_ENCRYPTIONtls
MAIL_FROM_ADDRESSnoreply@yourcompany.com
MAIL_FROM_NAMEYourCompany Cloud

SMS / Mobile verification (optional)

If you plan to enable mobile OTP verification during customer registration, provide configuration details for one of the supported SMS providers to the StackConsole deployment team:

  • MSG91 (MSG91_AUTH_KEY, MSG91_FLOW_ID, MSG91_SENDER)
  • Twilio (TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN, TWILIO_FROM_NUMBER)
  • Spinning Disk (SPINNING_DISK_AUTH_KEY, SPINNING_DISK_SENDER, DLT template mapping)

See SMS Gateways & Verification for full parameter specifications.

App logos

CMP supports light and dark themes. Two logo variants are required:

PropertyValue
Dimensions160 × 40 px
FormatsPNG (transparent background recommended for Email and Invoice PDF), SVG (for web portal)
VariantsLight theme logo + Dark theme logo

Share logos to satish.londhe@stackconsole.io.

Access for StackConsole installation team

The StackConsole team requires access to your infrastructure to perform installation and configuration. Choose one of the following:

Option 1 — VPN access (preferred)

Provide VPN access to the following team members:

NameEmail
Satish Londhesatish.londhe@stackconsole.io
Ganesh Kanadeganesh.kanade@stackconsole.io
Saurabh Rapatwarsaurabh.rapatwar@stackconsole.io

Option 2 — IP whitelist (jump server)

If VPN is not feasible, whitelist our jump server IP:

14.192.19.227

This IP must have SSH access (port 22) to all provisioned VMs.


Orchestrator-specific requirements

Each orchestrator has additional requirements on top of the common prerequisites above. Select your orchestrator: