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