2021-01-21 13:25:17 +01:00
< p align = "center" >
< img src = "./logo.png" width = "587" alt = "logo" >
< p align = "center" > < b > wg-quick like library with batteries included< / b > < / p >
2021-01-25 15:20:09 +01:00
< p align = "center" >
< a href = "https://ci.xsfx.dev/xsteadfastx/wg-quicker" > < img src = "https://ci.xsfx.dev/api/badges/xsteadfastx/wg-quicker/status.svg" / > < / a >
< a href = "https://pkg.go.dev/go.xsfx.dev/wg-quicker" > < img src = "https://pkg.go.dev/badge/go.xsfx.dev/wg-quicker.svg" alt = "Go Reference" > < / a >
< a href = "https://goreportcard.com/report/go.xsfx.dev/wg-quicker" > < img src = "https://goreportcard.com/badge/go.xsfx.dev/wg-quicker" alt = "Go Report Card" > < / a >
< / p >
2021-01-21 13:25:17 +01:00
< / p >
2019-03-28 12:38:22 +01:00
2021-01-21 13:25:17 +01:00
---
2019-03-28 12:38:22 +01:00
2021-01-25 15:21:18 +01:00
This is a friendly fork of [wg-quick-go ](https://github.com/nmiculinic/wg-quick-go ). So all glory to them!!!11!! It contains everything needed to get a system into a wireguard vpn network. If there is no wireguard kernel modul available, it will spin up the embedded wireguard-go to create a wireguard interface.
2021-01-21 13:25:17 +01:00
# Installation
## Prebuild packages
2021-01-27 11:35:23 +01:00
Get these on the release [page ](https://github.com/xsteadfastx/wg-quicker/releases ).
## Homebrew
- `brew tap xsteadfastx/tap https://github.com/xsteadfastx/homebrew-tap`
- `brew install wg-quicker`
2021-01-21 13:25:17 +01:00
## Compile it for yourself
- `git clone https://git.xsfx.dev/xsteadfastx/wg-quicker.git`
- `cd wg-quicker`
- `make build`
2019-03-26 13:57:33 +01:00
# Roadmap
2021-01-21 12:24:32 +01:00
- [x] full wg-quick feature parity
- [x] PreUp
- [x] PostUp
- [x] PreDown
- [x] PostDown
- [x] DNS
- [x] MTU
- [x] Save --> Use MarshallText interface to save config
- [x] Sync
- [x] Up
- [x] Down
- [x] MarshallText
- [x] UnmarshallText
- [x] Minimal test
2021-01-21 13:25:17 +01:00
- [x] Embedded [wireguard-go ](https://git.zx2c4.com/wireguard-go/about/ )
2021-01-21 12:24:32 +01:00
- [ ] Integration tests ((TODO; have some virtual machines/kvm and wreck havoc :) ))
2019-03-27 17:55:39 +01:00
# Caveats
2021-01-21 12:24:32 +01:00
- Endpoints DNS MarshallText is unsupported
- Pre/Post Up/Down doesn't support escaped `%i` , that is all `%i` are expanded to interface name.
- SaveConfig in config is only a placeholder (( since there's no reading/writing from files )). Use Unmarshall/Marshall Text to save/load config (( you're responsible for IO)).