How to Install qBittorrent-NoX, a headless and web UI Torrent Client

Andy

Well-known member
Creative Team
User ID
1
Joined
7 Jan 2019
Messages
1,305
Reaction score
87
Points
48
qBittorrent NoX is a headless BitTorrent client, perfect for installing on a headless server, and accessing it using web interface from another device.

To install it, use the following command:
Bash:
sudo apt install qbittorrent-nox
Code:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  libdouble-conversion3 libpcre2-16-0 libqt5core5a libqt5dbus5 libqt5network5 libqt5sql5 libqt5sql5-sqlite libqt5xml5
  libtorrent-rasterbar2.0 qttranslations5-l10n
Suggested packages:
  libthai0
The following NEW packages will be installed:
  libdouble-conversion3 libpcre2-16-0 libqt5core5a libqt5dbus5 libqt5network5 libqt5sql5 libqt5sql5-sqlite libqt5xml5
  libtorrent-rasterbar2.0 qbittorrent-nox qttranslations5-l10n
0 upgraded, 11 newly installed, 0 to remove and 1 not upgraded.
Need to get 13.2 MB of archives.
After this operation, 39.1 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://nz.archive.ubuntu.com/ubuntu jammy/universe amd64 libdouble-conversion3 amd64 3.1.7-4 [39.0 kB]
Get:2 http://nz.archive.ubuntu.com/ubuntu jammy-updates/main amd64 libpcre2-16-0 amd64 10.39-3ubuntu0.1 [203 kB]
Get:3 http://nz.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 libqt5core5a amd64 5.15.3+dfsg-2ubuntu0.2 [2006 kB]
Get:4 http://nz.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 libqt5dbus5 amd64 5.15.3+dfsg-2ubuntu0.2 [222 kB]
Get:5 http://nz.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 libqt5network5 amd64 5.15.3+dfsg-2ubuntu0.2 [731 kB]
Get:6 http://nz.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 libqt5sql5 amd64 5.15.3+dfsg-2ubuntu0.2 [123 kB]
Get:7 http://nz.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 libqt5sql5-sqlite amd64 5.15.3+dfsg-2ubuntu0.2 [53.0 kB]
Get:8 http://nz.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 libqt5xml5 amd64 5.15.3+dfsg-2ubuntu0.2 [124 kB]
Get:9 http://nz.archive.ubuntu.com/ubuntu jammy/universe amd64 libtorrent-rasterbar2.0 amd64 2.0.5-5 [1501 kB]
Get:10 http://nz.archive.ubuntu.com/ubuntu jammy/universe amd64 qbittorrent-nox amd64 4.4.1-2 [6225 kB]
Get:11 http://nz.archive.ubuntu.com/ubuntu jammy/universe amd64 qttranslations5-l10n all 5.15.3-1 [1983 kB]
Fetched 13.2 MB in 1s (10.2 MB/s)
Selecting previously unselected package libdouble-conversion3:amd64.
(Reading database ... 76532 files and directories currently installed.)
Preparing to unpack .../00-libdouble-conversion3_3.1.7-4_amd64.deb ...
Unpacking libdouble-conversion3:amd64 (3.1.7-4) ...
Selecting previously unselected package libpcre2-16-0:amd64.
Preparing to unpack .../01-libpcre2-16-0_10.39-3ubuntu0.1_amd64.deb ...
Unpacking libpcre2-16-0:amd64 (10.39-3ubuntu0.1) ...
Selecting previously unselected package libqt5core5a:amd64.
Preparing to unpack .../02-libqt5core5a_5.15.3+dfsg-2ubuntu0.2_amd64.deb ...
Unpacking libqt5core5a:amd64 (5.15.3+dfsg-2ubuntu0.2) ...
Selecting previously unselected package libqt5dbus5:amd64.
Preparing to unpack .../03-libqt5dbus5_5.15.3+dfsg-2ubuntu0.2_amd64.deb ...
Unpacking libqt5dbus5:amd64 (5.15.3+dfsg-2ubuntu0.2) ...
Selecting previously unselected package libqt5network5:amd64.
Preparing to unpack .../04-libqt5network5_5.15.3+dfsg-2ubuntu0.2_amd64.deb ...
Unpacking libqt5network5:amd64 (5.15.3+dfsg-2ubuntu0.2) ...
Selecting previously unselected package libqt5sql5:amd64.
Preparing to unpack .../05-libqt5sql5_5.15.3+dfsg-2ubuntu0.2_amd64.deb ...
Unpacking libqt5sql5:amd64 (5.15.3+dfsg-2ubuntu0.2) ...
Selecting previously unselected package libqt5sql5-sqlite:amd64.
Preparing to unpack .../06-libqt5sql5-sqlite_5.15.3+dfsg-2ubuntu0.2_amd64.deb ...
Unpacking libqt5sql5-sqlite:amd64 (5.15.3+dfsg-2ubuntu0.2) ...
Selecting previously unselected package libqt5xml5:amd64.
Preparing to unpack .../07-libqt5xml5_5.15.3+dfsg-2ubuntu0.2_amd64.deb ...
Unpacking libqt5xml5:amd64 (5.15.3+dfsg-2ubuntu0.2) ...
Selecting previously unselected package libtorrent-rasterbar2.0:amd64.
Preparing to unpack .../08-libtorrent-rasterbar2.0_2.0.5-5_amd64.deb ...
Unpacking libtorrent-rasterbar2.0:amd64 (2.0.5-5) ...
Selecting previously unselected package qbittorrent-nox.
Preparing to unpack .../09-qbittorrent-nox_4.4.1-2_amd64.deb ...
Unpacking qbittorrent-nox (4.4.1-2) ...
Selecting previously unselected package qttranslations5-l10n.
Preparing to unpack .../10-qttranslations5-l10n_5.15.3-1_all.deb ...
Unpacking qttranslations5-l10n (5.15.3-1) ...
Setting up libdouble-conversion3:amd64 (3.1.7-4) ...
Setting up libtorrent-rasterbar2.0:amd64 (2.0.5-5) ...
Setting up libpcre2-16-0:amd64 (10.39-3ubuntu0.1) ...
Setting up qttranslations5-l10n (5.15.3-1) ...
Setting up libqt5core5a:amd64 (5.15.3+dfsg-2ubuntu0.2) ...
Setting up libqt5dbus5:amd64 (5.15.3+dfsg-2ubuntu0.2) ...
Setting up libqt5network5:amd64 (5.15.3+dfsg-2ubuntu0.2) ...
Setting up libqt5sql5:amd64 (5.15.3+dfsg-2ubuntu0.2) ...
Setting up libqt5xml5:amd64 (5.15.3+dfsg-2ubuntu0.2) ...
Setting up libqt5sql5-sqlite:amd64 (5.15.3+dfsg-2ubuntu0.2) ...
Setting up qbittorrent-nox (4.4.1-2) ...
Processing triggers for man-db (2.10.2-1) ...
Processing triggers for libc-bin (2.35-0ubuntu3.1) ...
Scanning processes...
Scanning linux images...

Running kernel seems to be up-to-date.

No services need to be restarted.

No containers need to be restarted.

No user sessions are running outdated binaries.

No VM guests are running outdated hypervisor (qemu) binaries on this host.

At this point, technically we can run the qBittorrent client on http://server-ip:8080, but ideally we want to run it as a server, and here's how to make it run as a server. Create a new file on /etc/systemd/system/qbittorrent-nox.service

And here's the content of the file qbittorrent-nox.service:
Bash:
[Unit]
Description=qBittorrent NoX Terminal Application
After=network.target

[Service]
Type=forking
User=qbittorrent-nox
Group=qbittorrent-nox
UMask=007
ExecStart=/usr/bin/qbittorrent-nox -d --webui-port=8080
Restart=on-failure

[Install]
WantedBy=multi-user.target

Pro tip: You can change the web user interface port by changing the value 8080 above with your preferred port.

Then do daemon reload:
Bash:
sudo systemctl daemon-reload

It's not ideal for running the qBittorrent-NoX app as a root, so we'll create the user qbittorrent-nox using the command below:
Code:
sudo adduser --system --group qbittorrent-nox

It's a system user account, no one is going to be able to login to this account, and this account will not have a password.
Code:
Adding system user `qbittorrent-nox' (UID 114) ...
Adding new group `qbittorrent-nox' (GID 119) ...
Adding new user `qbittorrent-nox' (UID 114) with group `qbittorrent-nox' ...
Creating home directory `/home/qbittorrent-nox' ...

Then we're going to add our username to that usergroup as well:
Bash:
sudo adduser andy qbittorrent-nox
Code:
Adding user `andy' to group `qbittorrent-nox' ...
Adding user andy to group qbittorrent-nox
Done.

Finally to start the qBittorrent-NoX service:
Bash:
sudo systemctl start qbittorrent-nox.service

Hint: To check the service status, type:
Bash:
sudo systemctl status qbittorrent-nox
Code:
● qbittorrent-nox.service - qBittorrent NoX Terminal Application
     Loaded: loaded (/etc/systemd/system/qbittorrent-nox.service; disabled; vendor preset: enabled)
     Active: active (running) since Thu 2023-01-26 19:56:12 UTC; 14s ago
    Process: 11483 ExecStart=/usr/bin/qbittorrent-nox -d (code=exited, status=0/SUCCESS)
   Main PID: 11484 (qbittorrent-nox)
      Tasks: 13 (limit: 2227)
     Memory: 28.1M
        CPU: 180ms
     CGroup: /system.slice/qbittorrent-nox.service
             └─11484 /usr/bin/qbittorrent-nox -d

Jan 26 19:56:12 jerusalem systemd[1]: Starting qBittorrent NoX Terminal Application...
Jan 26 19:56:12 jerusalem systemd[1]: Started qBittorrent NoX Terminal Application.

You can login to your qBittorrent NoX using the address http://server-ip:8080
The default username is: admin and the password is: adminadmin

And here's how to set the credentials:
Screenshot 2023-01-27 at 9.03.59 AM.png

Last but not least, to start the service at boot, use the command below:
Bash:
sudo systemctl enable qbittorrent-nox.service
Code:
Created symlink /etc/systemd/system/multi-user.target.wants/qbittorrent-nox.service → /etc/systemd/system/qbittorrent-nox.service.

I hope you learn something from this article, if you have questions, feel free to post them down below. Cheers.
 
Hello,

when i try to : sudo systemctl start qbittorrent-nox.service

I have this error :

Job for qbittorrent-nox.service failed because a fatal signal was delivered causing the control process to dump core.
See "systemctl status qbittorrent-nox.service" and "journalctl -xeu qbittorrent-nox.service" for details.


Then, try again and :

× qbittorrent-nox.service - qBittorrent NoX Terminal Application
Loaded: loaded (/etc/systemd/system/qbittorrent-nox.service; disabled; preset: enabled)
Active: failed (Result: core-dump) since Sat 2024-04-27 14:27:49 UTC; 3min 35s ago
Process: 1065 ExecStart=/usr/bin/qbittorrent-nox -d --webui-port=8080 (code=dumped, signal=ABRT)
CPU: 27ms

avril 27 14:27:49 ubuntu systemd[1]: qbittorrent-nox.service: Scheduled restart job, restart counter is at 5.
avril 27 14:27:49 ubuntu systemd[1]: qbittorrent-nox.service: Start request repeated too quickly.
avril 27 14:27:49 ubuntu systemd[1]: qbittorrent-nox.service: Failed with result 'core-dump'.
avril 27 14:27:49 ubuntu systemd[1]: Failed to start qbittorrent-nox.service - qBittorrent NoX Terminal Application.
avril 27 14:31:25 ubuntu systemd[1]: /etc/systemd/system/qbittorrent-nox.service:1: Assignment outside of section. Ignoring.


Thanks
 
Last edited:
Hi @tanjohnson,

It looks like there might be an issue with your qbittorrent-nox.service file configuration or a problem with the qbittorrent-nox application itself. Here are a few steps you can follow to troubleshoot and hopefully resolve the issue:
  1. Check the Service File: The error message Assignment outside of section. Ignoring suggests there might be a formatting error in your systemd service file. Make sure that every directive is correctly placed within a section (like [Unit], [Service], or [Install]). Verify that there are no stray characters or incorrect assignments outside these sections.
  2. Review the ExecStart Command: Make sure that the path to the qbittorrent-nox binary is correct in the ExecStart line and that all options are properly formatted. Here's a typical example:
    Bash:
    ExecStart=/usr/bin/qbittorrent-nox -d --webui-port=8080
    Ensure there's no unnecessary whitespace or characters.
  3. Check for Dependency Issues: Since the service is crashing with a core dump, there could be a problem with dependencies or the binary itself. Try running qbittorrent-nox directly from the command line with the same options specified in ExecStart to see if it provides any more detailed error messages.
  4. Examine Logs: Use the commands systemctl status qbittorrent-nox.service and journalctl -xeu qbittorrent-nox.service to look for any detailed error messages that could give more insight into what's causing the core dump. Pay attention to any errors related to libraries or missing files.
  5. Permissions: Ensure that the qbittorrent-nox user has the necessary permissions to access the directories and files it needs. Sometimes, permission issues can cause applications to fail.
  6. Reinstall qBittorrent-NoX: If all else fails, consider reinstalling qbittorrent-nox to ensure that all components are correctly installed:
    Bash:
    sudo apt-get remove --purge qbittorrent-nox
    sudo apt-get install qbittorrent-nox
Let me know how it goes—I'm keen to hear if it's resolved.
 
Hello, I followed the installation but when I execute the newspaper HTTP: 192. ***. **. **. 8080 He does not want to connect me as a login: admin MDP: Adminadmin thank you
 
To help troubleshoot the issue you’re encountering with qBittorrent-NoX, please follow these steps:
  1. Check Network Settings: Ensure your server’s IP address and port are correct. Try http://<your-server-ip>:8080.
  2. Verify Service Status: Run sudo systemctl status qbittorrent-nox.service to check if the service is active.
  3. Restart Service: If inactive, restart it using sudo systemctl restart qbittorrent-nox.service.
  4. Check Logs: Look for any errors using journalctl -xeu qbittorrent-nox.service.
If the issue persists, please provide more details or error messages.
 
Hello good it works however I can't recover my torrents fillezilla indicates permission denied see screenshot
permission denied.png
 
To resolve the permission issue you're facing in FileZilla, try the following steps:
  1. Change Permissions: SSH into your server and run:
    Bash:
    sudo chmod -R 775 /home/qbittorrent-nox/Downloads
  2. Change Ownership: Ensure the correct user owns the directory:
    Bash:
    sudo chown -R qbittorrent-nox:qbittorrent-nox /home/qbittorrent-nox/Downloads
  3. Restart qBittorrent-NoX: Restart the service to apply changes:
    Bash:
    sudo systemctl restart qbittorrent-nox.service
Try these steps and let me know if you encounter further issues.
 
Hello, after making the changes based on your advice, it’s working. Thank you for your help.

Sincerely
 
Great to hear it’s working now! If you have any more questions or need further assistance, feel free to reach out.
 
Good morning
Filezilla does not keep my permits in memory oblige to redo the manipulation that you gave me to see link
THANKS

 
I see, so it seems like the permission changes are not persisting. You can easily make the changes permanent by modifying the fstab file or using a script. Here’s a simple approach:
  1. Add to fstab:
    Bash:
    sudo nano /etc/fstab
    Add this line (adjust the path if needed):
    Bash:
    /home/qbittorrent-nox/Downloads /home/qbittorrent-nox/Downloads none defaults 0 0
  2. Create a script:
    Bash:
    sudo nano /usr/local/bin/fix_downloads_permissions.sh
    Add this:
    Bash:
    #!/bin/bash
    sudo chmod -R 775 /home/qbittorrent-nox/Downloads
    sudo chown -R qbittorrent-nox:qbittorrent-nox /home/qbittorrent-nox/Downloads
    Make it executable:
    Bash:
    sudo chmod +x /usr/local/bin/fix_downloads_permissions.sh
    Add to crontab:
    Bash:
    sudo crontab -e
    Add this line:
    Bash:
    @reboot /usr/local/bin/fix_downloads_permissions.sh
This should keep your permissions consistent. Let me know if you need further assistance.
 
Hello thank you I will try this and I will come back to you have a good day
 
This worked perfectly....except

If I just start the application from a command prompt under my user name it picks up torrents fine from my Torrents folder, ownership of this folder is my user/group with rights 770.

If I start the service using qbittorrent-nox it rejects any torrents in my watched folder, I added qbittorrent-nox to my user group and even tried modifying the watched folder to be owned by qbittorrent-nox user / group with no difference.
 
Error
Job for qbittorrent-nox.service failed because the control process exited with error code.
See "systemctl status qbittorrent-nox.service" and "journalctl -xeu qbittorrent-nox.service" for details.

Subject: A start job for unit qbittorrent-nox.service has failed
Defined-By: systemd
Support: http://www.ubuntu.com/support
A start job for unit qbittorrent-nox.service has finished with a failure
The job identifier is 3773

systemctl status qbittorrent-nox.service
× qbittorrent-nox.service - qBittorrent Command Line Client
Loaded: loaded (/etc/systemd/system/qbittorrent-nox.service; enabled> Active: failed (Result: exit-code) since Thu 2024-08-29 19:37:52 UTC> Process: 3057 ExecStart=/usr/bin/qbittorrent-nox -d --webui-port=8080> CPU: 10ms
 
You shouldn't use -d in ExecStart. The systemd service is the daemon here, so you shouldn't run qbittorrent-nox in daemon mode.

If you use -d, the systemd service will always be dead/inactive, and stopping the service won't actually stop the qBittorrent daemon (you need to use something like sudo start-stop-daemon --stop --name qbittorrent-nox to stop it).

Without -d it works as intended (stopping the service will stop the daemon, if there are error messages you can see them in the systemd service's logs, since it won't exit immediately after start, etc.). The qBittorrent wiki also says to run it without -d ("The -d flag should not be used in this setup"):
https://github.com/qbittorrent/qBit...ystemd-service-set-up,-Ubuntu-15.04-or-newer)
 
Last edited:
 Short URL:
Back
Top