reNgine Tutorial

Deploy reNgine on AWS

Launch a fully-configured reNgine Cloud instance on AWS in under 5 minutes using CloudFormation.

Overview

This tutorial guides you through deploying reNgine Cloud on AWS using our pre-configured CloudFormation template. The deployment includes EC2 instance, RDS PostgreSQL database, ElastiCache Redis for Celery task queue, and docker-compose orchestration for all reconnaissance services.

Prerequisites

  • AWS Account with EC2 and RDS permissions
  • Basic understanding of AWS CloudFormation
  • SSH key pair for EC2 access
  • Domain name for SSL configuration (optional)

What You'll Get

  • EC2 instance running reNgine (t3.large recommended)
  • RDS PostgreSQL database for data persistence
  • ElastiCache Redis for Celery task management
  • Docker-compose with all reconnaissance tools
  • Security group with HTTPS (443) and Admin (8000) ports
  • Elastic IP for consistent access
  • Pre-configured NGINX reverse proxy with SSL

Step 1: Access AWS CloudFormation

Log into your AWS Console and navigate to the CloudFormation service. Select a region with good performance for your location (us-east-1, us-west-2, or eu-west-1 recommended).

  1. Go to AWS Console → Services → CloudFormation
  2. Click "Create Stack" → "With new resources (standard)"
  3. Select "Template is ready"
  4. Choose "Upload a template file"

Step 2: Upload HailBytes Template

Download our CloudFormation template and upload it to AWS:

# Download template
curl -O https://hailbytes.com/templates/rengine-cloudformation.yaml

# Or use AWS CLI
aws cloudformation create-stack \
  --stack-name rengine-production \
  --template-url https://hailbytes.com/templates/rengine-cloudformation.yaml \
  --parameters \
    ParameterKey=InstanceType,ParameterValue=t3.large \
    ParameterKey=DBInstanceClass,ParameterValue=db.t3.medium \
  --capabilities CAPABILITY_IAM

Upload the file in the CloudFormation console and click "Next".

Step 3: Configure Stack Parameters

Set the following parameters for your reNgine deployment:

Parameter Value Description
StackName rengine-production Unique stack identifier
InstanceType t3.large 2 vCPU, 8GB RAM (minimum)
KeyPair your-key-name SSH access key
AdminEmail admin@yourcompany.com Initial admin account
DBInstanceClass db.t3.medium PostgreSQL database size
RedisNodeType cache.t3.small Redis cache for Celery
VolumeSize 100 EBS volume size (GB)

Step 4: Review and Deploy

Review your configuration and launch the stack. Deployment typically takes 5-8 minutes.

  1. Review all parameters
  2. Check "I acknowledge that AWS CloudFormation might create IAM resources"
  3. Click "Create Stack"
  4. Monitor the "Events" tab for deployment progress
  5. Wait for status "CREATE_COMPLETE"

Step 5: Access Your reNgine Dashboard

Once deployment completes, access your reNgine instance using the provided URLs.

# Get outputs from CloudFormation
aws cloudformation describe-stacks \
  --stack-name rengine-production \
  --query 'Stacks[0].Outputs'

# Outputs:
# - WebURL: https://rengine.yourcompany.com
# - AdminURL: https://rengine.yourcompany.com:8000/admin
# - DatabaseEndpoint: rengine-db.abc123.us-east-1.rds.amazonaws.com
# - RedisEndpoint: rengine-redis.abc123.cache.amazonaws.com
# - DefaultUsername: admin
# - DefaultPassword: (check CloudFormation outputs or EC2 user data)

Navigate to the Web URL in your browser and log in with the default credentials. You'll be prompted to change your password on first login.

Understanding the Architecture

reNgine Cloud uses a containerized architecture managed by docker-compose:

Architecture Components

Component Purpose Technology
Web Application Django web interface Python/Django + React
Database Data persistence RDS PostgreSQL 14+
Celery Workers Async task processing Celery + Python
Message Broker Task queue management ElastiCache Redis
Recon Tools Scanning engines subfinder, httpx, nuclei, etc.
Reverse Proxy SSL termination & routing NGINX with Let's Encrypt
# SSH into your instance to view running containers
ssh -i your-key.pem ec2-user@

# View docker-compose services
cd /opt/rengine
docker-compose ps

# Expected output:
NAME                STATUS              PORTS
rengine-web        Up 5 minutes        0.0.0.0:8000->8000/tcp
rengine-celery     Up 5 minutes
rengine-celery-beat Up 5 minutes
rengine-redis      Up 5 minutes        0.0.0.0:6379->6379/tcp
rengine-proxy      Up 5 minutes        0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp

Post-Deployment Configuration

Complete these steps to secure and optimize your deployment:

Security Checklist

  • ✓ Change default admin password immediately
  • ✓ Configure SSL certificate via Let's Encrypt or ACM
  • ✓ Restrict security group to your IP addresses
  • ✓ Enable CloudWatch logs for monitoring
  • ✓ Set up automated backups via AWS Backup
  • ✓ Configure Route 53 DNS for your domain
  • ✓ Enable RDS encryption at rest
  • ✓ Configure OpenAI API for AI-powered analysis (optional)

Configure SSL with Let's Encrypt

Set up free SSL certificates for your reNgine instance:

# SSH into EC2 instance
ssh -i your-key.pem ec2-user@

# Update domain in NGINX configuration
sudo nano /opt/rengine/nginx/rengine.conf

# Update server_name directive
server_name rengine.yourcompany.com;

# Install certbot
sudo yum install -y certbot python3-certbot-nginx

# Generate certificate
sudo certbot --nginx -d rengine.yourcompany.com

# Follow prompts to complete setup
# Certbot will automatically configure NGINX and set up auto-renewal

Ensure your domain's DNS A record points to your Elastic IP before running certbot.

Troubleshooting

Common Issues

Stack Creation Failed:

  • Check CloudFormation Events tab for error details
  • Verify you have sufficient EC2 instance limits in your region
  • Ensure IAM permissions for CloudFormation, EC2, RDS, and ElastiCache
  • Confirm your selected AZs support the chosen instance types

Cannot Access Web Dashboard:

  • Verify security group allows inbound traffic on port 8000 and 443
  • Check EC2 instance status is "running"
  • Review docker-compose logs: docker-compose logs -f web
  • Ensure RDS database is available and accessible

Scans Not Running:

  • Check Celery worker status: docker-compose logs celery
  • Verify Redis connection: redis-cli -h <redis-endpoint> ping
  • Ensure EC2 instance has internet access for downloading tools
  • Check disk space: df -h

Cost Estimation

Monthly AWS costs for typical reNgine deployment:

Resource Configuration Est. Monthly Cost
EC2 Instance t3.large (2 vCPU, 8GB) $60
RDS PostgreSQL db.t3.medium (50GB storage) $50
ElastiCache Redis cache.t3.small $25
EBS Storage 100GB GP3 $8
Elastic IP 1 static IP $0
Data Transfer ~200GB/month $18
Total ~$161/month

Next Steps

Run Your First Scan

Learn how to configure and execute your first reconnaissance scan.

View Tutorial →

Configure AI Analysis

Enable GPT-powered vulnerability analysis and automated reports.

View Tutorial →

Need Help?

If you encounter issues during deployment, our support team is here to help.

Contact Support