gluetun README

The project's README from github.com/passteque/gluetun. As one markdown file: README.md.

Gluetun VPN client

Lightweight swiss-army-knife-like VPN client to multiple VPN service providers

⚠️ This and gluetun-wiki are the only websites for Gluetun, other websites claiming to be official are scams ⚠️

🗯️ this repository will be migrated to github.com/passteque/gluetun on 2026-05-21, which is a Github organization under my sole control, so don't get alarmed if you get redirected in the coming days 😉 Reason being migrating Github sponsors to the Open source collective due to my personal situation, basically annoying paperwork. On the plus side, it will be more transparent and funds donated will only be used for the project. The Docker image names will remain the same.

Title image

Build status

Docker pulls qmcgaw/gluetun Docker pulls qmcgaw/private-internet-access

Docker stars qmcgaw/gluetun Docker stars qmcgaw/private-internet-access

Last release Last Docker tag Last release size GitHub last release date Commits since release

Latest size

GitHub last commit GitHub commit activity GitHub closed PRs GitHub issues GitHub closed issues

Code size GitHub repo size Go version

Visitors count

Features

Setup

🎉 There are now instructions specific to each VPN provider with examples to help you get started as quickly as possible!

Go to the Wiki!

🐛 Found a bug in the Wiki?!

Here's a docker-compose.yml for the laziest:

---
services:
  gluetun:
    image: qmcgaw/gluetun
    # container_name: gluetun
    # line above must be uncommented to allow external containers to connect.
    # See https://github.com/qdm12/gluetun-wiki/blob/main/setup/connect-a-container-to-gluetun.md#external-container-to-gluetun
    cap_add:
      - NET_ADMIN
    devices:
      - /dev/net/tun:/dev/net/tun
    ports:
      - 8888:8888/tcp # HTTP proxy
      - 8388:8388/tcp # Shadowsocks
      - 8388:8388/udp # Shadowsocks
    volumes:
      - /yourpath:/gluetun
    environment:
      # See https://github.com/qdm12/gluetun-wiki/tree/main/setup#setup
      - VPN_SERVICE_PROVIDER=ivpn
      - VPN_TYPE=openvpn
      # OpenVPN:
      - OPENVPN_USER=
      - OPENVPN_PASSWORD=
      # Wireguard:
      # - WIREGUARD_PRIVATE_KEY=wOEI9rqqbDwnN8/Bpp22sVz48T71vJ4fYmFWujulwUU=
      # - WIREGUARD_ADDRESSES=10.64.222.21/32
      # Timezone for accurate log times
      - TZ=
      # Server list updater
      # See https://github.com/qdm12/gluetun-wiki/blob/main/setup/servers.md#update-the-vpn-servers-list
      - UPDATER_PERIOD=

🆕 Image also available as ghcr.io/qdm12/gluetun

Fun graphs

Star History Chart

License

MIT

gluetun (passteque/gluetun)

Searching Database…

15.8K ·GitHub
What is this?Gluetun is a lightweight, swiss-army-knife-like VPN client packaged as a single small Docker container. It tunnels through 20+ commercial VPN providers via OpenVPN or Wireguard and lets other containers or LAN devices share that connection.
So it's not a desktop VPN app — how does it fit into my setup?It runs as a Docker container next to your other services. Other containers can route their traffic through it, LAN devices can connect to it, and it can even run as a Kubernetes sidecar.
How do I get it running?The Wiki has setup instructions specific to each VPN provider, with examples — start there. The README also ships a ready-made docker-compose.yml, and the image is available at ghcr.io/qdm12/gluetun.
Do I need my own VPN subscription to use it?Yes — Gluetun is a client, not a VPN service itself. You need an account with one of the supported providers, and Gluetun then handles the connection inside the container.
Does Wireguard work with every provider?No — OpenVPN is supported for all listed providers, but Wireguard only for a subset (AirVPN, IVPN, NordVPN, ProtonVPN, Surfshark, Windscribe and a few others), plus custom Wireguard configs via the custom provider. Mullvad works with Wireguard only.
Will it run on small ARM boards, or only x86 servers?It's built for amd64, i686 (32 bit), ARM 64 bit, ARM 32 bit v6 and v7, and ppc64le, so it runs on servers, NAS boxes and small ARM boards alike. The image is just 43.1MB, based on Alpine 3.23.
What happens if the VPN connection drops?A built-in firewall kill switch kicks in: traffic is only allowed to the needed VPN servers and LAN devices, so nothing leaks outside the tunnel while it's down.
Which VPN providers does it support?Over 20, including AirVPN, Cyberghost, ExpressVPN, HideMyAss, IPVanish, IVPN, Mullvad, NordVPN, Private Internet Access, ProtonVPN, PureVPN, Surfshark, TorGuard, VyprVPN and Windscribe. A custom provider lets you use your own OpenVPN or Wireguard config, and AmneziaWG is supported there too.
What are the built-in proxies for?Gluetun ships a Shadowsocks proxy (SOCKS5-based with an encryption layer, tunnels TCP+UDP), a Socks5 proxy (TCP+UDP) and an HTTP proxy for HTTP and HTTPS. Point other apps or containers at them to route their traffic through the VPN tunnel.
Does it do anything besides tunneling?Yes — DNS over TLS is baked in with service providers of your choice, and it can block malicious and ads hostnames and IP addresses, with live updates every 24 hours. Selecting multiple DNS providers gives you split horizon DNS.
Can I do port forwarding through it?Yes, for three providers: Private Internet Access, PrivateVPN and ProtonVPN support custom VPN server side port forwarding through Gluetun.
Creator
passteque
Size
19.8 MB
Stars
15.8K
Age
8y
Commits · 90 Days