Opened 9 years ago

Last modified 8 years ago

#597 closed TODO (General task list)

Integrate NSSM into OpenVPN — at Version 3

Reported by: Samuli Seppänen Owned by: Samuli Seppänen
Priority: critical Milestone: alpha 2.4
Component: Packaging Version: OpenVPN git master branch (Community Ed)
Severity: Not set (select this one, unless your'e a OpenVPN developer) Keywords: windows openvpnserv nssm
Cc: gert@…

Description (last modified by Samuli Seppänen)

The OpenVPN service wrapper for Windows (openvpnserv.exe) is rapidly disintegrating as new Windows versions are released. On Windows 7 it works adequately, but on Windows 8.x and 10 it seems to be broken. There are currently several bug reports related to openvpnserv.exe (e.g. #110, #129, #591, #71).

Instead of improving and fixing openvpnserv.exe we've decided to replace it with a more robust service manager, NSSM. It is already possible to use NSSM with OpenVPN, but the manual configuration steps are too difficult for most "normal" users. Although NSSM has a configuration GUI, it is too generic and thus too complex for our simple use-case of "enabling and disabling OpenVPN connections", where almost all configuration parameter can be deduced and/or hardcoded.

This task consists of two parts:

  1. Write a simplified NSSM configuration GUI tailored for OpenVPN
  2. Integrate the configuration GUI with OpenVPN installers (in openvpn-gui project)

The configuration GUI has some constraints:

  1. Must not increase OpenVPN installer size significantly
    • Rules out most external frameworks/languages such as Python, Perl and Qt.
  2. Must be reasonably fast
    • Rules out PowerShell ShowUI, as importing the ShowUI module takes ages. Documentation on this framework is also very poor, and knowledge of WPF is assumed.
  3. Must have permissions to modify the system
    • Rules out local web applications that don't use ActiveX controls.
  4. All components must bev redistributable
    • Rules out (commercial) frameworks which are not under an open source / public domain license.

In practice C# + WPF seems to be the only reasonable way forward. As most of the GUI is generated programmatically there's no need for a separate GUI definition (XAML) file.

The code for the NSSM configuration GUI for OpenVPN will be hosted here.

Change History (3)

comment:1 Changed 9 years ago by Samuli Seppänen

Earlier discussion and crude GUI layout plans are available.

comment:2 Changed 9 years ago by Gert Döring

Cc: gert@… added

comment:3 Changed 9 years ago by Samuli Seppänen

Description: modified (diff)
Note: See TracTickets for help on using tickets.