Skip to content

v3.10.0 The Big December Refactor

Compare
Choose a tag to compare
@qdm12 qdm12 released this 02 Jan 18:29
· 1360 commits to master since this release

Features

  • Docker secrets
  • qmcgaw/gluetun Docker image name
  • Faster healthcheck, the container should be healthy as soon as it connects almost
  • Change redundant dns over tls: DNS over TLS ready to dns over tls: ready
  • Update PIA servers using their v5 API
  • Two-fold increasing backoff sleep times on crashes for every subprocess/thread.
  • PureVPN server information updated

Bug fixes

  • PureVPN updater fixed
  • Plaintext DNS fix
  • Privado settings logging fixed
  • Privado server selection
  • Healthcheck uses DNS over TLS instead of default resolver (maybe a bug fix)
  • PublicIP loop exit bug fixed
  • Updater loop exit bug fixed
  • Updater loop stop action deadlock fixed
  • Program exit bug when openvpn crashes
  • servers.json merging with different versions
  • DNS SetSettings missing mutex unlocking
  • Do not fail if servers.json is emty

Changes

Breaking

  • Remove undocumented CLIENT_KEY environment variable (for Cyberghost only)
  • Remove decommissioned SecureDNS DOT provider

Non breaking

  • Rename UID and GID to PUID and PGID so that they don't conflict with already set variables (but retrocompatible)
  • Rename USER to OPENVPN_USER (but retrocompatiblity maintained)
  • Rename PASSWORD to OPENVPN_PASSWORD (but retrocompatiblity maintained)
  • Rename HOSTNAME to SERVER_HOSTNAME (but retrocompatiblity maintained) to avoid conflict with OS-set HOSTNAME variable

Documentation

  • Most of the readme is moved to the Wiki (running out of the 25KB allowed!)
  • Remove videos section (outdated)
  • Add quick links section for help and support
  • Simplify support section
  • More badges and metadata
  • Update Docker image labels

Code maintenance

Go code

  • Updater: Ovpn host extraction reworked
  • HTTP proxy and Shadowsocks proxy loops reworked to be more resilient and 'REST' oriented
  • Custom OS package for OS operations: filesystem, environment variables, users, etc.
  • Stream oriented JSON encoding and decoding for files and HTTP requests/responses.
  • Use native http.Client instead of custom client for better compatibility across repositories / easier reading for new devs
  • Unix abstraction package (to create the TUN device)
  • CLI interface abstraction
  • Remove unneeded defaultInterface in Shadowsocks
  • Updater loop waitgroup
  • Params package: use built-in Unset() option instead of os.Unsetenv function
  • Unit tests: remove unneeded .Times(1) and ctrl.Finish()
  • Upgrade dependencies

Dockerfile

  • Upgrade golangci-lint to v1.34.1

CI

  • Microbadger hooks use continue-on-error: true in CI
  • Upgrade docker hub readme sync workflow
  • Upgrade buildx from 1 to v3