GoPhish Tutorial

Deploy GoPhish on AWS

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

Overview

This tutorial walks you through deploying GoPhish Cloud on AWS using our pre-configured CloudFormation template. The automated deployment includes EC2 instance provisioning, security group configuration, and initial setup.

Prerequisites

  • AWS Account with EC2 permissions
  • Basic understanding of AWS CloudFormation
  • SSH key pair for EC2 access (optional)

What You'll Get

  • EC2 instance running GoPhish (t3.medium recommended)
  • Security group with HTTPS (443) and Admin (3333) ports
  • Elastic IP for consistent access
  • PostgreSQL RDS instance for data persistence
  • Pre-configured NGINX reverse proxy with SSL

Step 1: Access AWS CloudFormation

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

  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/gophish-cloudformation.yaml

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

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

Step 3: Configure Stack Parameters

Set the following parameters for your GoPhish deployment:

Parameter Value Description
StackName gophish-production Unique stack identifier
InstanceType t3.medium 2 vCPU, 4GB RAM
KeyPair your-key-name SSH access (optional)
AdminEmail admin@yourcompany.com Initial admin account
DBInstanceClass db.t3.small RDS database size

Step 4: Review and Deploy

Review your configuration and launch the stack. Deployment typically takes 3-5 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 GoPhish Dashboard

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

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

# Outputs:
# - AdminURL: https://gophish.yourcompany.com:3333
# - PublicURL: https://gophish.yourcompany.com
# - DefaultUsername: admin
# - DefaultPassword: (check your email or EC2 user data)

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

Post-Deployment Configuration

Complete these steps to secure and optimize your deployment:

Security Checklist

  • ✓ Change default admin password immediately
  • ✓ Configure SSL certificate (Let's Encrypt recommended)
  • ✓ 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

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, and RDS

Cannot Access Admin Dashboard:

  • Verify security group allows inbound traffic on port 3333
  • Check EC2 instance status is "running"
  • Review EC2 system logs for application errors

Email Sending Issues:

  • AWS accounts have SES sending limits by default
  • Request production access via AWS SES console
  • Configure SMTP settings in GoPhish (see SMTP tutorial)

Cost Estimation

Monthly AWS costs for typical GoPhish deployment:

Resource Configuration Est. Monthly Cost
EC2 Instance t3.medium (2 vCPU, 4GB) $30
RDS PostgreSQL db.t3.small (20GB storage) $25
Elastic IP 1 static IP $0
Data Transfer ~100GB/month $9
Total ~$64/month

Next Steps

Create Your First Campaign

Learn how to set up and launch your first phishing simulation campaign.

View Tutorial →

Configure SMTP

Set up Amazon SES, SendGrid, or other SMTP providers for email delivery.

View Tutorial →

Need Help?

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

Contact Support