Giter Site home page Giter Site logo

ivpn / desktop-app-daemon Goto Github PK

View Code? Open in Web Editor NEW
40.0 7.0 9.0 17.07 MB

Official IVPN Desktop app (service)

Home Page: https://www.ivpn.net/apps-overview

License: GNU General Public License v3.0

C 2.98% Go 86.71% Shell 5.59% C++ 3.86% Batchfile 0.86%
vpn vpn-client privacy security ivpn openvpn wireguard ivpn-daemon ivpn-service

desktop-app-daemon's Introduction

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.

desktop-app-daemon's People

Contributors

jurajhilje avatar stenya avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

desktop-app-daemon's Issues

Always-on firewall prevent daemon launching after system reboot

Bug report

Describe your environment

  • Device: _____
  • OS name and version: OpenSUSE Tumbleweed Gnome
  • IVPN app version: daemon version: v2.12.16, client version: v3.2.3

I use the rpm version of the app. Whenever I enabled always-on firewall, the VPN app just said "error connecting to IVPN daemon" and it seems the VPN daemon couldn't launch at all. I also wasn't able to connect to the internet and the only way to let me use the internet is to delete both the demon and client, delete the profile and then reboot. This problem didn't happen when I used on-demand firewall.

I'm not sure if this is an OpenSUSE issue, a rpm package issue or general issue.

Screenshot from 2021-03-28 20-15-30

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.