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).
- Go to AWS Console → Services → CloudFormation
- Click "Create Stack" → "With new resources (standard)"
- Select "Template is ready"
- 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_IAMUpload 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.
- Review all parameters
- Check "I acknowledge that AWS CloudFormation might create IAM resources"
- Click "Create Stack"
- Monitor the "Events" tab for deployment progress
- 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