v3.36.0

passteque/gluetunv3.36.0Oct 31, 2023by qdm12

AI Summary

Major update adding Wireguard `WIREGUARD_ALLOWED_IPS` support, ProtonVPN port forwarding with NAT-PMP, and upgraded Alpine/Go versions. Contains minor breaking changes regarding DNS and updater command syntax.

Key Highlights

  • Added `WIREGUARD_ALLOWED_IPS` variable
  • Added `VPN_PORT_FORWARDING_PROVIDER` variable
  • ProtonVPN port forwarding support with NAT-PMP
  • Alpine upgraded to 3.17 and Go upgraded to 1.21

Breaking Changes

  • `DNS_KEEP_NAMESERVER` leaves DNS fully untouched (behavior change)
  • `update` command uses dashes instead of spaces for provider names (e.g., `-vpn unlimited` -> `-vpn-unlimited`)

New Features

  • Wireguard Allowed IPs configuration
  • Port Forwarding Provider selection
  • Surfshark servers data API endpoint updated
  • Routing: add outbound subnets routes only for matching ip families

Full Release Notes

🎃  Happy Halloween 🎃 Hopefully it is not a spooky release! 😸 

## Features

- Wireguard
  - `WIREGUARD_ALLOWED_IPS` variable (#1291)
  - Parse settings from `/gluetun/wireguard/wg0.conf` (#1120)
- VPN server port forwarding
  - `VPN_PORT_FORWARDING_PROVIDER` variable (#1616)
  - ProtonVPN port forwarding support with NAT-PMP (#1543)
- Servers data
  - Surfshark servers data API endpoint updated (#1560)
  - Built-in servers data updated for Cyberghost, Mullvad, Torguard, Surfshark
- Clarify "Wireguard is up" message logged
- Updater log warning about using `-minratio` if not enough servers are found
- Configuration: add `/32` if not present for Wireguard addresses

## Fixes

- **Minor breaking change**: `DNS_KEEP_NAMESERVER` leaves DNS fully untouched
- **Minor breaking change**: `update` command uses dashes instead of spaces for provider names (i.e. `-vpn\ unlimited` -> `-vpn-unlimited`)
- Port forwarding run loop reworked and fixed (#1874)
- Public IP fetching run loop reworked and fixed
- ProtonVPN: add `aes-256-gcm` cipher for OpenVPN
- Custom provider: allow custom endpoint port setting
- IPv6 support for ipinfo (#1853)
- Routing: `VPNLocalGatewayIP` Wireguard support
- Routing: add outbound subnets routes only for matching ip families
- Routing: change firewall only for matching ip families
- Netlink: try loading Wireguard module if not found (#1741)
- Public IP: do not retry when doing too many requests

## Documentation

- Readme
  - remove `UPDATER_VPN_SERVICE_PROVIDERS` in docker-compose config
  - remove Slack channel link (don't have time to check it)
  - update Wireguard native integrations support list
- Update to use newer wiki repository
  - update URLs logged by program
  - update README.md links
  - update contributing guide link
  - update issue templates links
  - replace Wiki issue template by link to Gluetun Wiki repository issue creation
  - set program announcement about Github wiki new location
- Issue templates
  - add Unraid as option in bug issue template
  - provide minimum requirements for an issue: title must be filled, at least 10 lines of log provided, Gluetun version must be provided

## Maintenance

- Dockerfile: add missing environment variables
  - `OPENVPN_PROCESS_USER` value defaults to `root`
  - Add `HTTPPROXY_STEALTH=off`
  - Add `HTTP_CONTROL_SERVER_LOG=on`
- Code
  - `internal/settings`: change source precedence order: Secret files then files then environment variables
  - `internal/routing`: Wrap `setupIPv6` rule error correctly
  - Move vpn gateway obtention within port forwarding service
  - `internal/vpn`: fix typo `portForwader` -> `portForwarder`
  - `internal/provider`: use type assertion for port forwarders
- CI
  - rename workflow to `Markdown`
  - Markdown workflow triggers on `*.md` files only
  - Markdown workflow triggers for pull requests as well
  - Markdown job runs misspell, linting and dead link actions
  - Markdown publishing step to Docker Hub is only for pushes to the master branch
  - Add markdown-skip workflow
- Dependencies
  - Upgrade Go to 1.21
  - Upgrade linter to v1.54.1
  - Bump golang.org/x/text from 0.10.0 to 0.11.0 (#1726)
  - Bump golang.org/x/sys from 0.8.0 to 0.11.0 (#1732, #1786)
  - Bump golang.org/x/net from 0.10.0 to 0.12.0 (#1729)
  - bump gosettings to v0.4.0-rc1