wireguard-wrapper
Version:
A wrapper for the commands wg and wg-quick
81 lines (65 loc) • 1.82 kB
Markdown
# NodeJS Wireguard Wrapper
This project is a nodejs wrapper for the wireguard commands `wg` and `wg-quick`.
Features:
- No dependencies
- Uses promises
Limitations:
- So far it can only read but not write anything
- missing `wg set`, `wg setconf`, `wg addconf`, `wg syncconf`
## Installation
```
npm i --save wireguard-wrapper
```
## Usage
`wg` or `wg show`
```
const { Wg } = require('wireguard-wrapper');
Wg.show().then(function(interfaces){
console.log('all interfaces:', interfaces);
});
Wg.show('wg0').then(function(interfaces){
console.log('wg0:', interfaces);
});
```
`wg showconf`
```
const { Wg } = require('wireguard-wrapper');
Wg.showconf('wg0').then(function(config){
console.log('wg0 configuration:', config);
console.log('generated configuration file:', config.toString());
});
```
`wg genkey`
```
const { Wg } = require('wireguard-wrapper');
Wg.genkey().then(function(key){
console.log('private key:', key);
});
```
`wg genpsk`
```
const { Wg } = require('wireguard-wrapper');
Wg.genpsk().then(function(psk){
console.log('preshared key:', psk);
});
```
`wg pubkey`
```
const { Wg } = require('wireguard-wrapper');
Wg.genkey().then(function(privateKey){
console.log('private key:', privateKey);
Wg.pubkey(privateKey).then(function(publicKey){
console.log('public key:', publicKey);
});
});
```
## API
Commands:
- `Wg.show([string device])` - Returns an Statistics-Interface-Object with the current status.
The parameter is optional
- `Wg.showconf(string device)` - Returns an Config-Interface-Object with the current configuration.
The parameter is required.
- `Wg.genkey()` - Generates a new private key.
- `Wg.genpsk()` - Generates a new preshared key.
- `Wg.pubkey(string privateKey)` - Generates a public key from the given private Key.
The paramter is required.