IVPN for Desktop is the official IVPN app for desktop platforms. Some of the features include: multiple protocols (OpenVPN, WireGuard), Kill-switch, Multi-Hop, Trusted Networks, AntiTracker, Custom DNS, Dark mode, and more.
IVPN Client app is distributed on the official site www.ivpn.net.
- About this Repo
- Installation
- Versioning
- Contributing
- Security Policy
- License
- Authors
- Acknowledgements
This is the official Git repo of the IVPN for Desktop app.
The project is divided into three parts:
- daemon: Core module of the IVPN software built mostly using the Go language. It runs with privileged rights as a system service/daemon.
- UI: Graphical User Interface built using Electron.
- CLI: Command Line Interface.
These instructions enable you to get the project up and running on your local machine for development and testing purposes.
Go 1.21+; Git; npm; Node.js (18); nsis3; Build Tools for Visual Studio 2019 ('Windows 10 SDK 10.0.19041.0', 'Windows 11 SDK 10.0.22000.0', 'MSVC v142 C++ x64 build tools', 'C++ ATL for latest v142 build tools'); gcc compiler (e.g. TDM GCC).
Go 1.21+; Git; npm; Node.js (18); Xcode Command Line Tools.
To compile the OpenVPN/OpenSSL binaries locally, additional packages are required:
brew install autoconf automake libtool
To compile liboqs, additional packages are required:
brew install cmake ninja openssl@1.1 wget doxygen graphviz astyle valgrind
pip3 install pytest pytest-xdist pyyaml
Go 1.21+; Git; npm; Node.js (18); gcc; make; FPM; curl; rpm; libiw-dev.
To compile liboqs, additional packages are required:
sudo apt install astyle cmake gcc ninja-build libssl-dev python3-pytest python3-pytest-xdist unzip xsltproc doxygen graphviz python3-yaml valgrind
Instructions to build installer of IVPN Client (daemon + CLI + UI):
Use Developer Command Prompt for Visual Studio (required for building native sub-projects).
git clone https://github.com/ivpn/desktop-app.git
cd desktop-app/ui/References/Windows
build.bat
Compiled binaries can be found at: ui/References/Windows/bin
Instructions to build DMG package of IVPN Client (daemon + CLI + UI):
git clone https://github.com/ivpn/desktop-app.git
cd desktop-app/ui/References/macOS
./build.sh -v <VERSION_X.X.X> -c <APPLE_DevID_CERTIFICATE>
Compiled binary can be found at: ui/References/macOS/_compiled
(some info about Apple Developer ID)
# get sources
git clone https://github.com/ivpn/desktop-app.git
cd desktop-app
Base package (daemon + CLI):
./cli/References/Linux/build.sh
Compiled DEB/RPM packages can be found at cli/References/Linux/_out_bin
Note: You can refer to manual installation guide for Linux.
Graphical User Interface (UI):
./ui/References/Linux/build.sh
Compiled DEB/RPM packages can be found at ui/References/Linux/_out_bin
Note: It is required to have installed IVPN Daemon before running IVPN UI.
Project is using Semantic Versioning (SemVer) for creating release versions.
SemVer is a 3-component system in the format of x.y.z
where:
x
stands for a major version
y
stands for a minor version
z
stands for a patch
So we have: Major.Minor.Patch
If you are interested in contributing to IVPN for Desktop project, please read our Contributing Guidelines.
If you want to report a security problem, please read our Security Policy.
This project is licensed under the GPLv3 - see the License file for details.
See the Authors file for the list of contributors who participated in this project.
See the Acknowledgements file for the list of third party libraries used in this project.