Skip to content
rezashirazinetPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

WireGate

A Windows GUI application for managing WireGuard proxy connections via wireproxy.

Windows Python 3.8+ License MIT

Features

  • Multi-endpoint management — Load and switch between multiple WireGuard .conf files
  • Latency testing — Ping endpoints to find the fastest server
  • Speed testing — Measure download speed through each endpoint
  • SOCKS5 & HTTP proxy — Route traffic through configurable local ports
  • Auto-reconnect — Automatically reconnect on connection drops
  • System tray — Minimize to tray with status indicator (optional)
  • Start with Windows — Launch automatically on system startup
  • Dark theme — Modern dark UI built with Tkinter

Screenshots

Requirements

  • Windows 10/11 (uses Windows-specific APIs)
  • Python 3.8+ with Tkinter (included in standard Python installer)
  • wireproxy.exe (download)

Installation

From Source

# Clone the repository
git clone https://github.com/yourusername/wiregate.git
cd wiregate

# Install optional dependencies (for system tray support)
pip install -r requirements.txt

# Run the application
python wiregate.pyw

Using pip

# Install with all optional dependencies
pip install wiregate[all]

# Or install with just tray support
pip install wiregate[tray]

Standalone Executable

Download the latest release from the Releases page.

Setup

  1. Add wireproxy.exe — Place wireproxy.exe in the bin/ directory
  2. Add config files — Place your WireGuard .conf files in the configs/ directory
  3. Run — Launch wiregate.pyw or the built executable

Config File Format

WireGuard config files should follow the standard format:

[Interface]
PrivateKey = <your-private-key>
Address = 10.0.0.2/32
DNS = 1.1.1.1

[Peer]
PublicKey = <server-public-key>
Endpoint = server.example.com:51820
AllowedIPs = 0.0.0.0/0

Usage

  1. Select endpoint — Choose a config from the dropdown or table
  2. Test latency — Click "Ping All" to measure latency to all endpoints
  3. Connect — Click "Connect" to start the proxy
  4. Configure apps — Point your applications to:
    • SOCKS5: 127.0.0.1:20080 (default)
    • HTTP: 127.0.0.1:20081 (if enabled)

Building

Build a standalone executable with PyInstaller:

# Install build dependencies
pip install -r requirements-dev.txt

# Build
build.bat
# or
pyinstaller wiregate.spec

Configuration

Settings are stored in settings.json:

Setting Default Description
socks_port 20080 SOCKS5 proxy port
http_port 20081 HTTP proxy port
http_enabled false Enable HTTP proxy
auto_connect false Connect on startup
auto_reconnect true Reconnect on disconnect
minimize_to_tray true Minimize to system tray
start_with_windows false Launch on Windows startup

Architecture

wiregate/
├── wiregate.pyw       # Entry point
├── src/
│   ├── app.py         # Main application class
│   ├── constants.py   # Configuration constants
│   ├── settings.py    # Settings management
│   ├── tray.py        # System tray integration
│   ├── utils.py       # Utilities (ping, config parsing)
│   ├── dialogs/       # Settings and editor dialogs
│   └── ui/            # UI components
├── bin/               # wireproxy.exe binary
├── configs/           # WireGuard .conf files
└── settings.json      # User preferences

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • wireproxy — The underlying WireGuard-to-proxy adapter
  • WireGuard — Fast, modern VPN protocol

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages