Run Transmission through a WireGuard tunnel with Docker Compose.
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:
- Remove default config directory.
- Add transmission.env to separate secrets from the compose file.
- Switch to Transmissionic theme bundled with linuxserver/docker-transmission.
2021-08-17:
- Enable IPV6 #3
- Removed
version
and renameddocker-compose.yml
tocompose.yaml
according to The Compose Specification.
2021-02-22:
- First release!
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
git clone https://github.com/SebDanielsson/compose-transmission-wireguard.git
- Edit
wg0.conf
(WireGuard) with credentials from your VPN provider. - 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. docker compose up -d
and you should be up and running.- The Transmission WebUI is accessible at 127.0.0.1:9091. I highly recommend to use a VPN to access your WebUI remotely.
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;
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
.
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:
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.
All contributions are appreciated
MIT