New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
App Submission: qBittorrent #468
Conversation
Thanks for submitting qBittorrent @ASOwnerYT! Ping me whenever you are ready for me to take a look at it. |
It's almost ready for review, I'd just like to add more screenshots and include the VueTorrent webUI |
Let's try Hotio's container again Remove HostHeaderValidation fix Change port to 8081 Revert "Change port to 8081" This reverts commit f29309c.
@nmfretz It's ready for review now. On my server it works well, only issue I have is I haven't found a way for the password to be automatically generated and shown in Umbrel, the default password is |
Thanks @ASOwnerYT. Sorry for the delay. Will review soon. |
Just wondering, is there any update on this? Thanks |
@ASOwnerYT, sorry again for my delay in reviewing this. I am hoping to get to this early this week. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks again for this @ASOwnerYT, really great work! I have left a review below. Once we get through relevant changes I can start testing.
On my server it works well, only issue I have is I haven't found a way for the password to be automatically generated and shown in Umbrel, the default password is adminadmin which isn't ideal.
This should be fine. A user can change the default user/password to custom ones through the app UI after they install the app. I checked and there is no way to set the default password from an environment variable.
I see that you started trying to use the hotio image that comes bundled with the alternative VueTorrent UI. What made you switch to the linuxserver image? Do you need any help troubleshooting?
qbittorrent/docker-compose.yml
Outdated
- ${APP_DATA_DIR}/data/config:/config | ||
- ${UMBREL_ROOT}/data/storage/downloads:/downloads | ||
ports: | ||
- 8094:8094 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This can be removed. The app proxy and Docker's internal dns resolver will handle this.
qbittorrent/umbrel-app.yml
Outdated
dependencies: [] | ||
repo: https://github.com/qBittorrent/qBittorrent | ||
support: https://github.com/qBittorrent/qBittorrent/issues | ||
port: 8080 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This can be any free port that no other app is using on Umbrel. It does not have to be the same as the one the frontend web-ui is served from. Umbrel makes your app accessible at http://umbrel.local:<port>
. The port that you assign to APP_PORT
in the docker-compose.yml
tells our App Proxy what container-port your app's frontend is found at. In this instance, qBittorrent's web-ui uses container-port 8094, so that is what you assign to APP_PORT
.
We can't use port 8080 because that is used by the Lightning Node app, so there would be a clash.
You can; however, actually use port: 8094
if you want. I think the reason you were getting a port binding error when you tried this is because you bind 8094:8094
in the server
container here so there is a clash.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see that you started trying to use the hotio image that comes bundled with the alternative VueTorrent UI. What made you switch to the linuxserver image? Do you need any help troubleshooting?
Yes, the linuxserver image works as expected but the hotio image gets stuck on this error
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this link. I just tried and got it working. See here
[AutoRun] | ||
enabled=false | ||
program= | ||
|
||
[BitTorrent] | ||
Session\DefaultSavePath=/downloads/complete | ||
Session\Port=6881 | ||
Session\QueueingSystemEnabled=true | ||
Session\TempPath=/downloads/incomplete/ | ||
|
||
[LegalNotice] | ||
Accepted=true | ||
|
||
[Meta] | ||
MigrationVersion=4 | ||
|
||
[Network] | ||
Cookies=@Invalid() | ||
PortForwardingEnabled=false | ||
|
||
[Preferences] | ||
Connection\PortRangeMin=6881 | ||
Connection\UPnP=false | ||
Downloads\SavePath=/downloads/complete | ||
Downloads\TempPath=/downloads/incomplete/ | ||
WebUI\Address=* | ||
WebUI\Port=8094 | ||
WebUI\ServerDomains=* | ||
WebUI\HostHeaderValidation=false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If this is just the default qBittorent.conf
then I think we can remove this as it will be generated when the app is installed. I see you have created this bind: - ${APP_DATA_DIR}/data/config:/config
so it will be persisted across app restarts and updates.
If we can delete this file, then you can also delete the qBittorrent
directory that the config file is saved in and, instead, place an empty .gitkeep
file in data/config
so that this empty directory is included in the repo.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This config is needed as a workaround for an error that was preventing me from using the WebUI, and also to set the default download path to the "downloads/complete" folder instead of the "downloads" folder.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pinging @lukechilds for his thoughts here as well.
I see, thanks. Do you recall what the specific error was? I just tested removing this file and installing the app, and I can access the WebUI.
A default qBittorrent.conf
is generated automatically that looks like this, with the save path set to /downloads/
instead of /downloads/complete/
as you note.
[AutoRun]
enabled=false
program=
[BitTorrent]
Session\DefaultSavePath=/downloads/
Session\Port=6881
Session\QueueingSystemEnabled=true
Session\TempPath=/downloads/incomplete/
[LegalNotice]
Accepted=true
[Meta]
MigrationVersion=4
[Network]
PortForwardingEnabled=false
[Preferences]
Connection\PortRangeMin=6881
Connection\UPnP=false
Downloads\SavePath=/downloads/
Downloads\TempPath=/downloads/incomplete/
WebUI\Address=*
WebUI\Port=8094
WebUI\ServerDomains=*
Is the reason you want to set the downloads path to /downloads/complete/
so that qBittorrent mimics Transmission's default behaviour? The other torrent app SimpleTorrent does not mimic this and instead saves files to /downloads
and I'm assuming future torrent apps will have their own default behaviours.
I do actually like the idea of torrents being saved in /downloads/complete/
, but I'm hesitant to include a qBittorent.conf
in the repo because it will introduce complexity down the road if an app update requires us to change this file. Existing users who update their app won't get changes we make to this default file unless we add some finicky logic and we would need to be careful not to overwrite any custom changes users have made. Plus it is nice for the qBittorrent application itself to generate a config for us without any mistakes and then users can change the config from the UI (save to `/downloads/complete/' etc..).
qbittorrent/docker-compose.yml
Outdated
PROXY_AUTH_ADD: "false" | ||
|
||
server: | ||
image: linuxserver/qbittorrent:4.5.2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We need to include the multi-arch digest for this Docker image to make sure that everyone installing this app gets the exact same version of the image. To get the digest you can run:
docker pull linuxserver/qbittorrent:4.5.2
and the digest will be printed in the output.
qbittorrent/umbrel-app.yml
Outdated
The qBittorrent project aims to provide an open-source software alternative to µTorrent. | ||
|
||
Additionally, qBittorrent runs and provides the same features on all major platforms (FreeBSD, Linux, macOS, OS/2, Windows). | ||
|
||
Bittorrent is based on the Qt toolkit and libtorrent-rasterbar library. | ||
|
||
⚠️ qBittorrent downloads torrents over the Clearnet, not Tor. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For the description section, a single blank newline between paragraphs places text on their own lines, like this:
but two blank newlines are needed between paragraphs to separate the lines with whitespace.
The qBittorrent project aims to provide an open-source software alternative to µTorrent.
<newline here>
<newline here>
Additionally, qBittorrent runs and provides the same features on all major platforms (FreeBSD, Linux, macOS, OS/2, Windows).
website: https://qbittorrent.org/ | ||
dependencies: [] | ||
repo: https://github.com/qBittorrent/qBittorrent | ||
support: https://github.com/qBittorrent/qBittorrent/issues |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I also see this forum we could use here: https://forum.qbittorrent.org/. Have you come across other support networks for qBittorent?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In my opinion I think it might be best to stick with the Github issues page for this. Transmission has it set to their Github issues page too.
qbittorrent/umbrel-app.yml
Outdated
defaultPassword: "adminadmin" | ||
torOnly: false | ||
permissions: | ||
- STORAGE_DOWNLOADS |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You get to add yourself as submitter
here! And also add a submission
field with the url of this PR as the value.
See Thunderhub app for example:
umbrel-apps/thunderhub/umbrel-app.yml
Lines 38 to 39 in 91be883
submitter: Anthony Potdevin | |
submission: https://github.com/getumbrel/umbrel/pull/343 |
qbittorrent/umbrel-app.yml
Outdated
category: Networking | ||
name: qBittorrent | ||
version: "4.5.2" | ||
tagline: A fast, easy and free BitTorrent client |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the tagline for Transmission>
We could use the tagline from https://www.qbittorrent.org/:
Free and reliable P2P Bittorrent client
@nmfretz I've made all the changes you suggested, it should be ready for testing now |
Thanks @ASOwnerYT, it is working great! Very nice work. I have responded here with some thoughts on the default |
If you're still interested in using the hotio image so that users have the ability to switch to the VueTorrent UI, here is the set-up that worked for me just now https://github.com/nmfretz/umbrel-apps-fork/tree/qbittorrent-hotio/qbittorrent. |
@ASOwnerYT are you okay if we use the hotio image and get this out the door? It's working quite well. |
Of course! The hotio image will probably be better. |
Excellent. I'll get the icon and gallery images made up. |
Thanks again for bringing qBittorent to Umbrel @ASOwnerYT! Going live to the app store now 🚀 |
App Submission
App name
qBittorrent
256x256 SVG icon
https://upload.wikimedia.org/wikipedia/commons/6/66/New_qBittorrent_Logo.svg
Gallery images
I don't have screenshot of the default web UI yet, for now here's a good screenshot of VueTorrent which I plan to include:
I have tested my app on: