Install on Linux
njMule for Linux comes for x64 and arm64 processors as deb and rpm packages and as a .tar.xz
archive, each with the desktop app and the command line. A fourth download, the static archive, holds
the headless engine alone for any x64 Linux.
Download
| File (njMule 0.3.1) | What it is |
|---|---|
njmule_0.3.1_amd64.deb | Debian, Ubuntu and derivatives, x64 |
njmule_0.3.1_arm64.deb | Debian, Ubuntu and derivatives, arm64 |
njmule-0.3.1-1.x86_64.rpm | Fedora, RHEL, openSUSE and derivatives, x64 |
njmule-0.3.1-1.aarch64.rpm | Fedora, RHEL, openSUSE and derivatives, arm64 |
njmule-0.3.1-linux-x64.tar.xz | Archive, x64 |
njmule-0.3.1-linux-arm64.tar.xz | Archive, arm64 |
njmule-0.3.1-linux-x64-static.tar.xz | Static headless archive, x64 (no system libraries needed) |
The archives run from any folder on any distribution; the static one holds the headless engine alone, for any x64 Linux whatever its C library. Older versions are on the GitHub releases page. You can check the download before you install it. The desktop app needs WebKitGTK 4.1 and GTK 3; the packages bring them in (see Requirements).
With the GitHub CLI you can also fetch the files of the latest release from a terminal, for example the Debian package of a 64-bit PC with its checksums:
gh release download --repo njMule/njMule --pattern '*_amd64.deb' --pattern 'SHA256SUMS*'
Install the package
- Debian, Ubuntu
- Fedora, RHEL
sudo apt install ./njmule_*_amd64.deb # on arm64: ./njmule_*_arm64.deb
sudo dnf install ./njmule-*.x86_64.rpm # on arm64: ./njmule-*.aarch64.rpm
The package installs:
njmule-gui, the desktop app, andnjmule, the engine and command line, in/usr/bin; both live in/usr/lib/njmule, where the desktop app's window starts the engine beside it;- a desktop entry, AppStream metadata and icons, so that njMule appears in your applications menu;
- a systemd user unit,
njmule.service, to run the engine headless (see Run it as a service).
Start njMule from your applications menu, or run njmule-gui. The desktop entry starts it under the
name njMule, which process lists then show, and your desktop matches its window to its menu entry
and icon. At the first start, a wizard helps you set it up: see
First start.
The desktop entry also declares njMule as a program for ed2k:// links. To make it the one that
opens them, turn on Open ed2k links with njMule (from browsers and other programs) in
Options → General (off by default; see eD2K links).
Your settings and downloads stay in your home folder: ~/.config/njmule, ~/.local/share/njmule,
~/.local/state/njmule and ~/.cache/njmule, or where the XDG_* variables point. Completed
downloads go to ~/Downloads/njMule, or the download folder of XDG_DOWNLOAD_DIR. See
Data locations.
Run from the archive
The .tar.xz archive holds the same programs and runs from any folder:
mkdir -p ~/Apps
tar -C ~/Apps -xJf njmule-<version>-linux-x64.tar.xz
~/Apps/njmule-<version>-linux-x64/njmule-gui
Unpack it into a folder you can write to, such as ~/Apps: njMule can then
update itself there. Install WebKitGTK 4.1 and GTK 3 yourself if the desktop app
does not start. The command line is njmule in the same folder.
To keep all of njMule's data beside the programs, on a removable drive for example, put an empty
file named portable.flag next to them: see Portable mode.
Add it to the applications menu
The archive's share/ folder holds the desktop entry, the AppStream metadata and the icon. To list
njMule in your menu, link the programs into ~/.local/bin and install the entry and the icon for
your user:
cd ~/Apps/njmule-<version>-linux-x64
mkdir -p ~/.local/bin ~/.local/share/applications ~/.local/share/icons/hicolor/scalable/apps
ln -sf "$PWD/njmule-gui" ~/.local/bin/njMule
ln -sf "$PWD/njmule" ~/.local/bin/njmule
cp share/njmule-icon.svg ~/.local/share/icons/hicolor/scalable/apps/org.njmule.njMule.svg
sed "s|^Exec=njMule|Exec=$HOME/.local/bin/njMule|" share/org.njmule.njMule.desktop \
> ~/.local/share/applications/org.njmule.njMule.desktop
The entry starts the link named njMule, as the packages do. Both programs find the files of the
archive through their links, so its folder can stay where it is.
The static headless build
Where the executables above do not start, on a distribution with an older C library or one built on
musl such as Alpine, use njmule-<version>-linux-x64-static.tar.xz. It holds a single program,
njmule, linked statically: it needs no library of the system. It has no desktop app: you use it
from the
web interface and the command line.
tar -xJf njmule-<version>-linux-x64-static.tar.xz
cd njmule-<version>-linux-x64-static
./njmule --webui-password --webui-lan # choose the web interface password, for other computers too
./njmule # run the engine; Ctrl+C or njmule --exit stops it
The web interface then answers at http://<address of the computer>:4711/. Leave out --webui-lan
to reach it from that computer only.
The same executable runs inside the Synology package and the x64 Docker image. See Running headless.
Run it as a service
The deb and rpm packages install a systemd user unit that runs the engine headless as your user, never as root, and starts it again if it fails:
systemctl --user enable --now njmule # start now and at each login
loginctl enable-linger # optional: keep it running while you are logged out
journalctl --user -u njmule # its log
The unit and the desktop app use the same configuration, so only one of them runs at a time: the
desktop app starts an engine of its own, which cannot run beside the unit's. Stop the service
before you open the desktop app, and use the web interface to control the
headless engine. Set the web interface password first, with njmule --webui-password.
Everything else is in Linux service.
Firewall
njMule's packages do not change the firewall. If yours blocks incoming connections, open the eD2K
port (4662/TCP) and the client UDP port (4672/UDP), or those you chose, for example with
sudo ufw allow 4662/tcp and sudo ufw allow 4672/udp. See
Ports and firewalls.
Upgrade
- Packages: install the newer package the same way, or let
aptordnfdo it; your settings and downloads stay. njMule tells you when a new version is out, downloads the package and tells you how to install it. - Archives: njMule can download the new archive and replace its files for you, keeping the old ones until the new version has started well; or unpack the new archive in place of the old one.
See Updates.
Uninstall
- Debian, Ubuntu
- Fedora, RHEL
njmule --remove-profile # optional, first: delete your profile, after asking
sudo apt remove njmule
njmule --remove-profile # optional, first: delete your profile, after asking
sudo dnf remove njmule
Removing a package first closes every njMule still running from it, which saves its state. A
package touches no home folder: removing it leaves each user's profile in place, and says where.
njmule --remove-profile deletes the profile of the user who runs it (settings, lists, identity,
unfinished downloads, caches and logs), after asking; stop njMule first. Completed downloads always
stay. For an archive, delete its folder, and the links and menu entry if you made them. See
Uninstall and Remove your profile.