desktop-app-daemon

command module
v0.0.0-...-846a3b6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 14, 2021 License: GPL-3.0 Imports: 16 Imported by: 0

README

This is a legacy project. Development has been moved to a new repository: https://github.com/ivpn/desktop-app

IVPN Daemon (Windows/macOS/Linux)

IVPN Daemon is a core module of IVPN Client software for desktop platforms (Windows/macOS/Linux) built mostly using Go language.
It runs under privileged user as a system service/daemon.

Some of the features include:

  • multiple protocols (OpenVPN, WireGuard)
  • Kill-switch
  • custom DNS
  • Multi-Hop
  • AntiTracker

This project is in use by IVPN Client UI and IVPN CLI projects.

IVPN Client app is distributed on the official site www.ivpn.net.

About this Repo

This is the official Git repo of the IVPN Daemon.

Installation

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Requirements
Windows
  • 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
  • Xcode Command Line Tools
  • Go 1.13+
  • Git
Linux
  • Go 1.13+
  • packages: 'rpm' and 'libiw-dev'
  • Git
Compilation
Windows

Note! IVPN Daemon must be installed appropriately on a target system.
We recommend using IVPN Client UI project to build a Windows installer for IVPN software.

To compile IVPN service binary run the batch file from the terminal.
Use Developer Command Prompt for Visual Studio (required for building native sub-projects).

git clone https://github.com/ivpn/desktop-app-daemon.git
cd desktop-app-daemon
References/Windows/scripts/build-all.bat <VERSION_X.X.X> exclude32bit
macOS

Note! IVPN Daemon must be installed appropriately on a target system.
We recommend using IVPN Client UI project to build a macOS DMG package for IVPN software.

git clone https://github.com/ivpn/desktop-app-daemon.git
cd desktop-app-daemon
References/macOS/scripts/build-all.sh -v <VERSION_X.X.X>

The batch script will compile IVPN Service binary and all required dependencies (OpenVPN, WireGuard). Compiled binaries location:

  • WireGuard: References/macOS/_deps/wg_inst
  • OpenVPN: References/macOS/_deps/openvpn_inst/bin
  • IVPN Service: IVPN Agent

Note! In order to run application as macOS daemon, the binary must be signed by Apple Developer ID.

Linux

Note! IVPN Daemon must be installed appropriately on a target system.
We recommend using:
- IVPN CLI project to build a 'base' Linux redistributable packages of IVPN software
- IVPN Client UI project to build a 'UI' Linux redistributable packages of IVPN software

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

The compiled binary can be found at References/Linux/scripts/_out_bin

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 Daemon for IVPN Client 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.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
api
oshelpers
Package ping is an ICMP ping library seeking to emulate the unix "ping" command.
Package ping is an ICMP ping library seeking to emulate the unix "ping" command.
dns
vpn

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL