/compose-transmission-wireguard

Run Transmission through a WireGuard tunnel with Docker Compose.

MIT LicenseMIT

compose-transmission-wireguard

Run Transmission through a WireGuard tunnel with Docker Compose.

GitHub GitHub stars GitHub issues GitHub forks GitHub license

buymeacoffee_img

Changelog

2023-11-01:

  • Move wg0.conf to the new directory after linuxserver/transmission breaking change.
  • Update transmission tag to 4.0.4.

2023-07-14:

  • Remove theme environment variable from compose.yaml.
  • Add information to readme about linuxserver no longer bundling 3rd party themes.

2023-07-13:

  • Update transmission tag to 4.0.3.

2023-07-08:

  • Remove Mullvad as a provider since they no longer allow port forwarding.
  • Added ProtonVPN as a provider since they now support port forwarding for Wireguard on Linux.

2023-02-04:

  • Add example to add a route for local access to the WebUI.

2022-06-14:

2021-08-17:

2021-02-22:

  • First release!

WireGuard VPN providers

Here is a list of WireGuard VPN providers. I've chosen to only list providrs what have a maximum of 2 major concerns over at safetydetectives.com, these concerns can not be security related. I receive no commission for linking to these providers. Personally I have only tested Mullvad, which are a great provider, so I can't speak for the others. Read about them and make up your own decision.

Provider No. of major concerns WireGuard Port Forwarding
ProtonVPN 0 Source
Private Internet Access 0 Source
OVPN 1 Source
IVPN 0 ✅ Not available in the US. Source
AirVPN 1 Source
AzireVPN 1 Source

Note: Some of these provider allow port forwarding by using NAT-PMP. To enable this in a Docker container, use this Docker mod: https://github.com/jordanpotter/docker-mods

Usage

  1. git clone https://github.com/SebDanielsson/compose-transmission-wireguard.git
  2. Edit wg0.conf (WireGuard) with credentials from your VPN provider.
  3. Edit transmission.env and add your preferred username and password to access the WebUI. Also change peerport to a port that is open at your VPN provider.
  4. docker compose up -d and you should be up and running.
  5. The Transmission WebUI is accessible at 127.0.0.1:9091. I highly recommend to use a VPN to access your WebUI remotely.

Allow local access

If your wg0.conf is configured to route all traffic through the VPN server you'll need to add a route to open up for local access. In the following example, local access from the subnet 192.168.1.0/24 is allowed. Adjust the addresses according to your network. The address 172.100.0.1 is the address of the Docker network bridge.

PostUp = ip route add 192.168.1.0/24 via 172.100.0.1;
PreDown = ip route delete 192.168.1.0/24;

Extra killswitch

Update bind-address-ipv4 and bind-address-ipv6 in Transmission's settings.json to the IP addresses that you were provided in your wg0.conf.

Themes

linuxserver/docker-transmission no longer bundles 3rd party themes. If you want a more powerful UI than the default I'd recommend installing Transmissionic. See the note below from the maintainer:

Changes Required!

This image no longer bundles 3rd party Transmission UI packages.

You will need to either remove the TRANSMISSION_WEB_HOME environment variable from your container or source a UI package yourself and update the path to match.

We would advise you to use subfolders under /config to store your UI packages so that they survive upgrades.

Donate

Buy Me A Coffee

Contribute

All contributions are appreciated

License

MIT