SkillAgentSearch skills...

SmartGW

Domain based VPN Gateway/Proxy for all devices

Install / Use

/learn @mrahmadt/SmartGW

README

SmartGW

SmartGW is a VPN Gateway/Proxy that allows you to route HTTP/HTTPS traffic for specific internet domains to go through VPN tunnel while keeping the other traffic goes through your ISP gateway.

Example:

  • HTTP/HTTPS for netflix.com (from all devices in your network) --> Will go through your VPN tunnel.
  • HTTP/HTTPS for youtube.com (from all devices in your network) --> Will go through your ISP gateway.

This can help you to:

  • Access Geo-restricted content.
  • Access any blocked domains.
  • Use it with all your devices (Laptop, Mobiles, SmartTV...etc).
  • Utilize your full ISP network speed to access any site that you don't want it to go through the VPN tunnel.
  • Work with <a href="https://pi-hole.net/">Pi-Hole</a> for Network-wide Ad Blocking
  • More browsing privacy?.

Features

  • Works with all devices in local network (PC, Laptop, Mobiles, SmartTV...etc).
  • No need to change any settings in your devices, install SmartGW and configure the DNS in your internet router.
  • Simple GUI to check SmartGW status and to add/remove any domain.
  • Automatically connect to the fastest low latency VPN servers in a given country.
  • Auto retry and auto-failover to next best VPN server if the connection dies.

How difficult it's?

The setup is straightforward, you need a Linux server, and a <a href="http://nordvpn.com">NordVPN</a> VPN subscription.

What Do I need to start?

  1. Linux server (any old laptop or <a href="https://en.wikipedia.org/wiki/Single-board_computer">single-board</a> such us <a href="https://www.raspberrypi.org/">Raspberry Pi</a> will work).
  2. <a href="http://nordvpn.com">NordVPN</a> VPN subscription.
  3. Static IP in your local network.
  4. <a href="https://docker.com/">Docker engine</a> with basic know how.

Instructions

  1. Install Linux.
  2. Set a static IP in your server.
  3. Install Docker.
  4. Download SmartGW source code.
  5. Rename example.env to .env and change the variables
#Your NordVPN Username
VPN_USERNAME=yourUsername@nordvpn.com
#Your NordVPN Password
VPN_PASSWORD=yourNordvpnPassword
#VPN country
VPN_OPTIONS=us
#Local network CIDR network
CIDR_NETWORK=192.168.1.0/24
#No need to change this
VPN_DNS1=103.86.96.100
#No need to change this
VPN_DNS2=103.86.99.100
#Pi-Hole web admin password
PIHOLE_PASSWORD=pihole
  1. Run SmartGW docker-compose
docker-compose up
  1. Open your browser and type your SmartGW IP (port 8080) (http://Your-Server-IP:8080/) and start adding your domains (e.g., yahoo.com).
  2. Define SmartGW IP address as the only DNS entry in the router.
Login to your router’s configuration page and find the DHCP/DNS settings. 
Note: make sure you adjust this setting under your LAN settings and not the WAN.

6e475c318358d8266052015e28841a72b3cc3b84

Enjoy!.

Screenshots

Screen Shot 2019-04-27 at 3 57 54 AM Screen Shot 2019-04-27 at 3 58 13 AM .

View on GitHub
GitHub Stars58
CategoryDevelopment
Updated3mo ago
Forks15

Languages

PHP

Security Score

82/100

Audited on Dec 23, 2025

No findings