Installing Transmission OpenVPN Docker Container on UGreen NAS

Welcome to step-by-step guide on how to setup torrent downloading with VPN on a UGreen NAS. It will also work for Synology or any other NAS OS that supports deploying Docker containers.

how to install transmission openvpn on nas

First, you will need a VPN account that supports P2P (torrent clients rely on it). I use WindScribe VPN and have had good experience with them. If you’d also like to use WindScribe, you can sign up using my referral link here.

WindScribe also offers free plan that comes with limited bandwidth and by using my referral link you will get additional 1GB or data for free. That can be great for initial testing and validation. For real use cases though, you’ll need unlimited bandwidth and that comes when you signup for the paid plan. At the time of this writing, WindScribe costs $29/year which is really great compared to most of the other VPN providers. I have also heard good things about Mullvad VPN and Proton VPN. Ultimately the choice to choose your VPN provider is up to you. I found WindScribe to be the most affordable VPN on a per-month cost when shopping for annual plans.

We will be using the famous haugene/docker-transmission-openvpn container for this tutorial. It is lightweight torrent client with Web UI and works like a charm.

What is Haugene Transmission OpenVPN?

Haugene Transmission OpenVPN is a Docker container that combines the Transmission BitTorrent client with OpenVPN, ensuring secure and anonymous downloading. It provides an easy-to-use solution for users who want to protect their privacy while downloading torrents, leveraging the powerful features of both Transmission and OpenVPN.

Setting up Transmission OpenVPN Docker Container on UGreen NAS

I have a UGreen NASync DXP2800. The steps listed below will work for any UGreen NAS and I believe it should also work for other NAS OS as long as you have Docker installed.

  1. Install Docker
    Goto the app center and install Docker. This should be very straightforward. It will ask you which volume and location you want to install it in. That will essentially create a folder called “docker” for you. Going forward, anytime you deploy a new container in docker it is good idea to create a new folder inside this docker folder and use that.For instance, at this step you should create a folder called “transmission” inside “docker”. So you should have something like NAS/docker/transmission which will be useful in step 4.
  2. Download haugene transmission openvpn container in Docker
    For this, open Docker > Image (left sidebar) > Image Database (top navigation bar)
    Search for transmission-openvpn in the search box.
    Download the haugene/transmission-openvpn container image. It might take a few minutes depending upon your internet speed.
  3. Goto “Local images”, and click on create
    Switch to Local Images tab and click on create so you can create the transmission openvpn container.
  4. Enter the following details as shown here
    For the most part I didn’t really change anything. Just make sure your stuff matches what I have here.
    In step 1, you should have created a folder for transmission. You can now create 2 folders inside that.
    Map those 2 folders accordingly.
    For network, make sure you select Bridge mode. Leave everything else as it is.
    Go to the last tab called Advanced. This is the important part.
    For Mode (first section), don’t change anything.
    For Permission and Function (last section), enable privileged mode.
    For Environment Variables (middle section), create these variables:

    | variable name    | value               | note                                                                                                |
    | OPENVPN_PROVIDER | WINDSCRIBE          | if using another provider, this value will be different                                             |
    | OPENVPN_CONFIG   | Montreal-Expo67-tcp | change this if you want to use another vpn location                                                 |
    | OPENVPN_USERNAME | your openvpn user   | see detail below                                                                                    |
    | OPENVPN_PASSWORD | your open pass      | see detail below                                                                                    |
    | LOCAL_NETWORK    |                     | see detail below                                                                                    |
    | PUID             |                     | see detail on how to get that here |
    | PGID             |                     | see detail here                    |

    You can get your WindScribe openvpn credentials (OPENVPN_USERNAME, OPENVPN_PASSWORD) here:
    Note that this credential is not the same as you VPN account login. This is only for transmission to do the auth using openvpn protocol. You might need Pro account for generating credentials.

    For LOCAL_NETWORK, in your NAS open Control panel > Network > Network Connection and check the value it shows for LAN1 (connected).
    It will be something in the format of a.b.x.y but the actual IP address really depends on how you configured the NAS. Regardless, note that down and set LOCAL_NETWORK = a.b.x.0/24
    For instance if your LAN1 is then your LOCAL_NETWORK =

  5. Now click on Done and it should start running in no time.
    When all goes well, it should look like this:
    This indicates that the transmission client is operational. It is running on your NAS behind a VPN connection. If the container isn’t starting, or shuts down in few seconds then there are errors. Check the log for help. Before you start downloading torrents, follow the next steps to verify if your transmission client is using the VPN or not.

Verify If Transmission OpenVPN Is Using Correct VPN Location

It is quite easy to verify if the Transmission container is using VPN configuration or not. Open a terminal on the container. This screenshot should help. Click confirm:
It will open a terminal for you on the container.
In that terminal, run the following commands:

  • curl
    This will display the IP address that your container is using. The ISP will see this IP address for all of the activity (download/upload) occurring on this transmission app.
  • curl
    This will display the city name associated to the IP address.
  • curl
    This will display the country name associated to the IP address.

Next, launch a terminal on a computer connected to your home network. (NAS is also connected to the same home network.) Run the same commands on it and make sure the outputs from the two are different i.e. you don’t want transmission to be running without VPN. This is the whole point of this tutorial.

Once you have validated that the IP address of transmission client is indeed what you picked during the setup, then you are good to proceed ahead. If not, figure out what’s going on and fix it first.

Using the WebUI of Haugene Transmission OpenVPN

Visit http://a.b.x.0:9091/transmission/web/ on your computer browser and it should open the web UI of Transmission. Now you should be able to start downloading torrent files.

Note that a.b.x.y is the IP of your NAS which you found in step 4 above.
9091 is the NAS Port value which points to the haugene transmission openvpn container. If web UI is not opening for you, please check the NAS Port value by going to Container > Basic Information > Port Mapping. Use that value because your mapping might be different.

I hope this tutorial was helpful. Feel free to share it with the wider community.

Disclaimer: The information provided in this tutorial is intended solely for educational purposes. We do not condone, support, or encourage the use of torrenting for any illegal activities. Torrenting copyrighted material without permission is against the law and can result in severe legal consequences. Please ensure that you comply with all applicable laws and regulations in your region. Use this information responsibly and at your own risk.

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.