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_venvEvery 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/activateAny
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 wheelInstall the runtime requirements using the requirements.txt from the SABnzbd source directory:
python3 -m pip install -r requirements.txtIf 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.txtOn 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:deactivateThis 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.