v3.28.0

passteque/gluetunv3.28.0Feb 26, 2022by qdm12

AI Summary

This release introduces support for updating specific VPN providers via environment variables, updates server data for ExpressVPN, adds a pprof HTTP server for profiling, and implements extensive retro-compatibility fixes for various environment variables.

Key Highlights

  • Environment variable `UPDATER_VPN_SERVICE_PROVIDERS` for selective provider updates
  • ExpressVPN server data updated
  • New pprof HTTP server running on port `:6060`
  • Extensive retro-compatibility fixes for environment variable precedence and naming

New Features

  • Updater support for specific VPN providers
  • pprof HTTP server
  • Retro-compatibility helper function `getEnvWithRetro`

Full Release Notes

## Features

- Updater: environment variable `UPDATER_VPN_SERVICE_PROVIDERS`
    - Updater defaults to update the VPN provider in use if enabled
- ExpressVPN: update built-in server data
- `OPENVPN_PROCESS_USER` with retro-compatibility with `OPENVPN_ROOT`
- Add pprof HTTP server on port `:6060` (#807)

## Fixes

- Accept uppercase `OPENVPN_PROTOCOL` values
- Cyberghost: log about compatibility mode if `COUNTRY` is left empty
- Control server: allow to bind on a random port by using `:0`
- Retro-compatible precedence order for environment variables with defaults set in Dockerfile
  - `BLOCK_NSA` has precedence over `BLOCK_SURVEILLANCE`
  - `HEALTH_OPENVPN_DURATION_ADDITION` has precedence over `HEALTH_VPN_DURATION_ADDITION`
  - `HEALTH_OPENVPN_DURATION_INITIAL` has precendence over `HEALTH_VPN_DURATION_INITIAL`
  - Chain of precedence: `PROXY` > `TINYPROXY` > `HTTPPROXY`
  - Chain of precedence: `PROXY_LOG_LEVEL` > `TINYPROXY_LOG` > `HTTPPROXY_LOG`
  - `PROTOCOL` has precendence over `OPENVPN_PROTOCOL`
  - `IP_STATUS_FILE` has precendence over `PUBLICIP_FILE`
  - `SHADOWSOCKS_PORT` has precedence over `SHADOWSOCKS_LISTENING_ADDRESS`
  - `SHADOWSOCKS_METHOD` has precedence over `SHADOWSOCKS_CIPHER`

## Maintenance

- `SERVER_NAMES` variable with retro-compatibility for `SERVER_NAME`
- `SERVER_HOSTNAMES` variable with retro-compatibility with `SERVER_HOSTNAME`
- `SERVER_REGIONS` variable with retro-compatibility with `REGION`
- `SERVER_CITIES` variable with retro-compatibility with `CITY`
- `SERVER_COUNTRIES` variable with retro-compatibility with `COUNTRY`
- Simplify Cyberghost retro-compatibility logic
- `PRIVATE_INTERNET_ACCESS_VPN_PORT_FORWARDING_STATUS_FILE` with retro-compatibility with `PORT_FORWARDING_STATUS_FILE`
- `PRIVATE_INTERNET_ACCESS_VPN_PORT_FORWARDING` with retro-compatibility with `PORT_FORWARDING`
- `PRIVATE_INTERNET_ACCESS_OPENVPN_ENCRYPTION_PRESET` variable with retro-compatibility with `PIA_ENCRYPTION` and `ENCRYPTION`
- `OPENVPN_CIPHERS` variable with retro-compatibility with `OPENVPN_CIPHER`
- `VPN_SERVICE_PROVIDER` variable with retro-compatibility with `VPNSP`
- `WIREGUARD_ADDRESSES` variable with retro-compatibility with `WIREGUARD_ADDRESS`
- `DNS_ADDRESS` variable with retro-compatibility with `DNS_PLAINTEXT_ADDRESS`
- `VPN_INTERFACE` with retro-compatibility with `OPENVPN_INTERFACE` and `WIREGUARD_INTERFACE`
- `VPN_ENDPOINT_PORT` with retro-compatibility with `OPENVPN_PORT` and `WIREGUARD_ENDPOINT_PORT`
- `VPN_ENDPOINT_IP` with retro-compatibility with `OPENVPN_TARGET_IP` and `WIREGUARD_ENDPOINT_IP`
- `HTTP_CONTROL_SERVER_PORT` with retro-compatibility with `HTTP_CONTROL_SERVER_ADDRESS`
- `OWNED_ONLY` with retro-compatibility with `OWNED`
- Remove unused constant file paths and move remaining ones in corresponding package
- `getEnvWithRetro` helper function for `internal/configuration/sources/env`
- Do not validate control server port when reading from environment variables, only validate downstream
- Bump docker/build-push-action from 2.7.0 to 2.8.0 (#801)
- Bump github.com/breml/rootcerts from 0.2.1 to 0.2.2 (#812)