Difference between revisions of "SABnzbd"

From ArchWiki
Jump to: navigation, search
m (Running as user without systemd user instance: Fix template.)
(Starting SABnzbd as user: Mention config file)
 
(48 intermediate revisions by 10 users not shown)
Line 1: Line 1:
[[Category:Internet Applications]]
+
[[Category:Internet applications]]
SABnzbd is an Open Source Binary Newsreader written in Python.
+
SABnzbd is an open-source binary newsreader written in Python.
  
''It's totally free, incredibly 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.''
+
From [http://sabnzbd.org/ sabnzbd.org]:
 +
:It's totally free, incredibly 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.
  
 
== Installation ==
 
== Installation ==
Install {{AUR|sabnzbd}} from the [[Arch User Repository]].
 
  
== Configuration ==
+
Install the {{AUR|sabnzbd}} or {{AUR|sabnzbd-git}} package.
SABnzbd is able to run globally (settings apply to all users) and locally (per user settings). The way of setting up SABnzbd depends on the way it is intended to be used. A local configuration may prove more useful on a desktop system than on a system that is used by several people simultaneously.
+
  
=== Global configuration ===
+
== Usage  ==
SABnzbd is controlled by the ''sabnzbd'' [[daemons|daemon]].
+
SABnzbd is able to run globally (settings apply to all users) and locally (per user settings). The way of setting up SABnzbd depends on the way it is intended to be used. A local configuration may prove more useful on a desktop system when used by several people simultaneously.
  
=== Local configuration ===
+
If SABnzbd is started for the first time, the webinterface will present a setup wizard for configuring UI language and a single news server.
{{Out of date}}
+
SABnzbd does not need to be run globally as a daemon and can rather work per user. The usual method to configure SABnzbd globally is because the listed files and folders in the default configuration file point to directories owned by sabnzbd (the {{ic|/opt/sabnzbd}} directory).
+
  
A less used (but perhaps more sensible) method is to make SABnzbd work with files and directories owned by a normal user. Running SABnzbd as a normal user has the benefits of:
+
Further configuration can be done from within the UI (adding additional servers, setting folder paths etc.) or by editing {{ic|sabnzbd.ini}}.
  
* A single directory {{ic|~/.sabnzbd.ini}} (or any other directory under {{ic|/home/username}}) that will contain all the SABnzbd configuration files.
+
=== Using systemd ===
* Easier to avoid unforeseen read/write permission errors.
+
Both {{AUR|sabnzbd}} and {{AUR|sabnzbd-git}} provide a [[systemd]] service, create the [[user]] and [[group]] {{ic|sabnzbd}}, and use {{ic|/opt/sabnzbd/sabnzbd.ini}} for configuration.
  
In this case, we will use {{ic|~/.sabnzbd.ini/sabnzbd.ini}} and not start sabnzbd.service as a daemon for the whole system and all users.
+
Add users to the {{ic|sabnzbd}} [[group]] to allow access to SABnzbd files.
We will NOT use the {{ic|/usr/lib/systemd/system/sabnzbd.service}} which is intended to start the sabnzbd.service for all users.
+
If you already enabled it, just disable it first:
+
{{bc| # systemctl disable sabnzbd.service}}
+
  
If you used to start SABnzbd inside your {{ic|~/.xinitrc}}, comment or delete the line
+
=== Starting SABnzbd as user ===
{{bc|sabnzbd -d}}
+
Running {{ic|$ sabnzbd}}, without any further configuration, results in two processes owned by the launching user: {{ic|/usr/bin/sabnzbd}} and {{ic|/opt/sabnzbd/SABnzbd.py -f /home/'''user'''/.sabnzbd.ini}}.
  
Then, edit a new file /etc/systemd/user/sabnzbd.service
+
Append the {{ic|-d}} parameter to start SABnzbd as [[daemon]]:
{{hc|/etc/systemd/user/sabnzbd.service|
+
[Unit]
+
Description = SABnzbd binary newsreader
+
  
[Service]
+
$ sabnzbd -d
EnvironmentFile = /etc/conf.d/sabnzbd_systemd
+
ExecStart = /bin/sh/ -c "python2 ${SABNZBD_DIR}/SABnzbd.py ${SABNZBD_ARGS} --pid /tmp"
+
ExecStop = /usr/bin/curl -f "${SABNZBD_PROTOCOL}://${SABNZBD_USPW}${SABNZBD_IP}:${SABNZBD_PORT}/sabnzbd/api?mode=shutdown&apikey=${SABNZBD_KEY}"
+
Type = forking
+
PIDFile = /tmp/sabnzbd-8080.pid
+
  
[Install]
+
Use {{ic|~/sabnzbd.ini/sabnzbd.ini}} for configuration.
WantedBy = default.target
+
}}
+
  
Then, change this line in /etc/conf.d/sabnzbd_systemd
+
=== Stopping SABnzbd ===
{{hc|/etc/conf.d/sabnzbd_systemd|
+
SABnzbd can be easily shutdown in the web-interface or the [[systemd]] {{ic|sabnzbd}} unit.
SABNZBD_ARGS=-f ${HOME}/.sabnzbd.ini -s ${SABNZBD_IP}:${SABNZBD_PORT} -d
+
}}
+
  
Then, add this line if not already to [[xinitrc|.xinitrc]]
+
It is also possible to shutdown a running (remote) SABnzbd client using the provided API:
{{hc|~/.xinitrc|
+
#run systemd as user intsance
+
systemd --user &
+
}}
+
  
Now, enable and start sabnzbd.service as per user
+
  $ curl "http(s)://host:port/sabnzbd/api?mode=shutdown&apikey=API-key"
  $ systemctl --user enable sabnzbd
+
$ systemctl --user start sabnzbd
+
  
Check the SABnzbd status and see if sabnzbd.service is correctly enabled and started
+
=== Accessing the web-interface ===
{{bc|$ systemctl --user status sabnzbd}}
+
  
==== Running as user without systemd user instance ====
+
{{Tip|
 
+
*SABnzbd can only be accessed on the running computer. Change {{ic|1=host = 127.0.0.1}} in {{ic|/opt/sabnzbd/sabnzbd.ini}} to {{ic|1=host = 0.0.0.0}} (or the host IP-address) to allow access from another computer.
If you dont like the local configuration option, you may run sabnzbd as a user by doing this instead:
+
*SABnzbd listens on port {{ic|8080}}. Change {{ic|1=port = 8080}} in {{ic|sabnzbd.ini}} to the preferred port.
{{bc|$ cp /usr/lib/systemd/system/sabnzbd.service /etc/systemd/system/sabnzbd.service}}
+
}}
 
+
Then edit :
+
{{hc|/etc/systemd/system/sabnzbd.service|2=
+
[Unit]
+
Description = SABnzbd binary newsreader
+
 
+
[Service]
+
ExecStart = /bin/sh/ -c "python2 /opt/sabnzbd/SABnzbd.py -l0 -f /home/m/.sabnzbd/sabnzbd.ini -d --pid /tmp"
+
Type = forking
+
PIDFile = /tmp/sabnzbd-8080.pid
+
User = desired_user_name
+
Group = desired_group_name
+
[Install]
+
WantedBy = default.target
+
 
+
=== Initial setup ===
+
 
+
It is recommended to run through the initial setup wizard after starting the service by going to 127.0.0.1:8080 in your favourite web-browser. This initial setup should be enough to get SABnzbd working correctly for regular users. Users wanting HTTPS access are recommended to read further on in [https://wiki.archlinux.org/index.php/SABnzbd#enabling_https enabling https].
+
 
+
{{Note|The default of localhost will only allow access from the computer running sabnzbd. Change to 0.0.0.0 in sabnzbd.ini for access at the initial setup  from other pcs}}
+
 
+
=== enabling https ===
+
enabling https is a threefold process.
+
 
+
For global configuration:
+
 
+
* edit {{ic|/opt/sabnzbd/sabnzbd.ini}} and set '''enable_https''' to {{ic|1}}
+
 
+
* copy {{ic|/usr/lib/systemd/system/sabnzbd.service}} to {{ic|/etc/systemd/system/}} then edit it and set '''PIDFile''' to {{ic|/run/sabnzbd/sabnzbd-9090.pid}}
+
 
+
* reload systemd with {{ic|# systemctl --system daemon-reload}}
+
 
+
For local configuration:
+
 
+
* edit {{ic|/opt/sabnzbd/sabnzbd.ini}} and set '''enable_https''' to {{ic|1}}
+
 
+
* then edit {{ic|/etc/systemd/user/sabnzbd.service}} and set '''PIDFile''' to {{ic|/tmp/sabnzbd-9090.pid}}
+
 
+
* reload systemd with {{ic|$ systemctl --user daemon-reload}}
+
 
+
You should now be able to start sabnzbd with SSL support.
+
 
+
=== using a custom port ===
+
Using a custom port is similar to using https.
+
 
+
For global configuration:
+
 
+
* edit {{ic|/opt/sabnzbd/sabnzbd.ini}} and set '''port''' in '''[misc]''' section to the port you wish to use.
+
 
+
* copy {{ic|/usr/lib/systemd/system/sabnzbd.service}} to {{ic|/etc/systemd/system/}} then edit it and set '''PIDFile''' to {{ic|/run/sabnzbd/sabnzbd-''yourport''.pid}} where ''yourport'' is the same as set in the first step.
+
 
+
* edit {{ic|/etc/conf.d/sabnzbd_systemd}} and set '''SABNZBD_PORT''' to the port set in the first step.
+
 
+
* reload systemd with {{ic|# systemctl --system daemon-reload}}
+
 
+
For local configuration:
+
 
+
* edit {{ic|/opt/sabnzbd/sabnzbd.ini}} and set '''port''' in '''[misc]''' section to the port you wish to use.
+
 
+
* then edit {{ic|/etc/systemd/user/sabnzbd.service}} and set '''PIDFile''' to {{ic|/tmp/sabnzbd-''yourport''.pid}} where ''yourport'' is the same as set in the first step.
+
 
+
* edit {{ic|/etc/conf.d/sabnzbd_systemd}} and set '''SABNZBD_PORT''' to the port set in the first step.
+
 
+
* reload systemd with {{ic|$ systemctl --user daemon-reload}}
+
  
You should now be able to start sabnzbd with a custom port.
+
After starting SABnzbd, access the web-interface by browsing to http://127.0.0.1:8080.
  
== Troubleshooting ==
+
== Tips and tricks ==
=== systemd times out when starting SABnzbd with https enabled ===
+
When faced with the following:
+
[user@host ~]$ sudo systemctl start sabnzbd.service
+
Job failed. See system journal and 'systemctl status' for details.
+
+
[user@host ~]$ sudo systemctl status sabnzbd.service
+
sabnzbd.service - SABnzbd binary newsreader
+
  Loaded: loaded (/usr/lib/systemd/system/sabnzbd.service; disabled)
+
  Active: failed (Result: timeout) since Tue, 25 Sep 2012 20:10:47 +0200; 9s ago
+
  CGroup: name=systemd:/system/sabnzbd.service
+
  
It's likely that you've forgotten to edit {{ic|sabnzbd.service}} to reflect the proper PID file as mentioned in [https://wiki.archlinux.org/index.php/SABnzbd#enabling_https enabling https].
+
=== Enable SSL-support for news servers ===
 +
Install {{pkg|python2-pyopenssl}} to enable SSL support for news servers.
  
=== SABnzbd redirects to localhost on remote access when only https is enabled ===
+
The usage of SSL connections is recommend (if supported by the news server):
This strange issue seems to appear, when you have no https port configured (so it will use the configured http port for http) and your {{ic|/etc/conf.d/sabnzbd[_systemd]}} says
+
*Transmission of data from the server to the NNTP client is encrypted, protecting your privacy.
SABNZBD_PROTOCOL=https
+
*Decreasing the chance of throttling NNTP traffic by the ISP.
instead of:
+
SABNZBD_PROTOCOL=http
+
  
You might need to restart your clientside browser.
+
== See also ==
  
== External Links ==
 
 
* [http://sabnzbd.org/ SABnzbd homepage]
 
* [http://sabnzbd.org/ SABnzbd homepage]
 
* [http://wiki.sabnzbd.org/ SABnzbd wiki]
 
* [http://wiki.sabnzbd.org/ SABnzbd wiki]

Latest revision as of 22:28, 22 December 2016

SABnzbd is an open-source binary newsreader written in Python.

From sabnzbd.org:

It's totally free, incredibly 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.

Installation

Install the sabnzbdAUR or sabnzbd-gitAUR package.

Usage

SABnzbd is able to run globally (settings apply to all users) and locally (per user settings). The way of setting up SABnzbd depends on the way it is intended to be used. A local configuration may prove more useful on a desktop system when used by several people simultaneously.

If SABnzbd is started for the first time, the webinterface will present a setup wizard for configuring UI language and a single news server.

Further configuration can be done from within the UI (adding additional servers, setting folder paths etc.) or by editing sabnzbd.ini.

Using systemd

Both sabnzbdAUR and sabnzbd-gitAUR provide a systemd service, create the user and group sabnzbd, and use /opt/sabnzbd/sabnzbd.ini for configuration.

Add users to the sabnzbd group to allow access to SABnzbd files.

Starting SABnzbd as user

Running $ sabnzbd, without any further configuration, results in two processes owned by the launching user: /usr/bin/sabnzbd and /opt/sabnzbd/SABnzbd.py -f /home/user/.sabnzbd.ini.

Append the -d parameter to start SABnzbd as daemon:

$ sabnzbd -d

Use ~/sabnzbd.ini/sabnzbd.ini for configuration.

Stopping SABnzbd

SABnzbd can be easily shutdown in the web-interface or the systemd sabnzbd unit.

It is also possible to shutdown a running (remote) SABnzbd client using the provided API:

$ curl "http(s)://host:port/sabnzbd/api?mode=shutdown&apikey=API-key"

Accessing the web-interface

Tip:
  • SABnzbd can only be accessed on the running computer. Change host = 127.0.0.1 in /opt/sabnzbd/sabnzbd.ini to host = 0.0.0.0 (or the host IP-address) to allow access from another computer.
  • SABnzbd listens on port 8080. Change port = 8080 in sabnzbd.ini to the preferred port.

After starting SABnzbd, access the web-interface by browsing to http://127.0.0.1:8080.

Tips and tricks

Enable SSL-support for news servers

Install python2-pyopenssl to enable SSL support for news servers.

The usage of SSL connections is recommend (if supported by the news server):

  • Transmission of data from the server to the NNTP client is encrypted, protecting your privacy.
  • Decreasing the chance of throttling NNTP traffic by the ISP.

See also