EC2 Installation Guide
Deploy TestIntel on an AWS EC2 instance for team access.
Prerequisites
- AWS account with EC2 access
- An EC2 instance (t3.small or larger recommended)
- Security group allowing inbound traffic on port 8000 (or 443 if using HTTPS)
- SSH access to the instance
1. Launch an EC2 instance
- AMI: Amazon Linux 2023 or Ubuntu 22.04
- Instance type: t3.small (2 vCPU, 2 GB RAM) minimum
- Storage: 20 GB gp3 (sufficient for local storage mode)
- Security group: Allow inbound TCP 8000 (or 80/443 for production with reverse proxy)
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://.
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://) 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):
- Attach an IAM role with Bedrock access to the EC2 instance
- Update
config.yaml:
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.