Skip to content
Go to file


Failed to load latest commit information.

OpenVPN and Transmission with WebUI

CircleCI builds Docker Pulls Join the chat at

Version 3.0 released - we have some breaking changes (but not much)

Those of you who are following this project knows that we have had some larger changes coming for a while. Hobby projects often get last in line for some love and care, and it took longer than I hoped but here we are.

Some highlights on version 3.0:

  • We're dropping the ubuntu based image and making alpine the default (reduce double maintenance)
  • We're making Transmission settings persistent by default, removing the need for all the environment variables (but keeping support for it)
  • We're making it easier to provide your own OpenVPN (.ovpn) config file - adding scripts in the container to modify provider configs as needed to fit the container setup. (still in early stages at this point)
  • We're adding a standardized way to add scripts for doing necessary setup of a provider. This usually means to download a .ovpn config bundle, unpack it and modify it correctly to work in this container.

Hopefully these changes will improve the usability of this container. As maintainers we also hope that it will free up time to keep the container up to date and stable instead of managing thousands of .ovpn files coming and going.

I'll try to keep a list of breaking changes here, and add to it if we come across more:

  • The CREATE_TUN_DEVICE variable now defaults to true. Mounting /dev/net/tun will lead to an error message in the logs unless you explicitly set it to false.
  • The DOCKER_LOG variable is renamed to LOG_TO_STDOUT

PS: Now more than ever. We appreciate that you report bugs and issues when you find them. But as there might be more than ususal, please make sure you search and look for a similar one before possibly creating a duplicate. And you can always revert back to the latest tag on the 2.x versions which is 2.14. Instead of running with haugene/transmission-openvpn simply use haugene/transmission-openvpn:2.14 instead. We hope that won't be necessary though :)

Quick Start

This container contains OpenVPN and Transmission with a configuration where Transmission is running only when OpenVPN has an active tunnel. It bundles configuration files for many popular VPN providers to make the setup easier.

$ docker run --cap-add=NET_ADMIN -d \
              -v /your/storage/path/:/data \
              -e OPENVPN_PROVIDER=PIA \
              -e OPENVPN_CONFIG=France \
              -e OPENVPN_USERNAME=user \
              -e OPENVPN_PASSWORD=pass \
              -e WEBPROXY_ENABLED=false \
              -e LOCAL_NETWORK= \
              --log-driver json-file \
              --log-opt max-size=10m \
              -p 9091:9091 \

Docker Compose

version: '3.3'
            - '/your/storage/path/:/data'
            - OPENVPN_CONFIG=France
            - OPENVPN_USERNAME=user
            - OPENVPN_PASSWORD=pass
            - WEBPROXY_ENABLED=false
            - LOCAL_NETWORK=
            - NET_ADMIN
            driver: json-file
                max-size: 10m
            - '9091:9091'
        image: haugene/transmission-openvpn


The full documentation is available at

Please help out (about:maintenance)

This image was created for my own use, but sharing is caring, so it had to be open source. It has now gotten quite popular, and that's great! But keeping it up to date, providing support, fixes and new features takes time. If you feel that you're getting a good tool and want to support it, there are a couple of options:

A small montly amount through Donate with Patreon or a one time donation with Donate with PayPal

All donations are greatly appreciated! Another great way to contribute is of course through code. A big thanks to everyone who has contributed so far!

You can’t perform that action at this time.