EC2 Installation Guide

Deploy TestIntel on an AWS EC2 instance for team access.

Prerequisites

1. Launch an EC2 instance

2. Connect and install Docker


# Amazon Linux 2023
sudo yum update -y
sudo yum install -y docker
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker ec2-user

# Ubuntu 22.04
sudo apt update
sudo apt install -y docker.io docker-compose-plugin
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker ubuntu

Log out and back in for the group change to take effect.

3. Create the deployment directory


mkdir ~/testintel && cd ~/testintel

4. Create docker-compose.yml


services:
  testintel:
    image: ghcr.io/octoblue-tech/testintel:latest
    ports:
      - "8000:8000"
    volumes:
      - ./testintel_data:/app/testintel_data
      - ./config.yaml:/app/config.yaml
    environment:
      - TESTINTEL_ADMIN_KEY=${TESTINTEL_ADMIN_KEY}
      - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
    restart: unless-stopped

5. Create config.yaml


ai:
  provider: anthropic

storage:
  provider: local

code_context:
  provider: github

6. Set environment variables


# Create .env file (docker compose reads this automatically)
cat > .env << 'EOF'
TESTINTEL_ADMIN_KEY=your-secret-admin-key
ANTHROPIC_API_KEY=your-anthropic-api-key
EOF

chmod 600 .env

7. Start TestIntel


docker compose up -d

TestIntel is now running at http://:8000.

8. (Recommended) Set up HTTPS with Caddy

For production use, add a reverse proxy with automatic HTTPS:


sudo yum install -y caddy   # Amazon Linux
# or: sudo apt install -y caddy   # Ubuntu

Create /etc/caddy/Caddyfile:


testintel.yourdomain.com {
    reverse_proxy localhost:8000
}

sudo systemctl start caddy
sudo systemctl enable caddy

Update your security group to allow inbound 443 and point your DNS to the EC2 public IP.

9. Verify

Open https://testintel.yourdomain.com (or http://:8000) in your browser. Log in with your admin key.

Maintenance


# View logs
docker compose logs -f

# Update to latest version
docker compose pull
docker compose up -d

# Backup data
tar czf testintel-backup-$(date +%Y%m%d).tar.gz testintel_data/ config.yaml

Using S3 storage (optional)

For durable storage, attach an IAM role to the EC2 instance with S3 access and update config.yaml:


storage:
  provider: s3
  s3:
    bucket: your-testintel-bucket
    region: us-east-1

Using Bedrock (optional)

For AI processing within your AWS account (no data leaves AWS):

  1. Attach an IAM role with Bedrock access to the EC2 instance
  1. Update config.yaml:
  2. 
    ai:
      provider: bedrock
      bedrock:
        region: us-east-1
        model_id: anthropic.claude-3-sonnet-20240229-v1:0
    

No API key needed — authentication uses the instance's IAM role.