From d07a85cb19132534968115dd40f7d05aebc48ab4 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Fri, 26 Apr 2019 08:34:45 +0200 Subject: README: improve documentation Signed-off-by: Jason A. Donenfeld --- README.md | 52 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 31 insertions(+), 21 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index d0cb04a8..1833dbb0 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,10 @@ # [WireGuard](https://www.wireguard.com/) for Windows -Nothing to see here yet. Come back later. +This is a fully-featured WireGuard client for Windows that uses [Wintun](https://www.wintun.net/). -### Requirements +### Building - - [Wintun](https://git.zx2c4.com/wintun) (at runtime) - - [Go ≥1.12.2](https://golang.org/) (for compilation) - - [Mingw](http://www.mingw.org/) (for compilation) - - [Signtool](https://docs.microsoft.com/sl-si/windows/desktop/SecCrypto/signtool) (for signing) - -### Building on Windows - -The build script will take care of downloading, verifying, and extracting the right versions of Go and Mingw: +Windows 10 64-bit is required. The build script will take care of downloading, verifying, and extracting the right versions of the various dependencies: ``` C:\Projects> git clone https://git.zx2c4.com/wireguard-windows @@ -19,26 +12,26 @@ C:\Projects> cd wireguard-windows C:\Projects\wireguard-windows> build ``` -### Building on Linux +### Running -You must first have Go and Mingw installed. +After you've built the application, run `amd64\wireguard.exe` or `x86\wireguard.exe` to install the manager service and show the UI. ``` -$ sudo apt install mingw-w64 golang-go -$ git clone https://git.zx2c4.com/wireguard-windows -$ cd wireguard-windows -$ make +C:\Projects\wireguard-windows> amd64\wireguard.exe ``` -### Running +Since WireGuard requires the Wintun driver to be installed, and this generally requires a valid Microsoft signature, you may benefit from first installing a release of WireGuard for Windows from the official [wireguard.com](https://www.wireguard.com/install/) builds, which bundles a Microsoft-signed Wintun, and then subsequently run your own wireguard.exe. -After you've built the application, run `amd64\wireguard.exe` or `x86\wireguard.exe` to install the manager service and show the UI. +### Optional: Creating the Installer + +The installer build script will take care of downloading, verifying, and extracting the right versions of the various dependencies: ``` -C:\Projects\wireguard-windows> amd64\wireguard.exe +C:\Projects\wireguard-windows> cd installer +C:\Projects\wireguard-windows\installer> build ``` -### Signing Binaries +### Optional: Signing Binaries Add a file called `sign.bat` in the root of this repository with these contents, or similar: @@ -47,4 +40,21 @@ set SigningCertificate=DF98E075A012ED8C86FBCF14854B8F9555CB3D45 set TimestampServer=http://timestamp.digicert.com ``` -After, run `build.bat` as usual, from a shell that has `signtool.exe` in its `PATH`. +After, run the above `build` commands as usual, from a shell that has [`signtool.exe`](https://docs.microsoft.com/sl-si/windows/desktop/SecCrypto/signtool) in its `PATH`, such as the Visual Studio 2017 command prompt. + +### Alternative: Building from Linux + +You must first have Go and Mingw installed. + +``` +$ sudo apt install mingw-w64 golang-go +$ git clone https://git.zx2c4.com/wireguard-windows +$ cd wireguard-windows +$ make +``` + +You can deploy the 64-bit build to an SSH host specified by the `DEPLOYMENT_HOST` environment variable (default "winvm") to the remote directory specified by the `DEPLOYMENT_PATH` environment variable (default "Desktop") by using the `deploy` target: + +``` +$ make deploy +``` -- cgit v1.2.3-59-g8ed1b