Skip to content

v3.23.0

Compare
Choose a tag to compare
@qdm12 qdm12 released this 23 Aug 01:41
· 859 commits to master since this release

馃帀 It's our 1000th commit!!! 馃専

Features

  • Support for Wireguard (#565)
    • For Mullvad (#565)
    • For Windscribe (#565)
  • Wireguard works with kernel space or user space if unavailable
  • VPN_TYPE variable
  • WIREGUARD_PRIVATE_KEY variable
  • WIREGUARD_ADDRESS variable
  • WIREGUARD_PRESHARED_KEY variable
  • WIREGUARD_PORT variable
  • OPENVPN_INTERFACE defaulting to tun0

Bug fixes

  • Change ownership of OpenVPN configuration file with PUID and PGID
  • OpenVPN custom config process user gets removed
  • OpenVPN custom config with custom network interface name set properly in firewall
  • Sorted IP addresses for servers.json (#574)
  • Only allow traffic through VPN interface when needed

Documentation

  • Update readme
    • Image size lowered to 31MB
    • Using Alpine 3.14
    • Wireguard support

Changes

  • HTTP control server /v1/openvpn route interacts with OpenVPN settings only (not provider settings)

Maintenance

  • internal/vpn package for vpn loop (OpenVPN and Wireguard)
  • internal/netlink package used by internal/wireguard
  • Improve internal/configuration code
  • Read all settings first
  • Context aware collectLines functions
  • internal/tun package to handle tun device operations
    • TUN check verifies Rdev value of file
    • Inject as interface to main function
    • Add integration test
    • Clearer log message for end users if tun device does not exist
    • Remove tun file opening at the end of tun file creation
  • Remove unix package (unneeded for tests)
  • Do not mock unix.Mkdev (no OS operation)
  • internal/openvpn/custom package for custom configuration with tests
  • Better log when catching an OS signal
  • Fix logger settings inheritance
  • Keep VPN tunnel interface name in firewall state
  • Upgrade from Go 1.16 to Go 1.17