diff --git a/README.md b/README.md index 8cc34ff..35f8999 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # Transmission with WebUI and OpenVPN -Docker container which runs Transmission torrent client with WebUI while connecting to OpenVPN. +Docker container which runs Transmission torrent client with WebUI while connecting to OpenVPN. It bundles certificates and configurations for the following VPN providers: * Private Internet Access * BTGuard @@ -11,6 +11,7 @@ It bundles certificates and configurations for the following VPN providers: * IPVanish * Anonine * HideMe +* PureVPN When using PIA as provider it will update Transmission hourly with assigned open port. Please read the instructions below. @@ -34,7 +35,7 @@ You must set the environment variables `OPENVPN_PROVIDER`, `OPENVPN_USERNAME` an The `OPENVPN_CONFIG` is an optional variable. If no config is given, a default config will be selected for the provider you have chosen. Find available OpenVPN configurations by looking in the openvpn folder of the GitHub repository. -As you can see, the container also expects a data volume to be mounted. +As you can see, the container also expects a data volume to be mounted. This is where Transmission will store your downloads, incomplete downloads and look for a watch directory for new .torrent files. By default a folder named transmission-home will also be created under /data, this is where Transmission stores its state. @@ -42,7 +43,7 @@ By default a folder named transmission-home will also be created under /data, th ### Required environment options | Variable | Function | Example | |----------|----------|-------| -|`OPENVPN_PROVIDER` | Sets the OpenVPN provider to use. | `OPENVPN_PROVIDER=provider`. Supported providers are `PIA`, `BTGUARD`, `TIGER`, `FROOT`, `TORGUARD`, `NORDVPN`, `USENETSERVER`, `IPVANISH`, `ANONINE` and `HIDEME` | +|`OPENVPN_PROVIDER` | Sets the OpenVPN provider to use. | `OPENVPN_PROVIDER=provider`. Supported providers are `PIA`, `BTGUARD`, `TIGER`, `FROOT`, `TORGUARD`, `NORDVPN`, `USENETSERVER`, `IPVANISH`, `ANONINE`, `HIDEME` and `PUREVPN` | |`OPENVPN_USERNAME`|Your OpenVPN username |`OPENVPN_USERNAME=asdf`| |`OPENVPN_PASSWORD`|Your OpenVPN password |`OPENVPN_PASSWORD=asdf`| @@ -55,7 +56,7 @@ By default a folder named transmission-home will also be created under /data, th You may override transmission options by setting the appropriate environment variable. -The environment variables are the same name as used in the transmission settings.json file +The environment variables are the same name as used in the transmission settings.json file and follow the format given in these examples: | Transmission variable name | Environment variable name | @@ -67,16 +68,16 @@ and follow the format given in these examples: As you can see the variables are prefixed with `TRANSMISSION_`, the variable is capitalized, and `-` is converted to `_`. -PS: `TRANSMISSION_BIND_ADDRESS_IPV4` will be overridden to the IP assigned to your OpenVPN tunnel interface. +PS: `TRANSMISSION_BIND_ADDRESS_IPV4` will be overridden to the IP assigned to your OpenVPN tunnel interface. This is to prevent leaking the host IP. ## Access the WebUI But what's going on? My http://my-host:9091 isn't responding? -This is because the VPN is active, and since docker is running in a different ip range than your client the response +This is because the VPN is active, and since docker is running in a different ip range than your client the response to your request will be treated as "non-local" traffic and therefore be routed out through the VPN interface. ### How to fix this -There are several ways to fix this. You can pipe and do fancy iptables or ip route configurations on the host and in +There are several ways to fix this. You can pipe and do fancy iptables or ip route configurations on the host and in the container. But I found that the simplest solution is just to proxy my traffic. Start an nginx container like this: ``` @@ -112,7 +113,7 @@ If you have this problem use dockers --dns flag to override the resolv.conf of t For example use googles dns servers by adding --dns 8.8.8.8 --dns 8.8.4.4 as parameters to the usual run command. If you are having issues with this container please submit an issue on GitHub. -Please provide logs, docker version and other information that can simplify reproducing the issue. +Please provide logs, docker version and other information that can simplify reproducing the issue. Using the latest stable verison of Docker is always recommended. Support for older version is on a best-effort basis. ## Building the container yourself @@ -135,10 +136,10 @@ $ docker run --privileged -d \ transmission-openvpn ``` -This will start a container as described in the "Run container from Docker registry" section. +This will start a container as described in the "Run container from Docker registry" section. ## Controlling Transmission remotely The container exposes /config as a volume. This is the directory where the supplied transmission and OpenVPN credentials will be stored. -If you have transmission authentication enabled and want scripts in another container to access and +If you have transmission authentication enabled and want scripts in another container to access and control the transmission-daemon, this can be a handy way to access the credentials. For example, another container may pause or restrict transmission speeds while the server is streaming video.