= Introduction = '''Note''': **This document is out-of-date**, it applies ''only'' to OpenVPN-'''2.3.x''' (For Windows). OpenVPN-'''2.4.x''' includes the ''OpenVPN-Interactive-Service'', which manages privilege separation quite successfully. (You are urged to upgrade if you have not). Instructions for using OpenVPN-GUI bundled with OpenVPN 2.4 are on [wiki:OpenVPN-GUI-New Use OpenVPN-2.4 Windows-GUI]. = OpenVPN-'''2.3.x''' Historically, there have been many, many client GUIs for OpenVPN. Practically all are work of a one person, and many of them are completely unmaintained. Here's a snapshot (12th May 2011) of native Windows GUIs from our [RelatedProjects related project] list: * [http://sourceforge.net/projects/openvpn-gui/ OpenVPN-GUI]. Based on [http://openvpn.se/ old OpenVPN GUI for Windows]. * [http://openvpn-mi-gui.inside-security.de/ OpenVPN MI GUI]. Based on [http://openvpn.se/ old OpenVPN GUI for Windows]. * [http://openvpn.jowisoftware.de/ OpenVPN Manager]. Latest changes ~4 months old. * [http://sourceforge.net/projects/securepoint/ OpenVPN Client Windows]. Latest changes ~12 months old. There are also tons of [https://community.openvpn.net/openvpn/wiki/RelatedProjects#Inactiveprojects inactive client GUI projects] and probably dozens of in-house client GUI implementations. This fragmentation of development effort hurts both users (who never get to use a really good GUI) and developers (who have to reinvent the wheel over and over again). OpenVPN project has distributed an OpenVPN-GUI with it's Windows installers for years, but core OpenVPN developers have put very little emphasis on developing the GUI; this is understandable, as it's outside the scope of the project. OpenVPN releases prior to 2.3-alpha1 included a [http://openvpn.se/ very old] (released 2005) OpenVPN-GUI. Releases starting with 2.3-alpha1 use a [http://sourceforge.net/projects/openvpn-gui/ more modern OpenVPN-GUI]. Here's a list of potential reasons why so many OpenVPN GUIs exist: * Existing GUI(s) are lacking some special functionality * Hacking together a customized GUI is relatively easy * Making a good-quality general purpose GUI requires lots of work * Working with others necessarily means extra development overhead * Most GUI projects are small and don't show up anywhere (except our [RelatedProjects related projects list]) There are a few steps between ''now'' and a ''general purpose'' GUI: * Find out the most common GUI features people need (and implement those) * Merge existing projects together (if possible) = Requirements = == Functional requirements == Describe what is the core reason why this applications exists. These should be visible to the user. * Create a tunnel * Close down a tunnel * Support multiple OpenVPN configuration files == Non-functional requirements == These describe the ''qualities'' of the application, such as look and feel and performance. * Operates from the system tray == Constraints == These are similar to non-functional requirements, but imposed upon from outside. * Must run on Windows XP SP3 and above * Must use the management interface