This roadmap keeps the project buildable in small pieces. Each phase ends with something testable.
The core VMware lab is complete:
- router VM
- client VM
- NAT
- dnsmasq
- DNS logging
- ad/tracker blocking
- firewall baseline
- traffic monitoring
- Tor mode
- lockdown mode
- dashboard
- CLI
WireGuard is documented and scripted for both a local third-VM server and a VPS server. Split tunneling is documented as an advanced extension and should only be enabled after route-specific tests are added.
Goal: make the project readable before writing technical scripts.
- Create the repository
- Add the README
- Add the folder structure
- Add architecture notes
- Add roadmap
- Add learning notes
- Add ethical use policy
- Add example configs without secrets
Goal:
Client VM -> Router VM -> Internet
Tasks:
- Create the Router VM
- Create the Client VM
- Configure VMware LAN Segment
GhostGate-Lab - Assign static IPs
- Enable IP forwarding on the Router VM
- Add NAT rules
- Test client-to-router ping
- Test client-to-internet ping by IP
- Test domain resolution
Goal:
Client VM -> Router VM DNS -> Internet
Tasks:
- Install
dnsmasq - Configure the Router VM as DNS resolver
- Enable DNS query logging
- Add a blocklist
- Block tracker test domains
- Prevent direct DNS leaks
Goal: make traffic visible and controllable.
Tasks:
- Install
tcpdump - Install
iftop - Install
vnstat - Add a monitoring script
- Add basic firewall rules
- Save firewall rules persistently
- Add lockdown mode
Goal:
Client VM -> Router VM -> Tor -> Internet
Tasks:
- Install Tor
- Configure Tor transparent proxy ports
- Redirect client TCP traffic through Tor
- Redirect DNS through Tor DNSPort
- Add
tor-onandtor-offscripts - Test with Tor Project API
Goal:
Client VM -> Router VM -> WireGuard VPN -> Internet
Tasks:
- Learn WireGuard basics
- Prepare local WireGuard server VM guide
- Prepare VPS WireGuard guide
- Add Router VM WireGuard client template
- Route client traffic through
wg0 - Add
vpn-onandvpn-offscripts - Add a public IP and handshake test path
Goal: make GhostGate easier to inspect and operate.
Tasks:
- Build a Flask dashboard
- Show DNS, firewall, traffic, and service state
- Show Tor and WireGuard status
- Add
ghostgateCLI commands - Add baseline service
Goal: turn the lab into a polished open-source project.
Tasks:
- Add split tunneling policy configuration
- Add direct/VPN/Tor/block categories
- Add leak test command
- Improve troubleshooting docs
- Add final demo script
- Clean up README and docs
- Add screenshots
- Add demo video or GIF
- dashboard mode switching with authentication
- automatic blocklist updates
- DNS-over-TLS or DNS-over-HTTPS upstream
- fully automated split tunneling
- traffic charts
- Raspberry Pi hardware deployment