|
|
@@ -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. |