Features
- ExpressVPN support (#623)
- WeVPN support (#591)
- Healthcheck uses DNS and ping to
github.cominstead of only DNS to avoid relying on DNS cache HEALTH_ADDRESS_TO_PINGvariable- Adapt logger prefix to VPN used
openvpn:for OpenVPNwireguard:for Wireguard
VPNSPvaluecustomfor OpenVPN custom config files (#621)VPNSPvaluecustomfor Wireguard custom configurationWIREGUARD_PUBLIC_KEYvariableWIREGUARD_ENDPOINT_IPvariable
- OpenVPN custom configuration file is reloaded on VPN restarts
- OpenVPN custom configuration file is parsed at start to log out valid settings
- Support IPv6 routing for Wireguard
- Log Wireguard server endpoint
- Log Wireguard keys when
LOG_LEVEL=debug - Windscribe OpenVPN default cipher set to
aes-256-gcm - Update server information built-in
- Cyberghost
- FastestVPN
- Mullvad
format-serversCLI command
Changes
VPNSP=customOpenVPN configuration file:upanddownoptions are not filtered outOPENVPN_INTERFACEoverrides the network interface defined in the configuration filePORToverrides any port found in the configuration file
- Remove NordVPN
SERVER_NAMEfilter functionality- Filter was not effective
- Is to be deprecated in v4 anyway
- Bump NordVPN server model version to
3 - Remove
Namefield from NordVPN server model
- Remove
CYBERGHOST_GROUPas it does not make sense anymore with newer server data
Fixes
- Set non block on TUN device
- Close HTTP client connections when tunnel comes up
- Public IP loop deadlock
- OpenVPN
VPNSP=customdoes not deduplicate lines - PureVPN remove OpenVPN cipher option
AES-256-CBC - Cyberghost OpenVPN cipher option defaults to
aes-128-gcm - Repository
servers.jsonpath for maintainer server update cli - Add missing HTTP status code check for Windscribe API
PIA_ENCRYPTIONdefault in Go program- Defaults to
stronginstead of strong certificate string - No impact on Docker images since variable is set to
strongin Dockerfile - Only read
PIA_ENCRYPTIONif service provider is PIA
- Defaults to
- (Security) Remove OpenVPN compression option (affects FastestVPN, Hide My Ass, IP Vanish, IVPN, NordVPN, PIA, PrivateVPN, ProtonVPN, Torguard, VPN Unlimited, VyprVPN)
- FastestVPN updated OpenVPN configuration
- HideMyAss:
Cote d'Ivoireserver country name - Log errors with error level for OpenVPN
- PIA
SERVER_NAMEvariable functionality
Documentation
- Readme
- Update with updated Wiki pages and links
- Add Wireguard in top description
- Add Console Substack interview link
- Remove docker-compose.yml file which is now inlined in readme
- Update Wireguard support list
- Issue templates
- Add
Unraid template issuecontact link to discussion #550 - Add
Wiki issueyml template - Replace help issue template by issue contact link to Github discussion
- Update bug issue template to use yml format
- Update feature request issue template to use yml format
- Remove default assignees
- Add
- Update maintenance document
Maintenance
- Rename environment variables with retro-compatibility
HEALTH_OPENVPN_DURATION_INITIALtoHEALTH_VPN_DURATION_INITIALHEALTH_OPENVPN_DURATION_ADDITIONtoHEALTH_VPN_DURATION_ADDITIONWIREGUARD_PORTtoWIREGUARD_ENDPOINT_PORTPORTtoOPENVPN_PORTPROTOCOLtoOPENVPN_PROTOCOLREGIONtoCOUNTRYfor Cyberghost
- OpenVPN options
- remove deprecated
tun-ipv6(affects all)keysizencp-disable(affects Cyberghost, PIA, Torguard, Windscribe)keepalivereplaced byping*options
- remove unneeded
script-security(affects Cyberghost, Mullvad, PureVPN, Surfshark, Torguard, Windscribe)ping-timer-remroute-delay(affects Cyberghost, PureVPN)route-method(affects PureVPN)tun-mtu 1500(affects FastestVPN, NordVPN, ProtonVPN, Surfshark, Torguard)tls-client(affects FastestVPN)ping-exitandping-restart(affects all)disable-occ(affects PIA to match the Wiki)
- add only when running without root:
persist-tunpersist-key
- add
tls-exitto PIA configuration - add
explicit-exit-notifywhen using UDP
- remove deprecated
- Dynamically set allowed VPN input ports
- Allow to change VPN type at runtime
- Allow to change interface name at runtime
- Add cleanup method to cleanup VPN loop on a vpn shutdown
- Allow VPN inputs ports only when tunnel is up
internal/openvpn/extractpackage instead ofinternal/openvpn/custompackageinternal/openvpn/parsepackage- Parse PEM key data for Cyberghost and VPNUnlimited
- Add more unit tests
- All providers'
BuildConfmethod return an error - Rename
CustomConfigtoConfFilein Settings structures - Rename Wireguard
CustomPort - Use type aliases in
internal/netlink - Re-order Dockerfile environment variables
- Improve
internal/configuration/health_test.gounit test - Re-order OpenVPN options
golangci-lint:- Remove
disable-all: trueand enabled by default linters - Add more linters
- Remove
- Package-local narrow
Loggerinterfaces - Package-local log levels
- Go program uses
time/tzdatainstead of Alpine'stzdata - Go program uses
github.com/breml/rootcertstogether with Alpine'sca-certificates - Bump github.com/fatih/color from 1.12.0 to 1.13.0 (#635)
- Bump github.com/qdm12/goshutdown from v0.1.0 to v0.3.0