Thanks to everyone having starred my repo! To star it click on the image below, then it will be on top right. Thanks!
Qbittorrent is a cross-platform free and open-source BitTorrent client. This addon is based on the docker image from linuxserver.io.
This addons has several configurable options :
- allowing to mount local external drive, or smb share from the addon
- alternative webUI
- usage of ssl
- ingress
- optional openvpn support
- allow setting specific DNS servers
Webui can be found at http://homeassistant:8080, or in your sidebar using Ingress. The default username/password : described in the startup log. Configurations can be done through the app webUI, except for the following options
Network disk is mounted to /mnt/share name
You need to map the exposed port in your router if you want the best speed and connectivity.
PGID: user
GPID: user
ssl: true/false
certfile: fullchain.pem #ssl certificate, must be located in /ssl
keyfile: privkey.pem #sslkeyfile, must be located in /ssl
whitelist: "localhost,192.168.0.0/16" # Type `null` to disable. List ip subnets that won't need a password (optional)
customUI: selection from list # alternative webUI can be set here. Latest version set at each addon start. Select 'custom' to fill it yourself in the webui
DNS_servers: 8.8.8.8,1.1.1.1 # Keep blank to use router’s DNS, or set custom DNS to avoid spamming in case of local DNS ad-remover
SavePath: "/share/qbittorrent" # Define the download directory
localdisks: sda1 #put the hardware name of your drive to mount separated by commas, or its label. ex. sda1, sdb1, MYNAS...
networkdisks: "//SERVER/SHARE" # optional, list of smb servers to mount, separated by commas
cifsusername: "username" # optional, smb username, same for all smb shares
cifspassword: "password" # optional, smb password
cifsdomain: "domain" # optional, allow setting the domain for the smb share
openvpn_enabled: true/false # is openvpn required to start qbittorrent
openvpn_config": For example "config.ovpn" # name of the file located in /config/openvpn. If empty, a random one will be used
openvpn_username": USERNAME
openvpn_password: YOURPASSWORD
openvpn_alt_mode: bind at container level and not app level
run_duration: 12h #for how long should the addon run. Must be formatted as number + time unit (ex : 5s, or 2m, or 12h, or 5d...)
silent: true #suppresses debug messages
The installation of this add-on is pretty straightforward and not different in comparison to installing any other add-on.
- Add my add-ons repository to your home assistant instance (in supervisor addons store at top right, or click button below if you have configured my HA)
- Install this add-on.
- Click the
Save
button to store your configuration. - Set the add-on options to your preferences
- Start the add-on.
- Check the logs of the add-on to see if everything went well.
- Open the webUI and adapt the software options
Use the qBittorrent integration
You can use the following snippets to check and set the alternate speeds (the HA integration above is not needed for this)
shell_command:
toggle_torrent_speed: curl -X POST https://<YOUR HA IP>:8081/api/v2/transfer/toggleSpeedLimitsMode -k
sensor:
- platform: command_line
name: get_torrent_speed
command: curl https://<YOUR HA IP>:8081/api/v2/transfer/speedLimitsMode -k
If you're not using the SSL option, you can skip the -k parameter and use http instead of https in the URL
These lines will expose a sensor.get_torrent_speed
that updates every 60 seconds and returns 1 if the alternate speed mode is enabled, 0 otherwise, and a shell_command.toggle_torrent_speed
that you can call as a Service in your automations
### ipv6 issues with openvpn (@happycoo)
Add this code to your .ovpn config# don't route lan through vpn
route 192.168.1.0 255.255.255.0 net_gateway
# deactivate ipv6
pull-filter ignore "dhcp-option DNS6"
pull-filter ignore "tun-ipv6"
pull-filter ignore "ifconfig-ipv6"
### Monitored folders (@FaliseDotCom)
- go to config\addons_config\qBittorrent
- find (or create) the file watched_folders.json
- paste or adjust to the following:
{
"folder/to/watch": {
"add_torrent_params": {
"category": "",
"content_layout": "Original",
"download_limit": -1,
"download_path": "[folder/for/INCOMPLETE_downloads]",
"operating_mode": "AutoManaged",
"ratio_limit": -2,
"save_path": "[folder/for/COMPLETED_downloads]",
"seeding_time_limit": -2,
"skip_checking": false,
"stopped": false,
"tags": [
],
"upload_limit": -1,
"use_auto_tmm": false,
"use_download_path": true
},
"recursive": false
}
}
### nginx error code (@Nanianmichaels)
[cont-init.d] 30-nginx.sh: executing... [cont-init.d] 30-nginx.sh: exited 1.
Wait a couple minutes and restart addon, it could be a temporary unavailability of github
[cont-init.d] 00-local_mounts.sh: executing... Local Disks mounting... mount: mounting /dev/sda1 on /mnt/sda1 failed: Invalid argument [19:19:44] FATAL: Unable to mount local drives! Please check the name. [cont-init.d] 00-local_mounts.sh: exited 0.
Try to mount by putting the partition label in the "localdisks" options instead of the hardware name
### Loss of metadata fetching with openvpn after several days (@almico)
Add ping-restart 60
to your config.ovpn
### Downloads info are empty on small scale window (@aviadlevy)
When my window size width is lower than 960 pixels my downloads are empty. Solution is to reset the Vuetorrent settings.
Create an issue on github, or ask on the home assistant thread