A tool for maintaining a forwarded port from ProtonVPN, while keeping OPNsense and qBittorrent in sync. The tool offers a simple web UI and API with stats and logging via http://<host_ip>:4567/
.
qbop is built with Ruby and available as a Docker image.
Warning
I'm not responsible for any issues you may encounter.
This tool helps automate port forwarding from ProtonVPN to qBittorrent via OPNsense. The tool polls ProtonVPN for the forwarded port, checks the ports set in OPNsense and qBittorrent, and updates them if necessary.
You can ignore OPNsense and qBittorrent by using the OPN_SKIP
and QBIT_SKIP
environment variables.
I recommend using the provided Docker Compose file to simplify the set up of qbop. This container must be connected to ProtonVPN due to the required natpmpc
dependency.
The container image is available here: https://github.com/clajiness/qbop/pkgs/container/qbop
- AMD64 or ARM64/v8 architecture - If you need support for a different architecture, file an issue.
- Docker Engine
- OPNsense
- qBittorrent
- ProtonVPN
The sample docker-compose.yml file is available here: https://github.com/clajiness/qbop/blob/main/docker-compose.yml
Variable | Default | Description |
---|---|---|
LOOP_FREQ |
45 |
This value, in seconds, determines how often the job runs. It must be a positive integer. The default value is recommended by ProtonVPN. |
REQUIRED_ATTEMPTS |
3 |
The number of loops with a new forwarded port before updating OPNsense and qBit. The min is 1, and max is 10. |
LOG_LINES |
50 |
The number of log lines displayed on the "logs" page |
PROTON_GATEWAY |
10.2.0.1 |
ProtonVPN provided gateway IP address. Do not use http(s):// or a trailing slash. |
OPN_SKIP |
false |
[true /false ] Skip OPNsense. If true , subsequent OPNsense environment variables are not required. |
OPN_INTERFACE_ADDR |
OPNsense Interface Address. Requires http(s):// and no trailing slash. |
|
OPN_API_KEY |
OPNsense API Key | |
OPN_API_SECRET |
OPNsense API Secret | |
OPN_PROTON_ALIAS_NAME |
The firewall alias that you use for ProtonVPN's forwarded port. For example, proton_vpn_forwarded_port . |
|
QBIT_SKIP |
false |
[true /false ] Skip qBittorrent. If true , subsequent qBit environment variables are not required. |
QBIT_ADDR |
The IP address of your qBittorrent app. Requires http(s):// and no trailing slash. |
|
QBIT_USER |
qBittorrent username | |
QBIT_PASS |
qBittorrent password |