/sabnzbd

SABnzbd - The automated Usenet download tool

Primary LanguagePythonOtherNOASSERTION

SABnzbd - The automated Usenet download tool

License Join our Discord

SABnzbd is an Open Source Binary Newsreader written in Python.

It's totally free, easy to use, and works practically everywhere. SABnzbd makes Usenet as simple and streamlined as possible by automating everything we can. All you have to do is add an .nzb. SABnzbd takes over from there, where it will be automatically downloaded, verified, repaired, extracted and filed away with zero human interaction. SABnzbd offers an easy setup wizard and has self-analysis tools to verify your setup.

If you want to know more you can head over to our website: https://sabnzbd.org.

Resolving Dependencies

SABnzbd has a few dependencies you'll need before you can get running. If you've previously run SABnzbd from one of the various Linux packages, then you likely already have all the needed dependencies. If not, here's what you're looking for:

  • python (Python 3.8 and above, often called python3)
  • Python modules listed in requirements.txt. Install with python3 -m pip install -r requirements.txt -U
  • par2 (Multi-threaded par2 installation guide can be found here)
  • unrar (make sure you get the "official" non-free version of unrar)

Optional:

  • See requirements.txt

Your package manager should supply these. If not, we've got links in our installation guide.

Running SABnzbd from source

Once you've sorted out all the dependencies, simply run:

python3 -OO SABnzbd.py

Or, if you want to run in the background:

python3 -OO SABnzbd.py -d -f /path/to/sabnzbd.ini

If you want multi-language support, run:

python3 tools/make_mo.py

Our many other command line options are explained in depth here.

About Our Repo

The workflow we use, is a simplified form of "GitFlow". Basically:

  • master contains only stable releases (which have been merged to master) and is intended for end-users.
  • develop is the target for integration and is not intended for end-users.
  • 1.1.x is a release and maintenance branch for 1.1.x (1.1.0 -> 1.1.1 -> 1.1.2) and is not intended for end-users.
  • feature/my_feature is a temporary feature branch based on develop.
  • bugfix/my_bugfix is an optional temporary branch for bugfix(es) based on develop.

Conditions:

  • Merging of a stable release into master will be simple: the release branch is always right.
  • master is not merged back to develop.
  • develop is not re-based on master.
  • Release branches branch from develop only.
  • Bugfixes created specifically for a release branch are done there (because they are specific, they're not cherry-picked to develop).
  • Bugfixes done on develop may be cherry-picked to a release branch.
  • We will not release a 1.0.2 if a 1.1.0 has already been released.