Build from Source - ZvanTors/GoodByeDPI-GUI GitHub Wiki
Want to build the EXE yourself, contribute to the code, or customize the app? This guide walks you through every step.
๐ก Just want to use the app? Skip this and download the ready-made EXE from the Releases page.
| Requirement | |
|---|---|
| ๐ | Python 3.8 or newer โ python.org |
| ๐ช | Windows 10 / 11 (64-bit) |
| ๐ฆ | Git โ git-scm.com |
| ๐ป | VS Code (recommended) or any code editor |
python --versionShould output something like Python 3.11.5.
git clone https://github.com/ZvanTors/GoodByeDPI-GUI.git
cd GoodByeDPI-GUIOption A โ From requirements file (recommended):
pip install -r requirements.txtOption B โ Manually:
pip install pyside6 pyinstaller๐ก Using a virtual environment is recommended:
python -m venv .venv .venv\Scripts\activate pip install -r requirements.txt
The GUI doesn't ship the engine โ you need to provide it. Download the latest
GoodbyeDPI release
and place these three files inside the bin/ folder:
| File | Source |
|---|---|
bin/goodbyedpi.exe |
From GoodbyeDPI release |
bin/WinDivert.dll |
From GoodbyeDPI release (x86_64 folder) |
bin/WinDivert64.sys |
From GoodbyeDPI release (x86_64 folder) |
Final structure should look like:
GoodByeDPI-GUI/
โโโ main.py
โโโ requirements.txt
โโโ assets/
โ โโโ logo.ico
โโโ bin/
โ โโโ goodbyedpi.exe
โ โโโ WinDivert.dll
โ โโโ WinDivert64.sys
โโโ app/
โโโ ...
โ ๏ธ Make sure you use the 64-bit versions of the DLL and SYS files.
If you want a custom icon, place logo.ico inside the assets/ folder.
If you don't have one, skip this step โ the app will run fine without it.
Always run the app from source first to catch errors early:
python main.pyRun it as Administrator โ the app requires it and will refuse to start otherwise.
๐ก Tip: In VS Code, open a Terminal (Ctrl+`) and make sure it's running as admin, or use an elevated PowerShell window.
If everything works (window opens, mode cards appear, Start button works), you're ready to build.
pyinstaller --onefile --windowed --uac-admin --name "GoodByeDPI GUI" --add-data "assets;assets" --add-data "bin;bin" --icon=assets/logo.ico main.pypyinstaller --onefile --windowed --uac-admin --name "GoodByeDPI GUI" ^
--add-data "assets;assets" ^
--add-data "bin;bin" ^
--icon=assets/logo.ico ^
main.pypyinstaller --onefile --windowed --uac-admin --name "GoodByeDPI GUI" `
--add-data "assets;assets" `
--add-data "bin;bin" `
--icon=assets/logo.ico `
main.py| Flag | Purpose |
|---|---|
--onefile |
Bundle everything into a single EXE |
--windowed |
Hide the console window |
--uac-admin |
Request admin privileges on launch |
--name |
Name of the output EXE |
--add-data |
Include assets/ and bin/ folders |
--icon |
Set the EXE icon |
โ ๏ธ On Windows, the separator in--add-datais;โ not:. Using:will silently fail.
After the build completes, PyInstaller creates a dist/ folder:
dist/
โโโ GoodByeDPI GUI.exeRename it to match the release convention used by the updater:
dist/GoodByeDPI.GUI.exe๐ก This name matters โ the in-app updater looks for exactly
GoodByeDPI.GUI.exein GitHub releases.
- Move the EXE to a different folder (e.g., Desktop) to test portability
- Right-click โ Run as administrator
- Verify:
- โ Window opens
- โ Icons and theme render correctly
- โ Mode cards appear
- โ Start/Stop works
- โ Toasts appear at bottom-right
After a successful build, you can safely delete:
build/
*.specOnly dist/ and your source files matter.
Whenever you modify the source, just run the build command again. PyInstaller overwrites the old EXE.
๐ก To keep builds clean, delete
build/anddist/first:rmdir /s /q build dist
PyInstaller isn't installed or isn't on your PATH.
pip install pyinstaller
python -m PyInstaller --versionIf that works, use python -m PyInstaller instead of pyinstaller.
You're building from the wrong directory. Make sure you're in the project root:
cd GoodByeDPI-GUI
pyinstaller ...Check your --add-data flags. The separator must be ; on Windows.
Also verify the source folders actually exist:
dir assets
dir binRun it from CMD to see the error:
"dist\GoodByeDPI.GUI.exe"Common causes:
- Missing
bin/goodbyedpi.exe - Not running as admin
- Antivirus quarantined a bundled file
PyInstaller EXEs are sometimes flagged as suspicious โ a known false positive. Add the folder to your antivirus exclusions.
Normal โ first build can take 1-3 minutes. Subsequent builds are faster.
- ๐ฏ Use a virtual environment โ avoids polluting your global Python install
- ๐งน Clean before rebuild โ deletes stale artifacts
- ๐ Check EXE size โ a healthy build is ~40-60 MB
- ๐ Sign your EXE (optional) โ reduces antivirus false positives (requires a code-signing certificate)
- ๐ Version your build โ bump
APP_VERSIONinapp/constants.pybefore release
Next: Understand the codebase in Architecture ๐