Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Transmission VPN Config Help

Featured Replies

I've had my server up and running since 2017 with virtually no issues. Full disclosure, I haven't used it much in the last 2-3 years, but it was working. Recently, I began downloading torrent files again, which was the original reason i set up the server. I was using activ-transmission VPN with no issues.

Two weeks ago, my array appeared to go into "read-only" mode, meaning I couldn't copy files from my torrent folder to any of my share folders in Windows. The torrent folder is on the cache drive, the shares are on the array.

As part of the troubleshooting, I copied the appdata and system folders from my cache drive directly to the array, reformatted my cache drive, and then moved everything back. Doing this removed all of the docker containers, so I set about trying to reinstall them. I was able to get the Plex docker back up and running, though all of my libraries were gone. Just the libraries themselves, not the files.

Activ-transmission vpn is no longer available in the apps, so I installed haugene transmission-vpn, but I can't get the GUI to work. I keep getting a 404: not found, and I'm stuck. I configured the docker with my PIA credentals and pointed it to my local network, but I'm not sure what else to do. I've read through all the documentation, and nothing seems to be off with the config. Please understand, I set this up many years ago and have no recollection of how.

Also, if anyone has any insight on the original read-only issue, that would be appreciated also because that's still an issue.

Solved by bmartino1

  • Community Expert

with what vpn provider?

esential the older docker image and data that had your previous data was wiped when you cleared the chage drive. and the template didn't have nor contain some of the data. as docker temples are on the flash drive unless you ran them a different way like compose / docker run user script lines...

Review:
https://bmartino1.weebly.com/guide-dockernetworks.html

as you may need 2 separate dockers now and some docker network know how to use the vpn docker...

you may need to use a side vpn connector docker and use linux server transmission and us the gluten vpn docker to connect to the vpn provider and have transmission container network connect to have transmission use the vpn...

or find a compatible transmission/vpn docker...

or use a LXC. (what I would recommend...) install debain and connect the lxc to your vpn provider and install vnc / transmission and use a web vnc connections...

and follow your vpn provides documentation on install...

the point being is without knowing your vpn provider i can't point you to a good solution to move forward.

If its a issue with a docker image
https://hub.docker.com/r/activ/arch-transmissionvpn

in the existing template change the tag to

activ/arch-transmissionvpn:2.0
  • Author
5 minutes ago, bmartino1 said:

with what vpn provider?

esential the older docker image and data that had your previous data was wiped when you cleared the chage drive. and the template didn't have nor contain some of the data. as docker temples are on the flash drive unless you ran them a different way like compose / docker run user script lines...

Review:
https://bmartino1.weebly.com/guide-dockernetworks.html

as you may need 2 separate dockers now and some docker network know how to use the vpn docker...

you may need to use a side vpn connector docker and use linux server transmission and us the gluten vpn docker to connect to the vpn provider and have transmission container network connect to have transmission use the vpn...

or find a compatible transmission/vpn docker...

or use a LXC. (what I would recommend...) install debain and connect the lxc to your vpn provider and install vnc / transmission and use a web vnc connections...

and follow your vpn provides documentation on install...

the point being is without knowing your vpn provider i can't point you to a good solution to move forward.

If its a issue with a docker image
https://hub.docker.com/r/activ/arch-transmissionvpn

in the existing template change the tag to

activ/arch-transmissionvpn:2.0

PIA, which is what I've been using.

  • Community Expert

Thank you for clarifing. I would recomend using docker compose (more to easliy add and use mutple networks...

there’s a solid all-in-one: haugene/transmission-openvpn. It supports PIA (OpenVPN or WireGuard), does automatic port-forwarding for PIA regions that allow it, and exposes Transmission’s web UI.

Below are two clean ways to run Transmission behind PIA. Pick A (two-container) if you specifically want to use that PIA container you linked; pick B (all-in-one) if you want simpler ops.

A) Two-container setup

itsdaspecialk/pia-openvpn (VPN) + linuxserver/transmission sharing its network


https://hub.docker.com/r/itsdaspecialk/pia-openvpn/
and this docker
https://hub.docker.com/r/linuxserver/transmission


step 1 setup and make ports for use with the PIA VPN
Dokcer run (can be made into custom tempatles)

# 1) PIA OpenVPN container (owns the network + the host port mappings)
docker run -d \
  --name pia \
  --cap-add=NET_ADMIN \
  --device /dev/net/tun \
  -e OPENVPN_USERNAME='PIA_USERNAME' \
  -e OPENVPN_PASSWORD='PIA_PASSWORD' \
  -e OPENVPN_CONFIG='*.ovpn or region name' \
  -e LOCAL_NETWORK='192.168.1.0/24' \
  -p 9091:9091 \        # Transmission web UI (mapped on the VPN container)
  -p 51413:51413 \      # BitTorrent TCP
  -p 51413:51413/udp \  # BitTorrent UDP (DHT/Peers)
  -v /path/to/openvpn:/etc/openvpn \
  -v /path/to/pia-config:/config \
  --restart unless-stopped \
  itsdaspecialk/pia-openvpn:latest

# 2) Transmission shares the VPN container’s namespace (no ports on this one)
docker run -d \
  --name=transmission \
  --network=container:pia \
  -e PUID=1000 -e PGID=1000 \
  -e TZ="America/Chicago" \
  -e TRANSMISSION_WEB_HOME=/combustion-release \
  -v /path/to/downloads:/downloads \
  -v /path/to/watch:/watch \
  -v /path/to/transmission-config:/config \
  --restart unless-stopped \
  lscr.io/linuxserver/transmission:latest

or use the docker compose plugin and paste and edit the docker compose file



version: "3.8"
services:
  pia:
    image: itsdaspecialk/pia-openvpn:latest
    container_name: pia
    cap_add: [ "NET_ADMIN" ]
    devices: [ "/dev/net/tun:/dev/net/tun" ]
    environment:
      OPENVPN_USERNAME: "PIA_USERNAME"
      OPENVPN_PASSWORD: "PIA_PASSWORD"
      OPENVPN_CONFIG: "region_or_ovpn_file"
      LOCAL_NETWORK: "192.168.1.0/24"
    ports:
      - "9091:9091"
      - "51413:51413"
      - "51413:51413/udp"
    volumes:
      - /path/to/openvpn:/etc/openvpn
      - /path/to/pia-config:/config
    restart: unless-stopped

  transmission:
    image: lscr.io/linuxserver/transmission:latest
    container_name: transmission
    network_mode: "container:pia"
    environment:
      PUID: "1000"
      PGID: "1000"
      TZ: "America/Chicago"
      TRANSMISSION_WEB_HOME: "/combustion-release"
    volumes:
      - /path/to/downloads:/downloads
      - /path/to/watch:/watch
      - /path/to/transmission-config:/config
    restart: unless-stopped

If you reviewed the guid site I made...

How it works

  • You only expose ports on pia (the VPN container). Hit Transmission at http://HOST_IP:9091.

  • Make sure your PIA region supports port forwarding; otherwise peers can’t connect inbound on 51413.

  • Keep LOCAL_NETWORK to your LAN so you can reach the web UI from inside your network.

B) All-in-one (simplest): haugene/transmission-openvpn

This is the usual “Transmission + PIA VPN in one container” approach. It handles PIA auth, OpenVPN, and port forwarding automatically.
*But loooks like you tried and had some issues?

docekr run that can be made into a unraid template:



docker run -d \
  --name=transmission-vpn \
  --cap-add=NET_ADMIN \
  --device=/dev/net/tun \
  -e OPENVPN_PROVIDER=PIA \
  -e OPENVPN_USERNAME='PIA_USERNAME' \
  -e OPENVPN_PASSWORD='PIA_PASSWORD' \
  -e OPENVPN_CONFIG='ca_montreal' \   # use a PIA region that supports PF
  -e OPENVPN_OPTS='--inactive 3600 --ping 10 --ping-exit 60' \
  -e LOCAL_NETWORK='192.168.1.0/24' \
  -e TRANSMISSION_RATIO_LIMIT=0 \
  -e TRANSMISSION_RATIO_LIMIT_ENABLED=false \
  -e TZ='America/Chicago' \
  -p 9091:9091 \
  -p 51413:51413 \
  -p 51413:51413/udp \
  -v /path/to/data:/data \
  -v /path/to/config:/config \
  --restart unless-stopped \
  haugene/transmission-openvpn:latest

or use compose via the compose plugin make the necessay edits:



version: "3.8"
services:
  transmission-vpn:
    image: haugene/transmission-openvpn:latest
    container_name: transmission-vpn
    cap_add: [ "NET_ADMIN" ]
    devices: [ "/dev/net/tun:/dev/net/tun" ]
    environment:
      OPENVPN_PROVIDER: "PIA"
      OPENVPN_USERNAME: "PIA_USERNAME"
      OPENVPN_PASSWORD: "PIA_PASSWORD"
      OPENVPN_CONFIG: "ca_montreal"   # pick a PF-enabled region
      LOCAL_NETWORK: "192.168.1.0/24"
      TZ: "America/Chicago"
      TRANSMISSION_RATIO_LIMIT: "0"
      TRANSMISSION_RATIO_LIMIT_ENABLED: "false"
    ports:
      - "9091:9091"
      - "51413:51413"
      - "51413:51413/udp"
    volumes:
      - /path/to/data:/data
      - /path/to/config:/config
    restart: unless-stopped

Quick checks & tips

  • Verify egress via VPN

    docker exec -it transmission-vpn curl -s https://ifconfig.io
    

    Should show a PIA IP.

  • Port forwarding: With PIA, only certain regions support PF. Choose one that does (e.g., many folks use CA/Montreal; the exact list changes). The haugene image auto-fetches the PF and sets Transmission’s peer port.

  • RPC/Web UI: http://HOST_IP:9091. If you set TRANSMISSION_RPC_USERNAME/PASSWORD, the image will enforce auth.

  • Unraid: Same configs work via the GUI—just mirror the env vars, add /dev/net/tun, and NET_ADMIN.

If you want the most painless route, go with B (haugene/transmission-openvpn). If you specifically want modularity or to reuse itsdaspecialk/pia-openvpn for multiple apps, go with A and put each app on --network=container:pia.

  • Author
17 hours ago, bmartino1 said:

Thank you for clarifing. I would recomend using docker compose (more to easliy add and use mutple networks...

there’s a solid all-in-one: haugene/transmission-openvpn. It supports PIA (OpenVPN or WireGuard), does automatic port-forwarding for PIA regions that allow it, and exposes Transmission’s web UI.

Below are two clean ways to run Transmission behind PIA. Pick A (two-container) if you specifically want to use that PIA container you linked; pick B (all-in-one) if you want simpler ops.

A) Two-container setup

itsdaspecialk/pia-openvpn (VPN) + linuxserver/transmission sharing its network


https://hub.docker.com/r/itsdaspecialk/pia-openvpn/
and this docker
https://hub.docker.com/r/linuxserver/transmission


step 1 setup and make ports for use with the PIA VPN
Dokcer run (can be made into custom tempatles)

# 1) PIA OpenVPN container (owns the network + the host port mappings)
docker run -d \
  --name pia \
  --cap-add=NET_ADMIN \
  --device /dev/net/tun \
  -e OPENVPN_USERNAME='PIA_USERNAME' \
  -e OPENVPN_PASSWORD='PIA_PASSWORD' \
  -e OPENVPN_CONFIG='*.ovpn or region name' \
  -e LOCAL_NETWORK='192.168.1.0/24' \
  -p 9091:9091 \        # Transmission web UI (mapped on the VPN container)
  -p 51413:51413 \      # BitTorrent TCP
  -p 51413:51413/udp \  # BitTorrent UDP (DHT/Peers)
  -v /path/to/openvpn:/etc/openvpn \
  -v /path/to/pia-config:/config \
  --restart unless-stopped \
  itsdaspecialk/pia-openvpn:latest

# 2) Transmission shares the VPN container’s namespace (no ports on this one)
docker run -d \
  --name=transmission \
  --network=container:pia \
  -e PUID=1000 -e PGID=1000 \
  -e TZ="America/Chicago" \
  -e TRANSMISSION_WEB_HOME=/combustion-release \
  -v /path/to/downloads:/downloads \
  -v /path/to/watch:/watch \
  -v /path/to/transmission-config:/config \
  --restart unless-stopped \
  lscr.io/linuxserver/transmission:latest

or use the docker compose plugin and paste and edit the docker compose file



version: "3.8"services:pia:
    image: itsdaspecialk/pia-openvpn:latest
    container_name: pia
    cap_add: [ "NET_ADMIN" ]
    devices: [ "/dev/net/tun:/dev/net/tun" ]
    environment:
      OPENVPN_USERNAME: "PIA_USERNAME"
      OPENVPN_PASSWORD: "PIA_PASSWORD"
      OPENVPN_CONFIG: "region_or_ovpn_file"
      LOCAL_NETWORK: "192.168.1.0/24"
    ports:
      - "9091:9091"
      - "51413:51413"
      - "51413:51413/udp"
    volumes:
      - /path/to/openvpn:/etc/openvpn
      - /path/to/pia-config:/config
    restart: unless-stopped

  transmission:
    image: lscr.io/linuxserver/transmission:latest
    container_name: transmission
    network_mode: "container:pia"
    environment:
      PUID: "1000"
      PGID: "1000"
      TZ: "America/Chicago"
      TRANSMISSION_WEB_HOME: "/combustion-release"
    volumes:
      - /path/to/downloads:/downloads
      - /path/to/watch:/watch
      - /path/to/transmission-config:/config
    restart: unless-stopped

If you reviewed the guid site I made...

How it works

  • You only expose ports on pia (the VPN container). Hit Transmission at http://HOST_IP:9091.

  • Make sure your PIA region supports port forwarding; otherwise peers can’t connect inbound on 51413.

  • Keep LOCAL_NETWORK to your LAN so you can reach the web UI from inside your network.

B) All-in-one (simplest): haugene/transmission-openvpn

This is the usual “Transmission + PIA VPN in one container” approach. It handles PIA auth, OpenVPN, and port forwarding automatically.
*But loooks like you tried and had some issues?

docekr run that can be made into a unraid template:



docker run -d \
  --name=transmission-vpn \
  --cap-add=NET_ADMIN \
  --device=/dev/net/tun \
  -e OPENVPN_PROVIDER=PIA \
  4801
  -e OPENVPN_PASSWORD='PIA_PASSWORD' \
  -e OPENVPN_CONFIG='ca_montreal' \   # use a PIA region that supports PF
  -e OPENVPN_OPTS='--inactive 3600 --ping 10 --ping-exit 60' \
  -e LOCAL_NETWORK='192.168.1.0/24' \
  -e TRANSMISSION_RATIO_LIMIT=0 \
  -e TRANSMISSION_RATIO_LIMIT_ENABLED=false \
  -e TZ='America/Chicago' \
  -p 9091:9091 \
  -p 51413:51413 \
  -p 51413:51413/udp \
  -v /path/to/data:/data \
  -v /path/to/config:/config \
  --restart unless-stopped \
  haugene/transmission-openvpn:latest

or use compose via the compose plugin make the necessay edits:



version: "3.8"services:transmission-vpn:
    image: haugene/transmission-openvpn:latest
    container_name: transmission-vpn
    cap_add: [ "NET_ADMIN" ]
    devices: [ "/dev/net/tun:/dev/net/tun" ]
    environment:
      OPENVPN_PROVIDER: "PIA"
      OPENVPN_USERNAME: "PIA_USERNAME"
      OPENVPN_PASSWORD: "PIA_PASSWORD"
      OPENVPN_CONFIG: "ca_montreal"   # pick a PF-enabled region
      LOCAL_NETWORK: "192.168.1.0/24"
      TZ: "America/Chicago"
      TRANSMISSION_RATIO_LIMIT: "0"
      TRANSMISSION_RATIO_LIMIT_ENABLED: "false"
    ports:
      - "9091:9091"
      - "51413:51413"
      - "51413:51413/udp"
    volumes:
      - /path/to/data:/data
      - /path/to/config:/config
    restart: unless-stopped

Quick checks & tips

  • Verify egress via VPN

    docker exec -it transmission-vpn curl -s https://ifconfig.io
    

    Should show a PIA IP.

  • Port forwarding: With PIA, only certain regions support PF. Choose one that does (e.g., many folks use CA/Montreal; the exact list changes). The haugene image auto-fetches the PF and sets Transmission’s peer port.

  • RPC/Web UI: http://HOST_IP:9091. If you set TRANSMISSION_RPC_USERNAME/PASSWORD, the image will enforce auth.

  • Unraid: Same configs work via the GUI—just mirror the env vars, add /dev/net/tun, and NET_ADMIN.

If you want the most painless route, go with B (haugene/transmission-openvpn). If you specifically want modularity or to reuse itsdaspecialk/

I used option B and the unraid template. It seems to be up and running, except I can't find where the data is being downloaded.

I left these as they were, but I don't know where that data folder is. I've looked in every folder and I'm not sure how to change it to a folder I recognize.

I apologize for sounding like a total noob. I used to work in IT and know this stuff but I switched careers about 15 years ago and have apparently forgotten everything.

 -v /path/to/data:/data \
  -v /path/to/config:/config \
  • Community Expert
  • Solution

ok no worries. I assume your using this CA template the:
the above is example as the tempate essential builds a docker run line

image.png

you may need to click the advance togle at the top right some setting and options are only avliable with that togle

image.png

so in the above docker run shared. I gave exampels not direct paths.

the bare mini as well.
so the data folder should be located to /mnt/user/T_Media/Torrent/ unless you set its path
image.png

and the config folder path doesn't exist in the current CA template

image.pngeven with the advance toggle and show more settings.

I was pulling data form there docker hub / git hub.

The have adatioal support forum found here
https://forums.unraid.net/topic/60143-support-clowryms-docker-repository/

the template is also using the dev tag
image.png

github:

GitHub
No image preview

GitHub - haugene/docker-transmission-openvpn: Docker cont...

Docker container running Transmission torrent client with WebUI over an OpenVPN tunnel - haugene/docker-transmission-openvpn

Docker hub:

https://hub.docker.com/r/haugene/transmission-openvpn/

so without it int he tempalte its inside teh docer via termail cd /config
/your/config/path/:/config \

you will have to edit the repositry to a named tag
and add that path:
as ths is the latest image:
sha256:ecc30da79114d801295fd10a5dbaf8640b19707d012fb55be0671ddbe0503037

haugene/transmission-openvpn:latest


image.png

image.png

  • Community Expert

per the CA template support forum

Transmission_VPN - Docker container which runs Transmission torrent client with WebUI while connecting to OpenVPN. It also will update the open port every hour for those using PIA only as their provider. Based on Haugene's Currently the Container is set up for PIA with all the available OpenVPN configs listed as defaults. If your provider is someone else then the defaults need to be changed to the appropriate OpenVPN config names found here

Anyone having issues with Watch folder permission issues, please read this POST & this POST

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.