NZBGet
Usenet downloader.
Ansible Role: nzbget
You can copy your existing configuration to nzbget_config
directory
adjusting for paths.
The UID/GID should be set to a user/group that has access to your media. All media clients should run under the same user to run correctly.
Your downloader will report the download path mapped in the downloader service. You need to map this exact path in Radarr for it to be able to post-process downloads properly.
# Nzbget
Nzbget installation from public release binary.
## Requirements
No additional requirements.
## Role Variables
Settings have been throughly documented for usage.
[defaults/main.yml](https://github.com/r-pufky/ansible_nzbget/blob/main/defaults/main/main.yml).
### Ports
All ports and protocols have been defined for the role.
Hosts should only define firewall rules for ports they need.
[defaults/ports.yml](https://github.com/r-pufky/ansible_nzbget/blob/main/defaults/main/ports.yml).
## Dependencies
N/A
## Example Playbook
host_vars/nzbget.example.com/vars/nzbget.yml
``` yaml
nzbget_main_dir: '/data/nzbget'
nzbget_news_servers:
- id: 1
active: 'yes'
name: ''
level: 0
optional: 'no'
group: 0
srv_host: 'my.newsserver.com'
srv_port: 119
username: '{{ vault_nzbget_news_user }}'
password: '{{ vault_nzbget_news_pass }}'
join_group: 'no'
encryption: 'no'
cipher: ''
connections: 4
retention: 0
ip_version: 'auto'
notes: ''
nzbget_control_username: '{{ vault_nzbget_user }}'
nzbget_control_password: '{{ vault_nzbget_pass }}'
```
site.yml
``` yaml
- name: 'nzbget server'
hosts: 'nzbget.example.com'
become: true
roles:
- 'r_pufky.nzbget'
```
## Issues
Create a bug and provide as much information as possible.
Associate pull requests with a submitted bug.
## License
[AGPL-3.0 License](https://github.com/r-pufky/ansible_nzbget/blob/main/LICENSE)
## Author Information
https://keybase.io/rpufky
None
Role Details: Updated: 2022-10-09 galaxy source service docs
Ports
---
###############################################################################
# Ports Configuration
###############################################################################
# Ports should be managed externally via an OS role.
#
# Reference:
# * https://docs.ansible.com/ansible/latest/collections/community/general/ufw_module.html
ports:
- {proto: 'tcp', from_ip: 'any', to_port: 6789, direction: 'in', comment: 'nzbget http'}
- {proto: 'tcp', from_ip: 'any', to_port: 6791, direction: 'in', comment: 'nzbget https'}
Defaults
---
###############################################################################
# nzbget Role Configuration
###############################################################################
# User that nzbget will run under. Assumes externally managed.
nzbget_user: 'media'
nzbget_group: 'media'
# Create 'media' user if not detected? See: vars/main.yml.
nzbget_create_user: false
# Installation directory
nzbget_dir: '/etc/nzbget'
###############################################################################
# nzbget nzbget.conf configuration
###############################################################################
# nzbget.conf settings
nzbget_main_dir: '~/downloads'
nzbget_dest_dir: '${MainDir}/dst'
nzbget_inter_dir: '${MainDir}/inter'
nzbget_nzb_dir: '${MainDir}/nzb'
nzbget_queue_dir: '${MainDir}/queue'
nzbget_temp_dir: '${MainDir}/tmp'
nzbget_web_dir: ''
nzbget_script_dir: '${MainDir}/scripts'
nzbget_lock_file: '${MainDir}/nzbget.lock'
nzbget_log_file: '${MainDir}/nzbget.log'
nzbget_config_template: ''
nzbget_required_dir: ''
nzbget_cert_store: ''
# Default example news server
nzbget_news_servers:
- id: 1
active: 'yes'
name: ''
level: 0
optional: 'no'
group: 0
# Ansible has 'port' as RESERVED keyword.
# Reference: https://github.com/ansible/ansible/pull/69585
srv_host: 'my.newsserver.com'
srv_port: 119
username: 'user'
password: 'pass'
join_group: 'no'
encryption: 'no'
cipher: ''
connections: 4
retention: 0
ip_version: 'auto'
notes: ''
nzbget_control_ip: '0.0.0.0'
nzbget_control_port: '6789' # http port
nzbget_control_username: 'nzbget'
nzbget_control_password: 'tegbzn6789'
nzbget_restricted_username: ''
nzbget_restricted_password: ''
nzbget_add_username: ''
nzbget_add_password: ''
nzbget_form_auth: 'no'
nzbget_secure_control: 'no'
nzbget_secure_port: '6791' # https port
nzbget_secure_cert: ''
nzbget_secure_key: ''
nzbget_authorized_ip: ''
nzbget_cert_check: 'no'
nzbget_update_check: 'stable'
nzbget_daemon_username: 'root'
nzbget_u_mask: 1000
# Default example categories
nzbget_categories:
- id: 1
name: 'Movies'
dest_dir: ''
unpack: 'yes'
extensions: ''
aliases: ''
- id: 2
name: 'Series'
dest_dir: ''
unpack: ''
extensions: ''
aliases: ''
- id: 3
name: 'Music'
dest_dir: ''
unpack: ''
extensions: ''
aliases: ''
- id: 4
name: 'Software'
dest_dir: ''
unpack: ''
extensions: ''
aliases: ''
# Default example feeds
#nzbget_feeds:
# - id: 1
# name: 'my feed'
# url: ''
# filter: ''
# interval: 15
# backlog: 'yes'
# pause_nzb: 'no'
# category: ''
# priority: 0
# extensions: ''
nzbget_append_category_dir: 'yes'
nzbget_nzb_dir_interval: 5
nzbget_nzb_dir_file_age: 60
nzbget_dupe_check: 'yes'
nzbget_flush_queue: 'yes'
nzbget_continue_partial: 'yes'
nzbget_propagation_delay: 0
nzbget_article_cache: 0
nzbget_direct_write: 'yes'
nzbget_write_buffer: 0
nzbget_file_naming: 'auto'
nzbget_reorder_files: 'yes'
nzbget_post_strategy: 'balanced'
nzbget_disk_space: 250
nzbget_nzb_cleanup_disk: 'yes'
nzbget_keep_history: 30
nzbget_feed_history: 7
nzbget_skip_write: 'no'
nzbget_raw_article: 'no'
nzbget_article_retries: 3
nzbget_article_interval: 10
nzbget_article_timeout: 60
nzbget_url_retries: 3
nzbget_url_interval: 10
nzbget_url_timeout: 60
nzbget_remote_timeout: 90
nzbget_download_rate: 0
nzbget_url_connections: 4
nzbget_url_force: 'yes'
nzbget_monthly_quota: 0
nzbget_quota_start_day: 1
nzbget_daily_quota: 0
nzbget_write_log: 'append'
nzbget_rotate_log: 3
nzbget_error_target: 'both'
nzbget_warning_target: 'both'
nzbget_info_target: 'both'
nzbget_detail_target: 'log'
nzbget_debug_target: 'log'
nzbget_log_buffer: 1000
nzbget_nzb_log: 'yes'
nzbget_crash_trace: 'yes'
nzbget_crash_dump: 'no'
nzbget_time_correction: 0
nzbget_output_mode: 'curses'
nzbget_curses_nzb_name: 'yes'
nzbget_curses_group: 'no'
nzbget_curses_time: 'no'
nzbget_update_interval: 200
# Default example tasks
#nzbget_tasks:
# - id: 1
# time: '08:00'
# week_days: '1-7'
# command: 'PauseDownload'
# param: ''
# - id: 2
# time: '20:00'
# week_days: '1-7'
# command: 'UnpauseDownload'
# param: ''
nzbget_crc_check: 'yes'
nzbget_par_check: 'auto'
nzbget_par_repair: 'yes'
nzbget_par_scan: 'extended'
nzbget_par_quick: 'yes'
nzbget_par_buffer: 16
nzbget_par_threads: 0
nzbget_par_ignore_ext: '.sfv, .nzb, .nfo'
nzbget_par_rename: 'yes'
nzbget_rar_rename: 'yes'
nzbget_direct_rename: 'no'
nzbget_health_check: 'park'
nzbget_par_time_limit: 0
nzbget_par_pause_queue: 'no'
nzbget_unpack: 'yes'
nzbget_direct_unpack: 'no'
nzbget_unpack_pause_queue: 'no'
nzbget_unpack_cleanup_disk: 'yes'
# default: unrar (binary install uses pre-package unrar in main dir)
nzbget_unrar_cmd: '${MainDir}/unrar'
# default: 7z (binary install uses pre-package 7z in main dir)
nzbget_seven_zip_cmd: '${MainDir}/7z'
nzbget_ext_cleanup_disk: '.par2, .sfv'
nzbget_unpack_ingore_ext: '.cbr'
nzbget_unpack_pass_file: ''
nzbget_extensions: ''
nzbget_script_order: ''
nzbget_script_pause_queue: 'no'
nzbget_shell_override: ''
nzbget_event_interval: 10