Skip to main content

RoostGPT CLI Installation Guide - EC2 Linux

Overview

RoostGPT is an AI-powered testing tool. This guide will help you install RoostGPT on your EC2 (RHEL or Ubuntu) instance in just a few minutes.


Pilot Prerequisites

Before installing RoostGPT, ensure your system meets the following requirements:

Requirement Specification
Operating System RHEL 9.5 or Ubuntu 22.04
CPU (or vCPUs) 8 or more 
RAM 16 GB or more
Instance Type c5a.2xlarge or better
Root Disk Space Minimum 100 GB available
Additional Volume Minimum 150 GB
Mount Point for additional volume /var/tmp/Roost (with full permissions granted to SSH user)
Network Internet connection enabled
Permissions sudo/root access required (SSH user should have sudo permissions)
   

AWS Key & Secret

Set in environment or in .profile for accessing AWS Services

AWS IAM User Role

Policy: AmazonBedrockFullAccess 

or

Custom Bedrock Policy as defined below

AWS Bedrock Model (one or more of these listed models)

global.anthropic.claude-sonnet-4-5-20250929-v1:0

global.anthropic.claude-sonnet-4-20250514-v1:0

 

eu.anthropic.claude-sonnet-4-5-20250929-v1:0

eu.anthropic.claude-sonnet-4-20250514-v1:0

eu.anthropic.claude-3-7-sonnet-20250219-v1:0



RoostGPT License & Installer

Provided by Roost Team



POC 1 - Input Sample  

1. Word document or PDF with User Story or System Analysis Document 

2. Optional: API Specification that is representative of current features

POC 2 - Input Sample

1. Swagger API Spec

AWS Bedrock Model Access to one or more of the anthropic (cross-region) models is fine.

Custom Bedrock Policy for AWS IAM User
{
    Version = "2012-10-17"
    Statement = [
        {
            Effect = "Allow"
            Action = [
              "bedrock:InvokeModel",
              "bedrock:InvokeModelWithResponseStream",
              "bedrock:ListFoundationModels",
              "bedrock:GetFoundationModel"
            ]
            Resource = "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "bedrock:GetInferenceProfile",
                "bedrock:ListInferenceProfiles",
            ],
            "Resource": [
                "arn:aws:bedrock:*:*:inference-profile/*",
                "arn:aws:bedrock:*:*:application-inference-profile/*"
            ]
        }
    ]
}
  • Configure AWS profile into launched server, either by

    • setting AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY, in $HOME/.profile

    • Or stage $HOME/.aws/credentials

  • Transfer Roost license file (.ral) into EC2 instance.

  • Transfer roostgpt-installer executable into the EC2 instance
  • Ensure Python3 & AWS CLI is installed on the instance to support troubleshooting.


Details of Roost Installer 

Bundled artifact in the Roost installer

RoostGPT can be executed locally for Unit Tests. However, it is recommended that the necessary language version and build tools, dependency have to be installed on EC2 (Linux).

Name Purpose / Description Location
roostgpt-linux CLI executable for roostGPT

Bundled binary  

Reference: v1.1.18/roostgpt-linux

roostenc-linux Decryt/Encrypt binary for troubleshooting RoostGPT behaviour Bundled in the roostgpt-installer (not available publicly)
license/license.ral Roost License File Bundled in the roostgpt-installer (not available publicly)
workspace/postman-api-test Sample swagger API spec file and env to generate postman collection with tests

API Spec: weather,yaml 

Reference: https://openweathermap.org/api

workspace/functional-test Sample Functional Test project with env Sample word document written by Roost Team - (not publicly available)  

Installation Steps

Mount EBS Volume (optional, check if it is done already)
  1. Verify that /var/tmp/Roost does not exist already
  2. Check the read/write/execute permissions on the mount point
  3.  Extract the volume ID
  4. Mount the disk, volume as Roost folder
  5. Add fstab entry for handling m/c reboot
# Verify if the Roost folder exists
df -h /var/tmp/Roost

# if not create directory
sudo mkdir $ROOST_DIR
sudo chown `id -u`:`id -g` ${ROOST_DIR}

# Check if volume and disk exists
# Typically this is the 
export DISK="nvme0n1" 
export EBS_VOLUME="/dev/nvme0n1" 
blkid | grep "${DISK}:"
lsblk | grep -w "${EBS_VOLUME}"

# Run below snippet to mount disk and add entry to fstab file 
    lsblk -f | grep -w "${DISK}" | grep "ext4"
    if [ $? -ne 0 ]; then
      sudo mkfs -t ext4 ${EBS_VOLUME}
    fi
    if [ ! -d "${ROOST_DIR}" ]; then
      sudo mkdir ${ROOST_DIR}
    fi
    sudo mount ${EBS_VOLUME} ${ROOST_DIR}
    mount | grep "$EBS_VOLUME"
    if [ $? -eq 0 ]; then
      sudo chown `id -u`:`id -g` ${ROOST_DIR}

      grep -v "${ROOST_DIR}" /etc/fstab  | sudo tee /etc/fstab.noroost
      # Plan for reboot
      epoch=$(date +%s)
      sudo cp /etc/fstab /etc/fstab.orig.${epoch}
      which blkid
      if [ $? -eq 0 ]; then
        uuid=$(blkid | grep "${EBS_VOLUME}:" | awk '{print $2}'|sed -e 's/"//g')
      fi
      if [ -z $uuid ]; then
        id=$(lsblk -f -o NAME,UUID | grep -w "${DISK}" | awk '{print $2}'|sed -e 's/"//g')
        uuid="UUID=${id}"
      fi
      if [ ! -z $uuid ]; then
        echo "${uuid}     ${ROOST_DIR}    ext4    defaults        0       2" | sudo tee -a /etc/fstab.noroost
        sudo cp /etc/fstab.noroost /etc/fstab
        sudo umount ${ROOST_DIR}
        sudo mount -a
        if [ $? -eq 0 ]; then
          mount | grep "$EBS_VOLUME"
          if [ $? -ne 0 ]; then
           sudo chown `id -u`:`id -g` ${ROOST_DIR}
          fi
        fi
      fi

Copy the installer and license file
  1. Download Installer from Shared Google Drive <LOCATION SENT OVER EMAIL>
    • You have to download the RoostGPT installer (Roost License file will be bundled) from a shared Google Drive.
  2. Transfer Installer using scp
  3. Make Installer executable
# From your local machine, copy installer to Ubuntu instance
scp roostgpt-installer.sh ubuntu@<your-instance-ip>:~/

# Then SSH into your instance
ssh ubuntu@<your-instance-ip>


# Add execute permissions to installer
chmod +x roostgpt-installer.sh

# Execute Roost Installer
sudo ./roostgpt-installer.sh
Installation interface:
╔════════════════════════════════════════════════════════════╗
║                                                            ║
║              RoostGPT Installer                            ║
║                                                            ║
╚════════════════════════════════════════════════════════════╝

[→] Checking system requirements...
[✓] System requirements met

Continue with installation? [Y/n]

Press Y and Enter to continue.

The installer will:

  • Extract files
  • Install RoostGPT binary
  • Unpack the code parsers
  • Copy workspace with pre-canned examples
  • Configure all necessary permissions

Installation typically completes in under 1 minute.


Verify Installation

After successful installation, you'll see:

╔════════════════════════════════════════════════════════════╗
║                                                            ║
║     ✓ RoostGPT Installation Completed Successfully!       ║
║                                                            ║
╚════════════════════════════════════════════════════════════╝

Now you can run: roostgpt
Installed Samples
# Show the installed sample workspaces

find ~/workspace -ls
Structure - Roost Sample Workspace 

The workspace contains example projects to help you get started:

~/workspace/
├── functional-test/
    └── functional-test.env          # Configuration for POC 1
    └── run.sh                       # Run script for POC 1
    └── UserStory.docx               # Sample user requirements doc for POC 1
└── postman-api-test/
    └── postman-api-test.env          # Configuration for POC 2
    └── run.sh                        # Run script for POC 2
    └── weather.yaml                  # Sample Swagger Spec for POC 2


Configuring AWS Credentials  

Adding AWS Credentials

# SSH into your instance
ssh ubuntu@<your-instance-ip>

# Edit $HOME/.profilebash_profile
vim $HOME/.profilebash_profile

# Add export AWS keys to your $HOME/.profile and save the file
export AWS_ACCESS_KEY_ID=xxx
export AWS_SECRET_ACCESS_KEY=xxx
export AWS_DEFAULT_REGION=eu-west-1
export AWS_BEDROCK_MODEL_TYPE=cross-region # Supports [foundation, cross-region]
export AWS_BEDROCK_MODEL=global.anthropic.claude-sonnet-4-20250514-v1:0

# Source the file .profile to make the AWS creds available in the same session
. $HOME/.profilebash_profile

Using RoostGPT

Running RoostGPT

You can now access RoostGPT from anywhere on your system, using the command roostgpt

Quick Start Example

# 1. SSH into your Ubuntu instance
ssh ubuntu@<your-instance-ip>

# 2. Navigate to workspace
cd ~/workspace/functional-test

# 3. Run RoostGPT
./run.sh

# OR you can run using the full command
roostgpt test create -c functional-test.env

Viewing Roost Test Results

roostgpt test result

Here's a complete workflow from login to running RoostGPT:


Configure a new test

Each project folder in your workspace contains a <UNIQUE-TEST-NAME>.env file for configuration. You can copy this env and modify the contents for a new test run. Or create a new test env file.

Execute roostgpt with this new env.


# Create a new Roost Test Configuration File
vim new_test.env

###################################
# Modify the below attributes
TEST_NAME=ANY_UNIQUE_NAME    # Any unique_name to represent the test configuration
TEST_TYPE=functional         # Default is unit; Supports [unit, functional, api-spec-test, integration]
AI_TYPE=bedrock_ai           # Default is openai; Supports [openai, azure_open_ai, claude_ai, dbrx, bedrock_ai, gemini]

ROOST_USER_INPUT_TYPE=file                # Roost User input Type for test generation; Supports [text, file]
ROOST_USER_INPUT_FILE=USER_FILE_PATH      # The user input file-path will be used to generate tests

# GIT env vars
GIT_TYPE=local               # Default is github; Supports [github, gitlab, azure, bitbucket, local]
LOCAL_PROJECT_PATH=PATH_TO_WORKSPACE_FOLDER       # Required if GIT_TYPE is local, Path to your workspace.

# AWS Bedrock env vars
AWS_ACCESS_KEY_ID=                                # Required: If not defined here, it will be picked from environment 
AWS_SECRET_ACCESS_KEY=                            # Required: If not defined here, it will be picked from environment
AWS_SESSION_TOKEN=                                # Optional; AWS Session token.
AWS_DEFAULT_REGION=eu-west-1                      # Required if AI_TYPE=aws_bedrock.
AWS_BEDROCK_MODEL_TYPE=cross-region               # Required if AI_TYPE=aws_bedrock.
AWS_BEDROCK_MODEL=global.anthropic.claude-sonnet-4-20250514-v1:0       # Required if AI_TYPE=aws_bedrock.

# Api Spec env vars
API_SPEC_TYPE=swagger                             # Optional; Supports [swagger]
API_SPEC_SOURCE=file                              # Optional; Supports [file, gitpath, url]
API_SPEC_FILE_PATH="$HOME/FILE"                   # Optional; path of the source file.
API_SPEC_URL=                                     # Optional; URL of the source file, if source is url

###################################

# Run the new test configuration
roostgpt test -c new_test.env


Troubleshooting

Installation Issues

Problem: Permission denied when running installer

# Solution: Make sure you're using sudo
sudo ./roostgpt-installer.sh

Problem: Command not found: roostgpt

# Solution: Verify installation completed successfully
which roostgpt
# Should output: /usr/local/bin/roostgpt

# Check executable permissions on roostgpt and grant if missing
chmod +x $(which roostgpt)

# If not found, re-run the installer
sudo ./roostgpt-installer.sh

Problem: Insufficient disk space

# Solution: Check available space
df -h $HOME /var/tmp/Roost

# Free up space or use an instance with more storage

Runtime Issues

Problem: Can't find workspace

# Solution: Workspace is in your home directory
cd ~/workspace
ls -la

Problem: Configuration not loading

# Solution: Ensure .env files exist and are readable
find ~/workspace/ -name '*.env' -ls
find ~/workspace/ -name '*.env' -exec chmod 644 {} \;

Verify AWS Bedrock Access 

aws cli <>