Running phishing awareness campaigns inside your organization doesn’t require expensive SaaS platforms. Open-source tools like GoPhish, King Phisher, and Social-Engineer Toolkit let you design, launch, and track realistic phishing simulations entirely on your own infrastructure. This guide covers the best self-hosted phishing simulation platforms available in 2026, with full installation instructions and configuration examples.
Why Self-Host Your Phishing Simulation Platform
Phishing simulations involve sending realistic-looking deceptive emails to employees, tracking who clicks, who enters credentials, and who reports the message. Using a third-party SaaS vendor for this creates several problems:
Data sovereignty and privacy. When you use a cloud-based phishing platform, you are sending your employee email addresses, organizational structure, campaign results, and click behavior to a third party. In regulated industries (healthcare, finance, government), this data transfer may violate compliance requirements or internal data governance policies.
Cost at scale. SaaS phishing platforms typically charge per-user per-month. For organizations with thousands of employees, annual costs easily exceed $10,000–$30,000. A self-hosted solution runs on a single small VPS or bare-metal server with minimal ongoing costs.
Full customization. Self-hosted tools let you clone any landing page, use any sending domain, and customize templates without vendor restrictions. You can integrate with internal identity providers, SIEM systems, and ticketing platforms via local APIs.
No vendor lock-in. Your campaign history, templates, and user data remain under your control. Switching between tools or upgrading is entirely your decision.
Realistic testing. Self-hosted platforms can send from infrastructure that mirrors real attacker setups more closely than SaaS platforms, which use known sending IPs that spam filters may already flag.
GoPhish: The Industry Standard
GoPhish is the most widely deployed open-source phishing simulation framework. Written in Go, it provides a clean web interface for managing campaigns, email templates, landing pages, and user groups. It tracks opens, clicks, credential submissions, and reporting rates in real time.
Key Features
- Web-based dashboard with real-time campaign results
- Drag-and-drop email template editor with variable support (
{{.FirstName}},{{.Tracker}}) - Clone landing pages from any URL with automatic form capture
- Sending profiles supporting SMTP, SES, and SendGrid
- User group management with CSV import
- Campaign scheduling and automated reporting
- RESTful API for automation and CI/CD integration
- Built-in tracking pixel and click redirect handling
docker Installation
The fastest way to deploy GoPhish is with Docker Compose. Create a project directory and the following files:
| |
Create docker-compose.yml:
| |
Create config.json:
| |
Generate self-signed certificates (or mount Let’s Encrypt certs for production):
| |
On first startup, GoPhish generates a random admin password. Retrieve it from the logs:
| |
Navigate to https://your-server:3333 and log in with username admin and the generated password. You will be prompted to change it on first login.
Configuring a Sending Profile
GoPhish needs an SMTP server to send campaign emails. You can use your own mail server, an internal relay, or a transactional email service. Here is a configuration for a self-hosted Postfix relay:
| |
Inside GoPhish’s web interface, create a sending profile:
- Name: Internal Relay
- Host:
postfix:25(orsmtp.yourdomain.com:587for external) - Username/Password: credentials if required
- Ignore Certificate Errors: No (for production)
- Click “Send Test Email” to verify connectivity
Creating Your First Campaign
Create a Group: Import employee emails via CSV. Columns should be
First Name,Last Name,Email, and optionallyPosition.Create a Template: Write a realistic email. Use variables for personalization:
| |
Create a Landing Page: Use the “Import Site” feature to clone a legitimate login page, or build one manually. Enable “Capture Submitted Data” to record credential submissions for reporting purposes.
Launch the Campaign: Select your group, template, landing page, and sending profile. Choose immediate launch or schedule for a future date.
API Automation
GoPhish exposes a comprehensive REST API. Here is an example of launching a campaign programmatically:
| |
You can also fetch results and generate reports:
| |
King Phisher: The Flexible Alternative
King Phisher takes a different approach from GoPhish. Instead of a monolithic web application, it uses a client-server architecture with a Python-based server and GTK client. It is designed for flexibility and deep customization.
Key Features
- Client-server architecture with remote deployment support
- Plugin system for extending functionality
- Advanced email threading and reply tracking
- Web server for credential harvesting with customizable templates
- Integration with external threat intelligence feeds
- Detailed campaign analytics and export options
- Support for multi-tenant deployments
- SSH tunneling for secure remote access
Docker Installation
King Phisher is more complex to containerize due to its client-server model, but it can be deployed with Docker:
| |
Create server_config.yml:
| |
Start the server:
| |
The GTK client connects to the server over SSH or direct TCP. On Ubuntu/Debian:
| |
Social-Engineer Toolkit (SET): The Offensive Framework
Social-Engineer Toolkit is part of the Kali Linux toolkit and focuses on offensive security testing. While not a dedicated campaign management platform like GoPhish, it provides powerful phishing attack vectors for authorized security assessments.
When to Use SET
SET is best suited for penetration testing engagements where you need to quickly test specific attack vectors rather than run ongoing awareness campaigns. Key capabilities include:
- Spear-phishing attack generation with custom payloads
- Website attack vectors (credential harvesting, browser exploits, Java applets)
- Infectious media generator for USB-based attacks
- QRCode attack vector generator
- Mass-mailer campaigns
- Third-party module integration (Metasploit, custom payloads)
Quick Setup
| |
The interactive menu guides you through attack selection. For a credential harvesting campaign:
| |
The credential harvester sets up a cloned page that captures entered credentials. SET logs all submissions for later analysis.
Comparison: GoPhish vs King Phisher vs SET
| Feature | GoPhish | King Phisher | SET |
|---|---|---|---|
| Primary Use | Awareness campaigns | Campaign management | Penetration testing |
| Architecture | Single binary + web UI | Client-server (GTK + Python) | CLI + Python framework |
| Web Dashboard | Yes, built-in | No, separate GTK client | No, terminal-based |
| Template Editor | Visual drag-and-drop | Text-based with plugins | Command-line prompts |
| Landing Page Clone | Yes, one-click import | Manual setup required | Yes, via harvester |
| Real-time Tracking | Opens, clicks, submissions | Full analytics dashboard | Basic logging only |
| REST API | Full API with documentation | Limited API | No API |
| User Management | Groups, CSV import | Multi-tenant support | None built-in |
| Email Scheduling | Yes, cron-style | Yes, flexible scheduling | Manual execution only |
| Reporting | Built-in charts + CSV export | Advanced analytics + exports | Manual log review |
| Database | SQLite (built-in) | PostgreSQL | File-based logging |
| Container Support | Excellent, official image | Community images only | Manual setup |
| Learning Curve | Low | Medium | High |
| Best For | Ongoing awareness programs | Flexible campaign management | Quick security assessments |
Choosing the Right Tool
Choose GoPhish if: You need to run regular phishing awareness campaigns for employees. It is the easiest to deploy, has the best documentation, and provides everything needed for a complete awareness program. The web interface makes it accessible to non-technical security staff, and the REST API enables automation.
Choose King Phisher if: You need multi-tenant support, advanced plugin capabilities, or prefer a client-server architecture with PostgreSQL backing. It is ideal for MSSPs (managed security service providers) running campaigns for multiple clients from a single infrastructure.
Choose SET if: You are conducting authorized penetration testing and need rapid attack vector deployment. It integrates with Metasploit for post-exploitation and supports a wider range of attack techniques. However, it is not designed for long-term awareness programs.
Best Practices for Self-Hosted Phishing Campaigns
Sending Infrastructure
Your phishing emails need to reach the inbox, not the spam folder. Key steps:
Use a dedicated domain separate from your production email domain. If attackers spoof
yourcompany.com, you do not want your simulation domain getting blacklisted.Configure SPF, DKIM, and DMARC on your sending domain. Without proper authentication, your campaign emails will be flagged as spam, defeating the purpose of realistic testing.
| |
Warm up your IP address before launching large campaigns. Start with small batches (50–100 emails) and gradually increase volume over several days. Sudden high-volume sending from a new IP will trigger spam filters.
Use TLS for sending wherever possible. Many organizations require encrypted email transport, and unencrypted connections may be blocked.
Campaign Design
Vary timing and templates. Running the same campaign every quarter with the same email teaches employees to recognize your test, not real phishing. Rotate templates, subjects, and sending times.
Test reporting behavior. Track not only who clicks, but who uses the “Report Phishing” button. This is the most important metric for measuring awareness program effectiveness.
Include a teaching moment. After an employee clicks a simulated phishing link, redirect them to a brief educational page explaining the red flags they missed. This turns failures into learning opportunities.
Segment by department. Different teams face different threats. Finance employees receive invoice fraud attempts; HR receives resume-based phishing; developers receive fake npm or PyPI notifications. Customize campaigns accordingly.
Legal and Ethical Considerations
Get executive approval before launching any phishing simulation. Ensure your legal team has reviewed the scope, target audience, and data handling procedures.
Define clear rules of engagement. Document which tactics are allowed (credential harvesting, attachment testing) and which are off-limits (targeting executives, using sensitive topics like layoffs).
Protect collected data. Credential submissions from campaigns should be hashed or immediately deleted. Never store actual employee passwords, even from simulations.
Comply with local regulations. In the EU, GDPR applies to processing employee data from campaign results. Document your lawful basis (legitimate interest for security training) and ensure data retention policies are followed.
Conclusion
Self-hosted phishing simulation platforms offer cost-effective, privacy-preserving alternatives to expensive SaaS solutions. GoPhish remains the best choice for most organizations thanks to its simplicity, active development, and comprehensive feature set. King Phisher serves teams that need multi-tenant flexibility and plugin extensibility, while SET excels for rapid penetration testing engagements.
Whichever tool you choose, the key to a successful awareness program is consistency. Run campaigns regularly, vary your templates and timing, track both click rates and reporting rates, and use results to continuously improve your organization’s security posture. Running these tools on your own infrastructure keeps sensitive campaign data under your control and eliminates ongoing per-user licensing costs.
Frequently Asked Questions (FAQ)
Which one should I choose in 2026?
The best choice depends on your specific requirements:
- For beginners: Start with the simplest option that covers your core use case
- For production: Choose the solution with the most active community and documentation
- For teams: Look for collaboration features and user management
- For privacy: Prefer fully open-source, self-hosted options with no telemetry
Refer to the comparison table above for detailed feature breakdowns.
Can I migrate between these tools?
Most tools support data import/export. Always:
- Backup your current data
- Test the migration on a staging environment
- Check official migration guides in the documentation
Are there free versions available?
All tools in this guide offer free, open-source editions. Some also provide paid plans with additional features, priority support, or managed hosting.
How do I get started?
- Review the comparison table to identify your requirements
- Visit the official documentation (links provided above)
- Start with a Docker Compose setup for easy testing
- Join the community forums for troubleshooting