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
| 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)
- Verify that /var/tmp/Roost does not exist already
- Check the read/write/execute permissions on the mount point
- Extract the volume ID
- Mount the disk, volume as Roost folder
- 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
- 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.
- Transfer Installer using scp
- 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/.bash_profile
vim $HOME/.bash_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
source $HOME/.bash_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 <>