Releases: qdm12/gluetun
Releases · qdm12/gluetun
v3.10.4 - Empty connection fix for NordVPN and Windscribe
Fix: Empty connections for NordVPN and Windscribe
v3.12.1: Revert to Alpine 3.12 for 32 bit systems
Revert back to Alpine 3.12 and Openvpn 2.4.10-r0 to fix Openvpn TLS issues with time due to the Alpine 3.13 upgrade.
v3.12.0 Upgrade to Alpine 3.13 and Openvpn ping fixes
Features
- Upgrade Alpine to 3.13
- Set a 10s ping with a 60s exit ping for all openvpn configurations, so that openvpn exits and restarts if it does not receive a ping for 60s
- Openvpn exits if it encounters a TLS issue. It will then be restarted by the entrypoint program.
OPENVPN_MSSFIX
environment variable- Upgrade Openvpn to 2.5.0
Servers
- Update Nordvpn hardcoded servers list
Bug fixes
- Openvpn restart loop because of
ping-restart
options, now replaced byping-exit
.
Documentation
- Most documentation moved to the Wiki (reached the Docker hub readme limit of 25KB)
Maintenance
- Configure dependabot to monitor go modules and docker dependencies
- Update and improve development container configuration
- Update golibs and its params package
- OpenVPN BuildConf arity reduced
- Unit test internal/provider/utils.go
- Update golangci-lint to v1.35.2
CI
- All build workflows merged into a single yml configuration file
- Go mod tidy check
- Remove duplicate COPY in Dockerfile
- Fix xcputranslate version and uage
- Set default
BUILDPLATFORM=linux/amd64
in Dockerfile for older Docker CLIs
v3.11.1 Fix DNS_KEEP_NAMESERVER behavior
Fix: DNS_KEEP_NAMESERVER
v3.11.0 small stability improvements
Bug fixes
- Unbound log lines processing (showing an
ERROR
where it was anINFO
level)
Features
- Log
healthcheck: passed
once the healthcheck succeeds after a failed attempt - Unbound now serves clients from any IP address and not just localhost (
access-control: 0.0.0.0/0 allow
) - Improved logging of DNS settings
- s390x and ppc64le CPU architectures supported
Code maintenance
- Using qdm12/dns Go API v1.4.0-rc3
- Using qdm12/updated Go API
- Rework main function
- Add waitgroup to collectStreamLines for a cleaner shutdown
Continuous integration
- Test, lint and build using the native builder CPU architecture only even for cross CPU architecture builds, speeding up builds from 15 minutes to about 5 minutes.
- Change workflow structure and Dockerfile structure, 'glued' together using Docker Buildkit and target images.
- Remove microbadger hooks for branch and release workflows
- Dependabot for Github actions added
v3.10.3 Fix DNS_KEEP_NAMESERVER behavior
Fix: DNS_KEEP_NAMESERVER
v3.10.2 Fix DNS_KEEP_NAMESERVER behavior
Bug fixes to v3.10.0 (the big december refactor)
- See https://github.com/qdm12/gluetun/releases/tag/v3.10.0
- DNS ready signaling fixed
- DNS setup failure loop behavior
v3.10.0 The Big December Refactor
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
todns 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
andGID
toPUID
andPGID
so that they don't conflict with already set variables (but retrocompatible) - Rename
USER
toOPENVPN_USER
(but retrocompatiblity maintained) - Rename
PASSWORD
toOPENVPN_PASSWORD
(but retrocompatiblity maintained) - Rename
HOSTNAME
toSERVER_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)
andctrl.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
v3.9.0 Newer versioned HTTP control server & bug fixes
Features
- New versioned HTTP control server at URI
/v1
(retro compatible with older routes) - Openvpn, DNS and updater status getting and setting
- Re use username with the UID set in the env variable UID if it exists instead of creating one
- Public IP endpoint at
/v1/publicip/ip
Bug fixes
- Updater periodic trigger fix
- Fix settings logging of PureVPN mixing with Mullvad
- Add
block-outside-dns
to pull filter for Surfshark Openvpn servers
Coding and maintenance
- Openvpn, DNS, Updater and public IP loops reworked
- Github workflows build simplified
- Development container simplified and documented
- Upgrade Golangci-lint to v1.33.0
Documentation
- 256x256 logo for Unraid
- Fix PureVPN environment variables table