diff --git a/README.md b/README.md index cde4c28e..12a74aaa 100644 --- a/README.md +++ b/README.md @@ -40,11 +40,14 @@ using Go, OpenVPN or Wireguard, iptables, DNS over TLS, ShadowSocks and an HTTP ## Quick links -- Problem or suggestion? - - [Start a discussion](https://github.com/qdm12/gluetun/discussions) - - [Create an issue](https://github.com/qdm12/gluetun/issues) - - [Fix the Unraid template](https://github.com/qdm12/gluetun/discussions/550) +- [Setup](#Setup) +- [Features](#Features) +- Problem? - [Check the Wiki](https://github.com/qdm12/gluetun/wiki) + - [Start a discussion](https://github.com/qdm12/gluetun/discussions) + - [Fix the Unraid template](https://github.com/qdm12/gluetun/discussions/550) +- Suggestion? + - [Create an issue](https://github.com/qdm12/gluetun/issues) - [Join the Slack channel](https://join.slack.com/t/qdm12/shared_invite/enQtOTE0NjcxNTM1ODc5LTYyZmVlOTM3MGI4ZWU0YmJkMjUxNmQ4ODQ2OTAwYzMxMTlhY2Q1MWQyOWUyNjc2ODliNjFjMDUxNWNmNzk5MDk) - Happy? - Sponsor me on [github.com/sponsors/qdm12](https://github.com/sponsors/qdm12) @@ -58,7 +61,7 @@ using Go, OpenVPN or Wireguard, iptables, DNS over TLS, ShadowSocks and an HTTP - Based on Alpine 3.14 for a small Docker image of 31MB - Supports: **Cyberghost**, **FastestVPN**, **HideMyAss**, **IPVanish**, **IVPN**, **Mullvad**, **NordVPN**, **Privado**, **Private Internet Access**, **PrivateVPN**, **ProtonVPN**, **PureVPN**, **Surfshark**, **TorGuard**, **VPNUnlimited**, **Vyprvpn**, **Windscribe** servers -- Supports OpenVPN for all providers +- Supports OpenVPN for all providers listed - Supports Wireguard - For **Mullvad**, **Ivpn** and **Windscribe** - For **Torguard**, **VPN Unlimited** and **WeVPN** using [the custom provider](https://github.com/qdm12/gluetun/wiki/Environment-variables#custom) @@ -70,57 +73,50 @@ using Go, OpenVPN or Wireguard, iptables, DNS over TLS, ShadowSocks and an HTTP - Built in firewall kill switch to allow traffic only with needed the VPN servers and LAN devices - Built in Shadowsocks proxy (protocol based on SOCKS5 with an encryption layer, tunnels TCP+UDP) - Built in HTTP proxy (tunnels HTTP and HTTPS through TCP) -- [Connect other containers to it](https://github.com/qdm12/gluetun/wiki/Connect-to-gluetun) -- [Connect LAN devices to it](https://github.com/qdm12/gluetun/wiki/Connect-to-gluetun) +- [Connect other containers to it](https://github.com/qdm12/gluetun/wiki/Connect-a-container-to-gluetun) +- [Connect LAN devices to it](https://github.com/qdm12/gluetun/wiki/Connect-a-LAN-device-to-gluetun) - Compatible with amd64, i686 (32 bit), **ARM** 64 bit, ARM 32 bit v6 and v7, and even ppc64le 🎆 -- VPN server side port forwarding for Private Internet Access and Vyprvpn +- [Custom VPN server side port forwarding for Private Internet Access](https://github.com/qdm12/gluetun/wiki/Private-internet-access#vpn-server-port-forwarding) - Possibility of split horizon DNS by selecting multiple DNS over TLS providers -- Subprograms all drop root privileges once launched -- Subprograms output streams are all merged together +- Unbound subprogram drops root privileges once launched - Can work as a Kubernetes sidecar container, thanks @rorph ## Setup -1. Ensure your `tun` kernel module is setup: +🎉 There are now instructions specific to each VPN provider with examples to help you get started as quickly as possible! - ```sh - sudo modprobe tun - # or, if you don't have modprobe, with - sudo insmod /lib/modules/tun.ko - ``` +Go to the [Wiki](https://github.com/qdm12/gluetun/wiki)! -1. Extra steps: - - [For Synology users](https://github.com/qdm12/gluetun/wiki/Synology-setup) - - [For 32 bit Operating systems (**Rasberry Pis**)](https://github.com/qdm12/gluetun/wiki/32-bit-setup) -1. Launch the container with: +[🐛 Found a bug in the Wiki?!](https://github.com/qdm12/gluetun/issues/new?assignees=&labels=%F0%9F%93%84+Wiki+issue&template=wiki+issue.md&title=Wiki+issue%3A+) - ```bash - docker run -d --name gluetun --cap-add=NET_ADMIN \ - -e VPNSP="private internet access" -e REGION="CA Montreal" \ - -e OPENVPN_USER=js89ds7 -e OPENVPN_PASSWORD=8fd9s239G \ - -v /yourpath:/gluetun \ - qmcgaw/gluetun - ``` +Here's a docker-compose.yml for the laziest: - or use [docker-compose.yml](https://github.com/qdm12/gluetun/blob/master/docker-compose.yml) with: - - ```bash - docker-compose up -d - ``` - - You should probably check the many [environment variables](https://github.com/qdm12/gluetun/wiki/Environment-variables) available to adapt the container to your needs. - -## Further setup - -The following points are all optional but should give you insights on all the possibilities with this container. - -- [Test your setup](https://github.com/qdm12/gluetun/wiki/Test-your-setup) -- [How to connect other containers and devices to Gluetun](https://github.com/qdm12/gluetun/wiki/Connect-to-gluetun) -- [How to use Wireguard](https://github.com/qdm12/gluetun/wiki/Wireguard) -- [VPN server side port forwarding](https://github.com/qdm12/gluetun/wiki/Port-forwarding) -- [HTTP control server](https://github.com/qdm12/gluetun/wiki/HTTP-Control-server) to automate things, restart Openvpn etc. -- Update the image with `docker pull qmcgaw/gluetun:latest`. See this [Wiki document](https://github.com/qdm12/gluetun/wiki/Docker-image-tags) for Docker tags available. -- Use [Docker secrets](https://github.com/qdm12/gluetun/wiki/Docker-secrets) to read your credentials instead of environment variables +```yml +version: "3" +services: + gluetun: + image: qmcgaw/gluetun + cap_add: + - NET_ADMIN + 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 + - VPNSP=ivpn + - VPN_TYPE=openvpn + # OpenVPN: + - OPENVPN_USER= + - OPENVPN_PASSWORD= + # Wireguard: + # - WIREGUARD_PRIVATE_KEY=wOEI9rqqbDwnN8/Bpp22sVz48T71vJ4fYmFWujulwUU= + # - WIREGUARD_ADDRESS=10.64.222.21/32 + # Timezone for accurate log times + - TZ= +``` ## License