README.en.md
Rama main · réplica de lectura del repositorio original.
# UniGate
[Русский](README.md) · **English**
[](https://github.com/TblP/UniGate/releases/latest)
[](https://github.com/TblP/UniGate/releases)
[](https://github.com/TblP/UniGate/stargazers)
[](https://github.com/TblP/UniGate/actions/workflows/build-installers.yml)
[](LICENSE)









**UniGate** is a modern open-source client for **self-hosted** VPN, proxy and tunnel connections, all behind a single interface.
Running your own servers usually means keeping a separate application for every connection type. UniGate replaces them with one control centre that works the same way regardless of protocol.
Under the hood there is a single network engine — [**sing-box**](https://sing-box.sagernet.org/) (plus a dedicated engine for AmneziaWG): UniGate stores the profiles, generates the config, launches the engine and reads its statistics. The client itself is native and lightweight — **Tauri 2** (Rust) + **React**, a ~15 MB binary with minimal resource usage.
> **Status:** UniGate is available for Windows, macOS and Android ARM64. TUN mode, RU/LAN bypass and per-app split tunneling work on all three platforms.
## Features
* 🚀 Modern interface with dark and light themes
* 🔌 Proxy mode (no administrator rights required) and full **TUN VPN** (all OS traffic)
* 🌐 Multiple connection profiles
* 🔗 Import from a share link, from JSON, or from a `vpn://` container (Amnezia)
* 🧭 **Split tunneling:**
* by region (RU traffic goes direct, bypassing the VPN) and by local network (LAN)
* by application — selected apps through the VPN, or selected apps direct (pick an `.exe` on Windows, an `.app` on macOS)
* 📤 Profile export: share link (`vless://` and others) or JSON (sing-box outbound)
* 📊 Live speed and traffic statistics
* 🖥️ System tray, minimise to tray, autostart, auto-connect
* 📱 Android: quick actions, a quick-settings tile and 1×1 / 2×2 widgets
* 🔒 No telemetry
* 🔓 Fully open source (MIT)
## Supported protocols
* Hysteria 2
* AmneziaWG 1.5 / 3.1 *(Windows/macOS/Android — userspace awg-shim + sing-box; desktop keeps a legacy fallback)*
* SOCKS5
* HTTP / HTTPS
* Shadowsocks
* VMess
* VLESS *(including Reality)*
* Trojan
* TUIC
Proxy protocols work both in local proxy mode and in TUN mode. They are added by hand (SOCKS/HTTP/Hysteria2) or by importing a link or a subscription (everything else).
## Stack
| Layer | Technology |
|-------|-----------|
| GUI shell | Tauri 2 (Rust) |
| Frontend | React + TypeScript + Vite (Zustand) |
| Network core | sing-box (sidecar on desktop, libbox on Android) |
| AmneziaWG | awg-shim + amneziawg-go/v3 (Windows, macOS, Android) |
## Prebuilt binaries
Installers for Windows (MSI + NSIS `setup.exe`), macOS (`.dmg`, Apple Silicon) and an APK for Android ARM64.
> The Windows and macOS installers are **not signed yet** — see [Code signing policy](#code-signing-policy). macOS notarization is not planned. The Android build is signed with the project's release key.
>
> **macOS:** after installing, clear the quarantine flag from the whole bundle — this also clears the bundled `sing-box` and AmneziaWG binaries:
> ```bash
> sudo xattr -dr com.apple.quarantine /Applications/UniGate.app
> ```
>
> **Windows:**
> - In the **SmartScreen** dialog choose "More info → Run anyway".
> - On Windows 11 the launch may also be blocked by **Smart App Control**, which rejects any program without a digital signature. Since UniGate has none, turn that feature off manually in Windows Security (*App & browser control* → *Smart App Control*).
>
> **Android:**
> - Allow your browser or file manager to **install unknown apps**.
> - **From 1.2.0** the build is a release build signed with the project's own key, so the system no longer flags it as unsafe.
> - The signing certificate changed along with it, so the APK will not install over a version older than 1.2.0: remove that one first, saving your profiles through Share beforehand.
## Building and running locally
You need **Node 22+** and **Rust** (Windows: stable-msvc + Microsoft C++ Build Tools + WebView2; macOS: Xcode Command Line Tools).
```bash
npm install # frontend dependencies
# core binaries are not kept in git — fetch them with a script:
pwsh scripts/fetch-singbox.ps1 # Windows: sing-box + wintun + amneziawg + geoip
bash scripts/fetch-singbox.sh # macOS/Linux: sing-box + geoip
bash scripts/fetch-awg-macos.sh # macOS: awg-shim + legacy AmneziaWG fallback (needs Go)
# Android ARM64 (Windows-hosted portable toolchain):
pwsh scripts/setup-android.ps1
pwsh scripts/fetch-android-assets.ps1
pwsh scripts/build-android.ps1 # dist/android/UniGate_<version>_android_arm64.apk
npm run tauri dev # run in dev mode
npm run tauri build # build (Windows → MSI + NSIS)
```
## Code signing policy
Free code signing provided by [SignPath.io](https://signpath.io/), certificate by [SignPath Foundation](https://signpath.org/).
> **Status:** the SignPath Foundation application is under review. Until the certificate is issued, Windows release installers ship without a digital signature — see the warnings under "Prebuilt binaries".
**Project roles**
- Committers and reviewers: [TblP](https://github.com/TblP)
- Approvers: [TblP](https://github.com/TblP)
## Privacy
No telemetry, and no data leaves the device: [privacy policy](PRIVACY.md) · [data subject rights](PRIVACY_RIGHTS.md).
## License
[MIT](LICENSE) © TblP