Giter Club home page Giter Club logo

desktop-app's Introduction

IVPN for Desktop (Windows/macOS/Linux)

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.
IVPN application image

About this Repo

This is the official Git repo of the IVPN for Desktop app.

The project is divided into three parts:

  • Daemon is a core module of IVPN software built mostly using the Go language. It runs with privileged rights as a system service/daemon.
  • UI is a Graphical User Interface built using Electron.
  • CLI is a Command Line Interface.

Installation

These instructions enable you to get the project up and running on your local machine for development and testing purposes.

Requirements

Windows

npm; nsis2; Build Tools for Visual Studio 2019 ('Windows SDK 10.0', 'MSVC v142 C++ x64 build tools', 'C++ ATL for latest v142 build tools'); gcc compiler e.g. TDM GCC; Go 1.13+; Git

macOS

npm; Xcode Command Line Tools; Go 1.13+; Git
To compile the OpenVPN\OpenSSL binaries locally, additional packages are needed: brew install autoconf automake libtool

Linux

npm; packages: FPM, curl, rpm, libiw-dev; Go 1.13+; Git

Compilation

Windows

Instructions to build Windows installer of IVPN Client software (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: desktop-app/ui/References/Windows/bin

macOS

Instructions to build macOS DMG package of IVPN Client software (daemon+CLI+UI):

git clone https://github.com/ivpn/desktop-app.git
cd ivpn/desktop-app/ui/References/macOS
./build.sh -v <VERSION_X.X.X> -c <APPLE_DevID_CERTIFICATE>

Compiled binary can be found at: desktop-app/ui/References/macOS/_compiled

Linux

Linux Daemon

Instructions to build Linux DEB and RPM packages of IVPN software ('base' package: daemon + CLI):

git clone https://github.com/ivpn/desktop-app.git
cd desktop-app/cli/References/Linux/
./build.sh -v <VERSION_X.X.X>

Compiled packages can be found at desktop-app/cli/References/Linux/_out_bin

Manual installation IVPN daemon on Linux

Sometimes it is required to have the possibility to install IVPN binaries manually.
It's easy to do it by following the rules described below.

The ivpn-service is checking the existing of some required files (all files can be found in the repository)

VirtualBox:/opt/ivpn/etc$ ls -l
total 52
-r-------- 1 root root  2358 May 25 16:50 ca.crt
-rwx------ 1 root root   113 May 25 16:50 client.down
-rwx------ 1 root root  1927 May 25 16:50 client.up
-rwx------ 1 root root  5224 May 25 16:50 firewall.sh
-rw------- 1 root root 21524 May 26 20:52 servers.json
-r-------- 1 root root   636 May 25 16:50 ta.key
  1. Build the current project to get 'ivpn service' and 'ivpn cli' binaries.
  2. Create folder /opt/ivpn/etc
  3. Copy all required files (see above).
    Note! Files owner and access rights are important.
  4. Now you can start compiled service binary from the command line (just to check if it works).
    Note! The service must be started under a privileged user.
    Info You can use the command line parameter --logging to enable logging for service.
    4.1. Simply run compiled ivpn-cli binary to check if it successfully connects to the service (use separate terminal).
  5. If everything works - you can configure your environment to start ivpn-service automatically with the system boot (we are using systemd for such purposes)

Linux UI

Instructions to build Linux DEB and RPM packages of IVPN software 'UI' package:

git clone https://github.com/ivpn/desktop-app.git
cd desktop-app/ui/References/Linux
./build.sh -v <VERSION_X.X.X>

Compiled packages can be found at desktop-app-ui2/References/Linux/_out_bin

Note! It is required to have installed IVPN Daemon before running IVPN UI.

Versioning

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

Contributing

If you are interested in contributing to IVPN for Desktop project, please read our Contributing Guidelines.

Security Policy

If you want to report a security problem, please read our Security Policy.

License

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

Authors

See the Authors file for the list of contributors who participated in this project.

Acknowledgements

See the Acknowledgements file for the list of third party libraries used in this project.

desktop-app's People

Contributors

4elta avatar cipheromega avatar jurajhilje avatar lysin avatar nschonni avatar stenya avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.