Prerequisites

Before deploying Serverless CMS, ensure your development environment has all required software and accounts configured.

Required Software

Node.js 22.x LTS

Node.js is required for building the Admin Tool React application and packaging Lambda functions.

Installation

macOS (using Homebrew):

brew install node@22

Linux (using nvm):

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
nvm install 22
nvm use 22

Windows:

Download the installer from nodejs.org and run it.

Verification

node --version
# Should output: v22.x.x

npm --version
# Should output: 10.x.x or higher

Maven 3.9+

Maven orchestrates the build process and invokes the Serverless Maven Plugin for deployment.

Installation

macOS (using Homebrew):

brew install maven

Linux (Ubuntu/Debian):

sudo apt update
sudo apt install maven

Windows:

  1. Download Maven from maven.apache.org
  2. Extract to C:\Program Files\Apache\maven
  3. Add C:\Program Files\Apache\maven\bin to your PATH

Verification

mvn --version
# Should output: Apache Maven 3.9.x or higher
Note: Maven requires Java 11 or higher. If you don't have Java installed, Maven installation will typically include it, or you can install it separately from Adoptium.

AWS CLI 2.x

The AWS Command Line Interface is required for configuring credentials and verifying deployments.

Installation

macOS:

curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
sudo installer -pkg AWSCLIV2.pkg -target /

Linux:

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

Windows:

Download and run the MSI installer from aws.amazon.com/cli

Verification

aws --version
# Should output: aws-cli/2.x.x or higher

Git (Optional but Recommended)

Git is recommended for version control of your CMS configuration and custom components.

Installation

macOS:

brew install git

Linux:

sudo apt install git

Windows:

Download from git-scm.com

AWS Account Requirements

Active AWS Account

You need an AWS account with:

  • Billing enabled - Credit card on file for pay-as-you-go services
  • Administrator access - Ability to create IAM users and policies
  • Service limits - Default limits are sufficient for most deployments

If you don't have an AWS account, create one at aws.amazon.com.

Required AWS Services

The deployment uses the following AWS services (all available in eu-west-2):

Service Purpose Free Tier
S3 Static hosting, storage 5 GB storage, 20k GET requests/month
DynamoDB Content database 25 GB storage, 25 RCU/WCU
Lambda Backend functions 1M requests, 400k GB-seconds/month
API Gateway REST APIs 1M requests/month (12 months)
Cognito User authentication 50,000 MAUs
CloudFront CDN distribution 1 TB data transfer out/month (12 months)
Route 53 DNS management No free tier ($0.50/hosted zone)
ACM SSL/TLS certificates Free for public certificates
Free Tier: If you're within the first 12 months of your AWS account, many services offer generous free tiers that can cover development and low-traffic production deployments.

Billing Alerts

Set up billing alerts to monitor costs:

  1. Go to AWS Console → Billing Dashboard
  2. Click Budgets in the left sidebar
  3. Click Create budget
  4. Select Cost budget
  5. Set monthly budget (e.g., $50)
  6. Configure email alerts at 80% and 100% thresholds

Domain Name Requirements

Registered Domain

You need a registered domain name for the CMS. The domain can be:

  • Registered with Route 53 (simplest option)
  • Registered with another registrar but using Route 53 for DNS
  • A subdomain of an existing domain

Domain Structure

The CMS uses subdomains of your root domain:

Subdomain Purpose Example
admin.{rootDomain} Admin Tool interface admin.example.com
cms-api.{rootDomain} CMS API endpoints cms-api.example.com
api.{rootDomain} Public API endpoints api.example.com
{siteName}.{rootDomain} Published websites blog.example.com
Important: You need control over DNS records for your domain. If using an external registrar, you'll need to update nameservers to point to Route 53.

SSL/TLS Certificates

The deployment automatically provisions SSL/TLS certificates via AWS Certificate Manager (ACM) for all subdomains. This requires:

  • Route 53 hosted zone for your domain
  • Ability to create DNS validation records (automatic with Route 53)
  • Certificates are free when using ACM

Installation Verification

Verify All Prerequisites

Run these commands to verify your environment is ready:

# Check Node.js
node --version
npm --version

# Check Maven
mvn --version

# Check AWS CLI
aws --version

# Check Git (optional)
git --version

# Verify AWS credentials (after AWS setup)
aws sts get-caller-identity

Expected Output

You should see version numbers for all tools:

$ node --version
v22.11.0

$ npm --version
10.9.0

$ mvn --version
Apache Maven 3.9.6

$ aws --version
aws-cli/2.15.0
All set? Proceed to AWS Setup to configure your AWS credentials and permissions.