All Projects → DyonR → docker-qbittorrentvpn

DyonR / docker-qbittorrentvpn

Licence: GPL-3.0 license
Docker container which runs a qBittorent-nox client with an optional WireGuard or OpenVPN connection

Programming Languages

shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to docker-qbittorrentvpn

alpine-qbittorrent-openvpn
qBittorrent docker container with OpenVPN client running as unprivileged user on alpine linux
Stars: ✭ 230 (+202.63%)
Mutual labels:  docker-container, qbittorrent
docker-cheat-sheet
All about docker commands
Stars: ✭ 50 (-34.21%)
Mutual labels:  docker-container
another-ldap-auth
LDAP Authentication for Nginx, Nginx ingress controller (Kubernetes), and HAProxy via a subrequest.
Stars: ✭ 30 (-60.53%)
Mutual labels:  docker-container
pfSense-pkg-WireGuard
This is a port of the original WireGuard UI bits as implemented by Netgate in pfSense 2.5.0 to a package suitable for rapid iteration and more frequent updating on future releases of pfSense.
Stars: ✭ 194 (+155.26%)
Mutual labels:  wireguard
dvpn-node
The official Sentinel dVPN node
Stars: ✭ 73 (-3.95%)
Mutual labels:  wireguard
netmaker
Netmaker makes networks with WireGuard. Netmaker automates fast, secure, and distributed virtual networks.
Stars: ✭ 4,147 (+5356.58%)
Mutual labels:  wireguard
minicon
Minimization of the filesystem for containers
Stars: ✭ 70 (-7.89%)
Mutual labels:  docker-container
vrnetlab
Run virtual routers with docker
Stars: ✭ 879 (+1056.58%)
Mutual labels:  docker-container
mirror-leech-telegram-bot
Aria/qBittorrent Telegram mirror/leech bot
Stars: ✭ 1,289 (+1596.05%)
Mutual labels:  qbittorrent
qbittorrent-bot
Telegram bot to mange your qBittorrent torrents
Stars: ✭ 91 (+19.74%)
Mutual labels:  qbittorrent
tunfish-vxlan
A proof-of-concept for creating convenient VPN environments on top of secure WireGuard tunnels, with VXLAN.
Stars: ✭ 22 (-71.05%)
Mutual labels:  wireguard
syscall2seccomp
Build custom Docker seccomp profiles for containers by finding syscalls it uses.
Stars: ✭ 71 (-6.58%)
Mutual labels:  docker-container
docker-phpmyadmin
phpMyAdmin as Docker container, based on official image, always latest version
Stars: ✭ 40 (-47.37%)
Mutual labels:  docker-container
yii2-laradock
Laradock pre-configured for Yii2 Framework (https://github.com/LaraDock/laradock)
Stars: ✭ 16 (-78.95%)
Mutual labels:  docker-container
docker-predictionio
Docker container for PredictionIO-based machine learning services
Stars: ✭ 75 (-1.32%)
Mutual labels:  docker-container
Flood Mobile
GSoC 21' @CCExtractor. A modern mobile UI for various torrent clients with a Node.js backend and Flutter frontend.
Stars: ✭ 48 (-36.84%)
Mutual labels:  qbittorrent
wireguard-manager-and-api
A Wireguard VPN Server Manager and API to add and remove clients
Stars: ✭ 124 (+63.16%)
Mutual labels:  wireguard
github-status-updater
Command line utility for updating GitHub commit statuses and enabling required status checks for pull requests
Stars: ✭ 83 (+9.21%)
Mutual labels:  docker-container
ipvpn
[WIP] Easy-to-use decentralized secure overlay private network (for any device)
Stars: ✭ 24 (-68.42%)
Mutual labels:  wireguard
graph-vl
Self hosted identity verification layer with GraphQL.
Stars: ✭ 25 (-67.11%)
Mutual labels:  docker-container

qBittorrent, WireGuard and OpenVPN

Docker Pulls Docker Image Size (tag)

Docker container which runs the latest qBittorrent-nox client while connecting to WireGuard or OpenVPN with iptables killswitch to prevent IP leakage when the tunnel goes down.

alt text

Docker Features

  • Base: Debian bullseye-slim
  • qBittorrent compiled from source
  • libtorrent compiled from source
  • Compiled with the latest version of Boost
  • Compiled with the latest versions of CMake
  • Selectively enable or disable WireGuard or OpenVPN support
  • IP tables killswitch to prevent IP leaking when VPN connection fails
  • Configurable UID and GID for config files and /downloads for qBittorrent
  • Created with Unraid in mind
  • BitTorrent port 8999 exposed by default

Run container from Docker registry

The container is available from the Docker registry and this is the simplest way to get it
To run the container use this command, with additional parameters, please refer to the Variables, Volumes, and Ports section:

$ docker run  -d \
              -v /your/config/path/:/config \
              -v /your/downloads/path/:/downloads \
              -e "VPN_ENABLED=yes" \
              -e "VPN_TYPE=wireguard" \
              -e "LAN_NETWORK=192.168.0.0/24" \
              -p 8080:8080 \
              --cap-add NET_ADMIN \
              --sysctl "net.ipv4.conf.all.src_valid_mark=1" \
              --restart unless-stopped \
              dyonr/qbittorrentvpn

Docker Tags

Tag Description
dyonr/qbittorrentvpn:latest The latest version of qBittorrent with libtorrent 1_x_x
dyonr/qbittorrentvpn:rc_2_0 The latest version of qBittorrent with libtorrent 2_x_x
dyonr/qbittorrentvpn:legacy_iptables The latest version of qBittorrent, libtorrent 1_x_x and an experimental feature to fix problems with QNAP NAS systems, Issue #25
dyonr/qbittorrentvpn:alpha The latest alpha version of qBittorrent with libtorrent 2_0, incase you feel like testing new features
dyonr/qbittorrentvpn:dev This branch is used for testing new Docker features or improvements before merging it to the main branch
dyonr/qbittorrentvpn:v4_2_x (Legacy) qBittorrent version 4.2.x with libtorrent 1_x_x

Variables, Volumes, and Ports

Environment Variables

Variable Required Function Example Default
VPN_ENABLED Yes Enable VPN (yes/no)? VPN_ENABLED=yes yes
VPN_TYPE Yes WireGuard or OpenVPN (wireguard/openvpn)? VPN_TYPE=wireguard openvpn
VPN_USERNAME No If username and password provided, configures ovpn file automatically VPN_USERNAME=ad8f64c02a2de
VPN_PASSWORD No If username and password provided, configures ovpn file automatically VPN_PASSWORD=ac98df79ed7fb
LAN_NETWORK Yes (atleast one) Comma delimited local Network's with CIDR notation LAN_NETWORK=192.168.0.0/24,10.10.0.0/24
LEGACY_IPTABLES No Use iptables (legacy) instead of iptables (nf_tables) LEGACY_IPTABLES=yes
ENABLE_SSL No Let the container handle SSL (yes/no)? ENABLE_SSL=yes yes
NAME_SERVERS No Comma delimited name servers NAME_SERVERS=1.1.1.1,1.0.0.1 1.1.1.1,1.0.0.1
PUID No UID applied to /config files and /downloads PUID=99 99
PGID No GID applied to /config files and /downloads PGID=100 100
UMASK No UMASK=002 002
HEALTH_CHECK_HOST No This is the host or IP that the healthcheck script will use to check an active connection HEALTH_CHECK_HOST=one.one.one.one one.one.one.one
HEALTH_CHECK_INTERVAL No This is the time in seconds that the container waits to see if the internet connection still works (check if VPN died) HEALTH_CHECK_INTERVAL=300 300
HEALTH_CHECK_SILENT No Set to 1 to supress the 'Network is up' message. Defaults to 1 if unset. HEALTH_CHECK_SILENT=1 1
RESTART_CONTAINER No Set to no to disable the automatic restart when the network is possibly down. RESTART_CONTAINER=yes yes
INSTALL_PYTHON3 No Set this to yes to let the container install Python3. INSTALL_PYTHON3=yes no
ADDITIONAL_PORTS No Adding a comma delimited list of ports will allow these ports via the iptables script. ADDITIONAL_PORTS=1234,8112

Volumes

Volume Required Function Example
config Yes qBittorrent, WireGuard and OpenVPN config files /your/config/path/:/config
downloads No Default downloads path for saving downloads /your/downloads/path/:/downloads

Ports

Port Proto Required Function Example
8080 TCP Yes qBittorrent WebUI 8080:8080
8999 TCP Yes qBittorrent TCP Listening Port 8999:8999
8999 UDP Yes qBittorrent UDP Listening Port 8999:8999/udp

Access the WebUI

Access https://IPADDRESS:PORT from a browser on the same network. (for example: https://192.168.0.90:8080)

Default Credentials

Credential Default Value
username admin
password adminadmin

How to use WireGuard

The container will fail to boot if VPN_ENABLED is set and there is no valid .conf file present in the /config/wireguard directory. Drop a .conf file from your VPN provider into /config/wireguard and start the container again. The file must have the name wg0.conf, or it will fail to start.

WireGuard IPv6 issues

If you use WireGuard and also have IPv6 enabled, it is necessary to add the IPv6 range to the LAN_NETWORK environment variable.
Additionally the parameter --sysctl net.ipv6.conf.all.disable_ipv6=0 also must be added to the docker run command, or to the "Extra Parameters" in Unraid.
The full Unraid Extra Parameters would be: --restart unless-stopped --sysctl net.ipv6.conf.all.disable_ipv6=0"
If you do not do this, the container will keep on stopping with the error RTNETLINK answers permission denied. Since I do not have IPv6, I am did not test. Thanks to mchangrh / Issue #49

How to use OpenVPN

The container will fail to boot if VPN_ENABLED is set and there is no valid .ovpn file present in the /config/openvpn directory. Drop a .ovpn file from your VPN provider into /config/openvpn (if necessary with additional files like certificates) and start the container again. You may need to edit the ovpn configuration file to load your VPN credentials from a file by setting auth-user-pass.

Note: The script will use the first ovpn file it finds in the /config/openvpn directory. Adding multiple ovpn files will not start multiple VPN connections.

Example auth-user-pass option for .ovpn files

auth-user-pass credentials.conf

Example credentials.conf

username
password

PUID/PGID

User ID (PUID) and Group ID (PGID) can be found by issuing the following command for the user you want to run the container as:

id <username>

Issues

If you are having issues with this container please submit an issue on GitHub.
Please provide logs, Docker version and other information that can simplify reproducing the issue.
If possible, always use the most up to date version of Docker, you operating system, kernel and the container itself. Support is always a best-effort basis.

Credits:

MarkusMcNugen/docker-qBittorrentvpn
DyonR/jackettvpn
This projects originates from MarkusMcNugen/docker-qBittorrentvpn, but forking was not possible since DyonR/jackettvpn uses the fork already.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].