# 🚀 Malware Website Crawler - Setup Checklist

Use this checklist to ensure you complete all setup steps correctly.

## ✅ Pre-Setup Requirements

- [ ] Computer with internet connection
- [ ] Credit card for AWS account (for verification, not immediate charges)
- [ ] Email address for account creation
- [ ] 30-45 minutes of time for complete setup

## ✅ Step 1: GitHub Setup

- [ ] Created GitHub account at [github.com](https://github.com)
- [ ] Verified email address
- [ ] Created new repository named `malware-website-crawler`
- [ ] Made repository **Public** (required for free GitHub Actions)
- [ ] Uploaded all project files to repository
- [ ] Committed initial files with message "Initial malware crawler setup"

## ✅ Step 2: AWS Account Setup

- [ ] Created AWS account at [aws.amazon.com](https://aws.amazon.com)
- [ ] Completed account verification process
- [ ] Logged into AWS Management Console
- [ ] Selected preferred region (e.g., "US East (N. Virginia)")

## ✅ Step 3: AWS IAM User Setup

- [ ] Navigated to IAM service in AWS Console
- [ ] Created new user: `malware-crawler-deploy`
- [ ] Selected "Programmatic access"
- [ ] Attached required policies:
  - [ ] `AmazonECS_FullAccess`
  - [ ] `AmazonRDS_FullAccess`
  - [ ] `AmazonElastiCacheFullAccess`
  - [ ] `AmazonS3FullAccess`
  - [ ] `AmazonVPCFullAccess`
  - [ ] `IAMFullAccess`
  - [ ] `CloudWatchLogsFullAccess`
  - [ ] `AmazonEC2ContainerRegistryFullAccess`
  - [ ] `ElasticLoadBalancingFullAccess`
  - [ ] `AWSCostExplorerReadOnlyAccess`
- [ ] Downloaded CSV file with access keys
- [ ] **IMPORTANT**: Saved CSV file securely

## ✅ Step 4: API Services Setup (Optional)

- [ ] Created VirusTotal account at [virustotal.com](https://virustotal.com)
- [ ] Obtained VirusTotal API key
- [ ] Created Shodan account at [shodan.io](https://shodan.io) (optional)
- [ ] Obtained Shodan API key (optional)

## ✅ Step 5: GitHub Secrets Configuration

- [ ] Navigated to GitHub repository → Settings → Secrets and variables → Actions
- [ ] Added secret: `AWS_ACCESS_KEY_ID` (from CSV file)
- [ ] Added secret: `AWS_SECRET_ACCESS_KEY` (from CSV file)
- [ ] Added secret: `VIRUSTOTAL_API_KEY` (if available)
- [ ] Added secret: `SHODAN_API_KEY` (if available)

## ✅ Step 6: Terraform Configuration

- [ ] Created `terraform/terraform.tfvars` file in GitHub repository
- [ ] Added configuration with your IP address:
  ```hcl
  aws_region = "us-east-1"
  environment = "prod"
  allowed_ips = ["YOUR_IP_ADDRESS/32"]
  ```
- [ ] Found IP address at [whatismyipaddress.com](https://whatismyipaddress.com)
- [ ] Committed and pushed terraform.tfvars file

## ✅ Step 7: Deployment

- [ ] Navigated to GitHub repository → Actions tab
- [ ] Found "Deploy Malware Website Crawler" workflow
- [ ] Clicked "Run workflow" → "Run workflow" button
- [ ] Monitored deployment progress (10-15 minutes)
- [ ] Verified all steps completed successfully (green checkmarks)

## ✅ Step 8: Application Access

- [ ] Navigated to AWS Console → ECS service
- [ ] Found "malware-crawler-cluster" → "Services" → "malware-crawler-service"
- [ ] Copied Load Balancer DNS name
- [ ] Opened DNS name in web browser
- [ ] Verified Malware Website Crawler interface loads
- [ ] Tested application with sample URL (e.g., `https://example.com`)

## ✅ Step 9: Security Configuration

- [ ] Navigated to AWS Console → EC2 → Security Groups
- [ ] Found "malware-crawler-alb-sg"
- [ ] Edited inbound rules to restrict access to your IP address
- [ ] Updated terraform.tfvars with your IP address
- [ ] Committed and pushed security changes

## ✅ Step 10: Verification and Testing

- [ ] Application loads successfully in browser
- [ ] Can start a new scan
- [ ] Scan progress updates in real-time
- [ ] Results display correctly
- [ ] Reports section shows scan history
- [ ] No error messages in browser console

## ✅ Post-Setup Tasks

- [ ] Set up AWS billing alerts
- [ ] Bookmarked application URL
- [ ] Saved AWS Console login information
- [ ] Reviewed cost monitoring script: `./scripts/cost-monitor.sh`
- [ ] Understood teardown procedures for cost management

## 🚨 Important Notes

### Security
- **Never share your AWS access keys**
- **Keep your GitHub repository private if it contains sensitive data**
- **Regularly rotate your AWS access keys**
- **Monitor your AWS bill for unexpected charges**

### Cost Management
- **Expected monthly cost: $115-135**
- **Use teardown scripts when not using the application**
- **Set up billing alerts to monitor spending**
- **Stop ECS services when not in use**

### Maintenance
- **Check application logs regularly in CloudWatch**
- **Update the application by pushing code changes to GitHub**
- **Monitor AWS service health and status**
- **Keep AWS access keys secure and up to date**

## 🆘 Getting Help

If you encounter issues:

1. **Check the troubleshooting section in README.md**
2. **Review GitHub Actions logs for deployment errors**
3. **Check AWS CloudWatch logs for application errors**
4. **Verify all secrets are correctly configured**
5. **Ensure your IP address is correctly configured in security groups**

## 📞 Support Resources

- **AWS Documentation**: [docs.aws.amazon.com](https://docs.aws.amazon.com)
- **GitHub Actions Documentation**: [docs.github.com/en/actions](https://docs.github.com/en/actions)
- **Terraform Documentation**: [terraform.io/docs](https://terraform.io/docs)
- **Application Issues**: Check the troubleshooting section in README.md

---

**Congratulations!** 🎉 If you've completed all items on this checklist, your Malware Website Crawler should be fully operational and ready to use.
