Route all traffic from a torrent client container through a VPN without configuring each container separately
Block ads, malware, and tracking domains across your home server using the built-in auto-updating blocklist
Provide an HTTP or Shadowsocks proxy to devices that cannot run a VPN client directly
Run on a Raspberry Pi or other ARM device as a VPN and encrypted DNS gateway for a home network
Requires a paid subscription to one of the 20+ supported VPN providers and your provider's credentials passed as environment variables.
Gluetun is a VPN client packaged as a small Docker container. You give it your VPN provider credentials, and it connects to that VPN and routes internet traffic through it. The main use case in self-hosted setups is running Gluetun as a shared network gateway so that other containers (a torrent client, for example) can have all their traffic go through the VPN without each one needing its own VPN setup. The container supports more than twenty VPN providers, including NordVPN, Mullvad, ProtonVPN, Private Internet Access, ExpressVPN, Surfshark, and others. Both OpenVPN and WireGuard connection protocols are supported. A built-in kill switch blocks all internet traffic if the VPN connection drops, preventing any accidental exposure of unencrypted traffic. The container image is 43 megabytes and is built on Alpine Linux. Beyond the VPN tunnel itself, Gluetun includes DNS over TLS, which encrypts DNS lookups so your internet provider cannot see which domain names you are resolving. It also includes a built-in blocklist for ads, malicious sites, and tracking domains, which updates automatically every 24 hours. Two proxy servers are built in as well: a standard HTTP proxy and a Shadowsocks proxy, which can be used to route traffic from devices or applications that cannot themselves run a VPN. The container runs on x86 machines, 32-bit and 64-bit ARM boards such as the Raspberry Pi, and other architectures. It can also run as a sidecar container in Kubernetes clusters. Configuration is done through environment variables passed into the container. Setup documentation lives on a separate wiki repository, and each supported VPN provider has its own setup page there with example configuration files.
← qdm12 on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.