SABnzbd

Wiki

User Manual FAQ Contact Introduction Installation Configuration Scripts Advanced Topics Extensions for SABnzbd

Incorrect or missing information? Install from source

Guides for Windows and macOS

Specific guides to install from source are available for:


Linux platforms

Source

Get a local copy (clone) of the SABnzbd source from github or via git with:
git clone -b master https://github.com/sabnzbd/sabnzbd.git 

Python

SABnzbd requires Python 3.10 or higher.
Check python version with python3 --version.

Must-haves

Python comes included with a Python Packages Manager (pip) on many platforms. If not, install it using the package manager for your system; typical package names are python3-pip or python-pip (try in that order).

Create a Virtual Environment (venv)

The best practise is using pip in a virtual environment. Doing so keeps all modules used by a project in one place and avoids the risk of breaking your system-wide Python install.

To initialize a fresh new virtual environment in the sabnzbd_venv directory, run the following command. This step needs to be done only once:
python3 -m venv sabnzbd_venv
Every time you want to work in the virtual environment, you need to activate it. If you already created the venv before, this is where you start:
source sabnzbd_venv/bin/activate
Any pip commands run inside the virtual environment only affect the venv, not your system-wide Python install.

Installing and updating modules required by SABnzbd

Upgrade the python package manager and build modules:

python3 -m pip install --upgrade pip wheel
Install the runtime requirements using the requirements.txt from the SABnzbd source directory:
python3 -m pip install -r requirements.txt
If you plan to do development work, you might also need the test and build requirements:
python3 -m pip install -r builder/requirements.txt
python3 -m pip install -r tests/requirements.txt
On non-x86 Linux platforms you may need to install some of the following (exact package names vary per distribution, so install the ones your package manager provides):
python3-dev python3-setuptools python3-pip libffi-dev libssl-dev openssl-dev musl-dev cargo

If the sabctools (formerly called sabyenc) installation fails, read here.

Start SABnzbd by running:

./SABnzbd.py

Multi-language support

To enable multi-language support (and fix mistakes in English texts) you will need to run this command once before starting SABnzbd for the first time and after each major update:

python3 tools/make_mo.py

Deactivating the Virtual Environment

When you finish your work, just deactivate the virtual environment:
deactivate
This will store the venv with the currently installed modules, ready to be activated again.

Must-have utilities

unrar

We recommend release 5.5 or higher from your package manager or the official website.

par2

Available through package managers as par2, par2cmdline or via GitHub.
Optimized versions of par2 can also be installed, read more here.

Optional utilities and features

7zip

7zip can be obtained via package managers, the command that SABnzbd looks for is 7za or 7z.
The package is called 7zip or can be obtained from the official website.
p7zip was a modification of 7zip to provide Linux support which has been abandoned.

nice

To adjust the CPU priority of external tools that SABnzbd runs (par, unrar). Part of coreutils, installed by default on most Linux systems.

ionice

To adjust the disk priority of external tools that SABnzbd runs (par, unrar). Part of util-linux, installed by default on most Linux systems.

Desktop notifications

Notify2 provides desktop pop-up notifications. Available through package managers as python3-notify2.

Tray icon

SABnzbd includes support for multiple tray icon backends: AppIndicator, Xapp, and the older Gtk.StatusIcon. The code tries them in that order, so should you. The backends are available through package managers under a variety of names, including gir1.2-ayatanaappindicator3-0.1, libappindicator or libayatana-appindicator for AppIndicator, gir1.2-xapp-1.0, libxapps-gir or python3-xapp for Xapp, and python3-gi for the venerable StatusIcon. Some desktop environment may require an extension such as gnome-shell-extension-appindicator to display tray icons.

Automatic service discovery

Automatic discovery of the SABnzbd service is supported via Avahi's DNS-SD libary ("DNS-based Service Discovery", compatible with Apple's "Bonjour" and similar Zeroconf implementations), as well as via SSDP ("Simple Service Discovery Protocol"). When enabled, SABnzbd will announce itself on the local network. Bonjour/Zeroconf support requires Avahi and a compatibility library (libdns_sd); the latter is available through package managers as libavahi-compat-libdnssd1, avahi-compat-libdns_sd or similar.

Power management

System power management is possible via dbus-python, enabling funtionality such as shutting down the system on queue finish. Available through package managers as python3-dbus.