mirror of
https://github.com/nzbget/nzbget.git
synced 2026-04-23 14:26:52 -04:00
539 lines
17 KiB
Plaintext
539 lines
17 KiB
Plaintext
=====================================
|
|
NZBGet ReadMe
|
|
=====================================
|
|
|
|
This is a short documentation. For more information please
|
|
visit NZBGet home page at
|
|
http://nzbget.sourceforge.net
|
|
|
|
Contents
|
|
--------
|
|
1. About NZBGet
|
|
2. Supported OS
|
|
3. Prerequisites on POSIX
|
|
4. Installation on POSIX
|
|
5. Compiling on Windows
|
|
6. Configuration
|
|
7. Usage
|
|
8. Authors
|
|
9. Copyright
|
|
10. Contact
|
|
|
|
=====================================
|
|
1. About NZBGet
|
|
=====================================
|
|
|
|
NZBGet is a binary newsgrabber, which downloads files from usenet
|
|
based on information given in nzb-files. NZBGet can be used in
|
|
standalone and in server/client modes. In standalone mode you
|
|
pass a nzb-file as parameter in command-line, NZBGet downloads
|
|
listed files and then exits.
|
|
|
|
In server/client mode NZBGet runs as server in background.
|
|
Then you use client to send requests to server. The sample requests
|
|
are: download nzb-file, list files in queue, etc.
|
|
|
|
There is also a built-in web-interface. The server has RPC-support
|
|
and can be controlled from third party applications too.
|
|
|
|
Standalone-tool, server and client are all contained in only one
|
|
executable file "nzbget". The mode in which the program works
|
|
depends on command-line parameters passed to the program.
|
|
|
|
=====================================
|
|
2. Supported OS
|
|
=====================================
|
|
|
|
NZBGet is written in C++ and was initialy developed on Linux.
|
|
It was ported to Windows later and tested for compatibility with
|
|
several POSIX-OS'es.
|
|
|
|
It should run at least on:
|
|
- Linux Debian 5.0 on x86;
|
|
- Linux with uClibc on MIPSEL and ARM;
|
|
- OpenBSD 5.0 on x86;
|
|
- Mac OS X 10.7 Lion on x64;
|
|
- Windows XP SP3 on x86 and Windows 7 on x64.
|
|
|
|
Clients and servers running on different OS'es may communicate with
|
|
each other. For example, you can use NZBGet as client on Windows to
|
|
control your NZBGet-server running on Linux.
|
|
|
|
The download-section of NZBGet web-site provides binary files
|
|
for Windows. The binary packages for many routers and NAS devices are
|
|
also available in OPTWARE repository (http://www.nslu2-linux.org),
|
|
but for most POSIX-systems you need to compile the program yourself.
|
|
|
|
If you have downloaded binaries you can just jump to section
|
|
"Configuration".
|
|
|
|
=====================================
|
|
3. Prerequisites on POSIX
|
|
=====================================
|
|
|
|
NZBGet is developed on a linux-system, but it should run on other
|
|
POSIX platforms (see the list of tested platforms above).
|
|
|
|
NZBGet absolutely needs the following libraries:
|
|
|
|
- libstdc++ (usually part of compiler)
|
|
- libxml2 (http://www.xmlsoft.org)
|
|
|
|
And the following libraries are optional:
|
|
|
|
- for curses-output-mode (enabled by default):
|
|
- libcurses (usually part of commercial systems)
|
|
or (better)
|
|
- libncurses (http://invisible-island.net/ncurses)
|
|
|
|
- for par-check and -repair (enabled by default):
|
|
- libpar2 (http://parchive.sourceforge.net)
|
|
- libsigc++ (http://libsigc.sourceforge.net)
|
|
|
|
- for encrypted connections (TLS/SSL):
|
|
- GnuTLS (http://www.gnu.org/software/gnutls)
|
|
or
|
|
- OpenSSL (http://www.openssl.org)
|
|
|
|
- for gzip support in web-server and web-client (enabled by default):
|
|
- zlib (http://www.zlib.net)
|
|
|
|
All these libraries are included in modern Linux distributions and
|
|
should be available as installable packages. Please note that you also
|
|
need the developer packages for these libraries too, they package names
|
|
have often suffix "dev" or "devel". On other systems you may need to
|
|
download the libraries at the given URLs and compile them (see hints below).
|
|
|
|
=====================================
|
|
4. Installation on POSIX
|
|
=====================================
|
|
|
|
Installation from the source distribution archive (nzbget-VERSION.tar.gz):
|
|
|
|
- untar the nzbget-source via
|
|
tar -zxf nzbget-VERSION.tar.gz
|
|
|
|
- change into nzbget-directory via
|
|
cd nzbget-VERSION
|
|
|
|
- configure it via
|
|
./configure
|
|
|
|
(maybe you have to tell configure, where to find some libraries.
|
|
./configure --help is your friend!
|
|
also see "Configure-options" later)
|
|
|
|
- in a case you don't have root access or want to install the program
|
|
in your home directory use the configure parameter --prefix, e. g.:
|
|
|
|
./configure --prefix ~/usr
|
|
|
|
- compile it via
|
|
make
|
|
|
|
- to install system wide become root via:
|
|
su
|
|
|
|
- install it via:
|
|
make install
|
|
|
|
- install configuration files into <prefix>/etc via:
|
|
make install-conf
|
|
|
|
(you can skip this step if you intend to store configuration
|
|
files in a non-standard location)
|
|
|
|
Configure-options
|
|
-----------------
|
|
You may run configure with additional arguments:
|
|
|
|
--disable-curses - to make without curses-support. Use this option
|
|
if you can not use curses/ncurses.
|
|
|
|
--disable-parcheck - to make without parcheck-support. Use this option
|
|
if you can not use libpar2 or libsigc++.
|
|
|
|
--with-tlslib=(GnuTLS, OpenSSL) - to select which TLS/SSL library
|
|
should be used for encrypted server connections.
|
|
|
|
--disable-tls - to make without TLS/SSL support. Use this option if
|
|
you can not neither GnuTLS nor OpenSSL.
|
|
|
|
--disable-gzip - to make without gzip support. Use this option
|
|
if you can not use zlib.
|
|
|
|
--enable-debug - to build in debug-mode, if you want to see and log
|
|
debug-messages.
|
|
|
|
Optional package: par-check
|
|
---------------------------
|
|
NZBGet can check and repair downloaded files for you. For this purpose
|
|
it uses library par2 (libpar2), which needs sigc++ on its part.
|
|
|
|
The libpar2 and libsigc++ (version 2 or later) must be installed on your
|
|
system. On most linux distributions these libraries are available as packages.
|
|
If you do not have these packages you can compile them yourself.
|
|
Following configure-parameters may be usefull:
|
|
|
|
--with-libpar2-includes
|
|
--with-libpar2-libraries
|
|
--with-libsigc-includes
|
|
--with-libsigc-libraries
|
|
|
|
The library libsigc++ must be installed first, since libpar2 requires it.
|
|
|
|
If you use nzbget on a very slow computer like NAS-device, it may be good to
|
|
limit the time allowed for par-repair (option "ParTimeLimit" in nzbget
|
|
configuration file). This feature requires a patched version of libpar2.
|
|
To compile that version download the original source code of libpar2
|
|
(version 0.2) and apply patches "libpar2-0.2-bugfixes.patch" and
|
|
"libpar2-0.2-cancel.patch", provided with nzbget:
|
|
|
|
cd libpar2-0.2
|
|
cp ~/nzbget/libpar2-0.2-*.patch .
|
|
patch < libpar2-0.2-bugfixes.patch
|
|
patch < libpar2-0.2-cancel.patch
|
|
./configure
|
|
make
|
|
make install
|
|
|
|
If you are not able to use libpar2 or libsigc++ or do not want them you can
|
|
make nzbget without support for par-check using option "--disable-parcheck":
|
|
|
|
./configure --disable-parcheck
|
|
|
|
Optional package: curses
|
|
-------------------------
|
|
For curses-outputmode you need ncurses or curses on your system.
|
|
If you do not have one of them you can download and compile ncurses yourself.
|
|
Following configure-parameters may be usefull:
|
|
|
|
--with-libcurses-includes
|
|
--with-libcurses-libraries
|
|
|
|
If you are not able to use curses or ncurses or do not want them you can
|
|
make the program without support for curses using option "--disable-curses":
|
|
|
|
./configure --disable-curses
|
|
|
|
Optional package: TLS
|
|
-------------------------
|
|
To enable encrypted server connections (TLS/SSL) you need to build the program
|
|
with TLS/SSL support. NZBGet can use two libraries: GnuTLS or OpenSSL.
|
|
Configure-script checks which library is installed and use it. If both are
|
|
avialable it gives the precedence to GnuTLS. You may override that with
|
|
the option --with-tlslib=(GnuTLS, OpenSSL). For example to build whith OpenSSL:
|
|
|
|
./configure --with-tlslib=OpenSSL
|
|
|
|
Following configure-parameters may be usefull:
|
|
|
|
--with-libtls-includes
|
|
--with-libtls-libraries
|
|
|
|
--with-openssl-includes
|
|
--with-openssl-libraries
|
|
|
|
If none of these libraries is available you can make the program without
|
|
TLS/SSL support using option "--disable-tls":
|
|
|
|
./configure --disable-tls
|
|
|
|
=====================================
|
|
5. Compiling on Windows
|
|
=====================================
|
|
|
|
NZBGet is developed using MS Visual C++ 2005. The project file and solution
|
|
are provided. If you use MS Visual C++ 2005 Express you need to download
|
|
and install Platform SDK.
|
|
|
|
To compile the program with par-check-support you also need the following
|
|
libraries:
|
|
|
|
- libsigc++ (http://libsigc.sourceforge.net)
|
|
- libpar2 (http://parchive.sourceforge.net)
|
|
|
|
Download these libaries, then use patch-files provided with NZBGet to create
|
|
preconfigured project files and solutions for each library.
|
|
Look at http://gnuwin32.sourceforge.net/packages/patch.htm for info on how
|
|
to use patch-files, if you do not familiar with this technique.
|
|
|
|
To compile the program with TLS/SSL support you also need the library:
|
|
|
|
- GnuTLS (http://www.gnu.org/software/gnutls)
|
|
|
|
Download a precompiled version of GnuTLS from http://josefsson.org/gnutls4win
|
|
and create lib-file as described there in section "Using the GnuTLS DLL from
|
|
your Visual Studio program".
|
|
|
|
After libsigc++ and libpar2 are compiled in static libraries (.lib), the
|
|
library for GnuTLS is created and include- and libraries-paths are configured
|
|
in MS Visual C++ 2005 you should be able to compile NZBGet.
|
|
|
|
=====================================
|
|
6. Configuration
|
|
=====================================
|
|
|
|
NZBGet needs a configuration file.
|
|
|
|
An example configuration file is provided in "nzbget.conf", which
|
|
is installed into "<prefix>/share/nzbget" (where <prefix> depends on
|
|
system configuration and configure options - typically "/usr/local",
|
|
"/usr" or "/opt"). The installer adjusts the file according to your
|
|
system paths. If you have performed the installation step
|
|
"make install-conf" this file is already copied to "<prefix>/etc" and
|
|
NZBGet finds it automatically. If you install the program manually
|
|
from a binary archive you have to copy the file from "<prefix>/share/nzbget"
|
|
to one of the locations listed below.
|
|
|
|
Open the file in a text editor and modify it accodring to your needs.
|
|
|
|
You need to set at least the option "MAINDIR" and one news server in
|
|
configuration file. The file has comments on how to use each option.
|
|
|
|
The program looks for configuration file in following standard
|
|
locations (in this order):
|
|
|
|
On POSIX systems:
|
|
~/.nzbget
|
|
/etc/nzbget.conf
|
|
/usr/etc/nzbget.conf
|
|
/usr/local/etc/nzbget.conf
|
|
/opt/etc/nzbget.conf
|
|
|
|
On Windows:
|
|
<EXE-DIR>\nzbget.conf
|
|
|
|
If you put the configuration file in other place, you can use command-
|
|
line switch "-c <filename>" to point the program to correct location.
|
|
|
|
In special cases you can run program without configuration file using
|
|
switch "-n". You need to use switch "-o" to pass required configuration
|
|
options via command-line.
|
|
|
|
=====================================
|
|
7. Usage
|
|
=====================================
|
|
|
|
NZBGet can be used in either standalone mode which downloads a single file
|
|
or as a server which is able to queue up numerous download requests.
|
|
|
|
TIP for Windows users: NZBGet is controlled via various command line
|
|
parameters. For easier using there is a simple shell script included
|
|
in "nzbget-shell.bat". Start this script from Windows Explorer and you will
|
|
be running a command shell with PATH adjusted to find NZBGet executable.
|
|
Then you can type all commands without full path to nzbget.exe.
|
|
|
|
Standalone mode:
|
|
----------------
|
|
|
|
nzbget <nzb-file>
|
|
|
|
Server mode:
|
|
------------
|
|
|
|
First start the nzbget-server:
|
|
|
|
- in console mode:
|
|
|
|
nzbget -s
|
|
|
|
- or in daemon mode (POSIX only):
|
|
|
|
nzbget -D
|
|
|
|
- or as a service (Windowx only, firstly install the service with command
|
|
"nzbget -install"):
|
|
|
|
net start NZBGet
|
|
|
|
To stop server use:
|
|
|
|
nzbget -Q
|
|
|
|
TIP for POSIX users: with included script "nzbgetd" you can use standard
|
|
commands to control daemon:
|
|
|
|
nzbgetd start
|
|
nzbgetd stop
|
|
etc.
|
|
|
|
When NZBGet is started in console server mode it displays a message that
|
|
it is ready to receive download requests. In daemon mode it doesn't print any
|
|
messages to console since it runs in background.
|
|
|
|
When the server is running it is possible to queue up downloads. This can be
|
|
done either in terminal with "nzbget -A <nzb-file>" or by uploading
|
|
a nzb-file into server's monitor-directory (<MAINDIR>/nzb by default).
|
|
|
|
To check the status of server start client and connect it to server:
|
|
|
|
nzbget -C
|
|
|
|
The client have three different (display) outputmodes, which you can select
|
|
in configuration file (on client computer) or in command line. Try them:
|
|
|
|
nzbget -o outputmode=log -C
|
|
|
|
nzbget -o outputmode=color -C
|
|
|
|
nzbget -o outputmode=curses -C
|
|
|
|
To list files in server's queue:
|
|
|
|
nzbget -L
|
|
|
|
It prints something like:
|
|
|
|
[1] nzbname\filename1.rar (50.00 MB)
|
|
[2] nzbname\filename1.r01 (50.00 MB)
|
|
[3] another-nzb\filename3.r01 (100.00 MB)
|
|
[4] another-nzb\filename3.r02 (100.00 MB)
|
|
|
|
This is the list of individual files listed within nzb-file. To print
|
|
the list of nzb-files (without content) add G-modifier to the list command:
|
|
|
|
[1] nzbname (4.56 GB)
|
|
[2] another-nzb (4.20 GB)
|
|
|
|
The numbers in square braces are ID's of files or groups in queue.
|
|
They can be used in edit-command. For example to move file with
|
|
ID 2 to the top of queue:
|
|
|
|
nzbget -E T 2
|
|
|
|
or to pause files with IDs from 10 to 20:
|
|
|
|
nzbget -E P 10-20
|
|
|
|
or to delete files from queue:
|
|
|
|
nzbget -E D 3 10-15 20-21 16
|
|
|
|
The edit-command has also a group-mode which affects all files from the
|
|
same nzb-file. You need to pass an ID of the group. For example to delete
|
|
the whole group 1:
|
|
|
|
nzbget -E G D 1
|
|
|
|
The switch "o" is useful to override options in configuration files.
|
|
For example:
|
|
|
|
nzbget -o reloadqueue=no -o dupecheck=no -o parcheck=yes -s
|
|
|
|
or:
|
|
|
|
nzbget -o createlog=no -C
|
|
|
|
Running client & server on seperate machines:
|
|
---------------------------------------------
|
|
|
|
Since nzbget communicates via TCP/IP it's possible to have a server running on
|
|
one computer and adding downloads via a client on another computer.
|
|
|
|
Do this by setting the "ControlIP" option in the nzbget.conf file to point to the
|
|
IP of the server (default is localhost which means client and server runs on
|
|
same computer)
|
|
|
|
Security warning
|
|
----------------
|
|
|
|
NZBGet communicates via unsecured socket connections. This makes it vulnerable.
|
|
Although server checks the password passed by client, this password is still
|
|
transmitted in unsecured way. For this reason it is highly recommended
|
|
to configure your Firewall to not expose the port used by NZBGet to WAN.
|
|
|
|
If you need to control server from WAN it is better to connect to server's
|
|
terminal via SSH (POSIX) or remote desktop (Windows) and then run
|
|
nzbget-client-commands in this terminal.
|
|
|
|
Post processing scripts
|
|
-----------------------
|
|
|
|
After the download of nzb-file is completed nzbget can call post-processing
|
|
scripts, defined in configuration file.
|
|
|
|
Example post-processing scripts are provided in directory "ppscripts".
|
|
|
|
To use the scripts copy them into your local directory and set options
|
|
<ScriptDir>, <DefScript> and <ScriptOrder>.
|
|
|
|
For information on writing your own post-processing scripts please
|
|
visit NZBGet web site.
|
|
|
|
Web-interface
|
|
-------------
|
|
|
|
NZBGet has a built-in web-server providing the access to the program
|
|
functions via web-interface.
|
|
|
|
To activate web-interface set the option "WebDir" to the path with
|
|
web-interface files. If you install using "make install-conf" as
|
|
described above the option is set automatically. If you install using
|
|
binary files you should check if the option is set correctly.
|
|
|
|
To access web-interface from your web-browser use the server address
|
|
and port defined in NZBGet configuration file in options "ControlIP" and
|
|
"ControlPort". For example:
|
|
|
|
http://localhost:6789/
|
|
|
|
For login credentials type username and the password defined by
|
|
options "ControlUsername" (default "nzbget") and "ControlPassword"
|
|
(default "tegbzn6789").
|
|
|
|
In a case your browser forget credentials, to prevent typing them each
|
|
time, there is a workaround - use URL in the form:
|
|
|
|
http://localhost:6789/username:password/
|
|
|
|
Please note, that in this case the password is saved in a bookmark or in
|
|
browser history in plain text and is easy to find by persons having
|
|
access to your computer.
|
|
|
|
=====================================
|
|
8. Authors
|
|
=====================================
|
|
|
|
NZBGet is developed and maintained by Andrey Prygunkov
|
|
(hugbug@users.sourceforge.net).
|
|
|
|
The original project was initially created by Sven Henkel
|
|
(sidddy@users.sourceforge.net) in 2004 and later developed by
|
|
Bo Cordes Petersen (placebodk@users.sourceforge.net) until 2005.
|
|
In 2007 the abandoned project was overtaken by Andrey Prygunkov.
|
|
Since then the program has been completely rewritten.
|
|
|
|
=====================================
|
|
9. Copyright
|
|
=====================================
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
The complete content of license is provided in file COPYING.
|
|
|
|
Additional exemption: compiling, linking, and/or using OpenSSL is allowed.
|
|
|
|
Binary distribution for Windows contains code from the following libraries:
|
|
|
|
- libpar2 (http://parchive.sourceforge.net)
|
|
- libsigc++ (http://libsigc.sourceforge.net)
|
|
- GnuTLS (http://www.gnu.org/software/gnutls)
|
|
|
|
libpar2 is distributed under GPL; libsigc++ and GnuTLS - under LGPL.
|
|
|
|
=====================================
|
|
10. Contact
|
|
=====================================
|
|
|
|
If you encounter any problem, feel free to use the forum
|
|
|
|
nzbget.sourceforge.net/forum
|
|
|
|
or contact me at
|
|
|
|
hugbug@users.sourceforge.net
|