aethernal-agent 0.2.0 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (134) hide show
  1. checksums.yaml +4 -4
  2. data/COPYING +674 -0
  3. data/Gemfile.lock +31 -32
  4. data/README.md +3 -32
  5. data/Vagrantfile +10 -2
  6. data/aethernal-agent.gemspec +2 -1
  7. data/bin/install-aa +120 -0
  8. data/bin/run-aa-for-test +1 -1
  9. data/lib/aethernal_agent.rb +7 -0
  10. data/lib/aethernal_agent/apache/apache.rb +8 -5
  11. data/lib/aethernal_agent/apache/templates/aa-default.conf +2 -0
  12. data/lib/aethernal_agent/apache/templates/aa-user.conf.erb +2 -0
  13. data/lib/aethernal_agent/app.rb +87 -22
  14. data/lib/aethernal_agent/apt.rb +17 -6
  15. data/lib/aethernal_agent/docker/container_settings.rb +33 -0
  16. data/lib/aethernal_agent/docker/env.rb +33 -0
  17. data/lib/aethernal_agent/docker/port_binding.rb +32 -0
  18. data/lib/aethernal_agent/docker/volume.rb +28 -0
  19. data/lib/aethernal_agent/filesystem.rb +2 -1
  20. data/lib/aethernal_agent/loader.rb +3 -3
  21. data/lib/aethernal_agent/operation.rb +1 -1
  22. data/lib/aethernal_agent/plugins/bazarr/bazarr.rb +57 -0
  23. data/lib/aethernal_agent/plugins/bazarr/files/bazarr.service +16 -0
  24. data/lib/aethernal_agent/plugins/bazarr/manifest.yml +64 -0
  25. data/lib/aethernal_agent/plugins/bazarr/meta/bazarr.png +0 -0
  26. data/lib/aethernal_agent/plugins/bazarr/templates/bazarr.apache.conf.erb +5 -0
  27. data/lib/aethernal_agent/plugins/bazarr/templates/config.ini.erb +135 -0
  28. data/lib/aethernal_agent/plugins/cardigann/cardigann.rb +45 -0
  29. data/lib/aethernal_agent/plugins/cardigann/files/cardigann.service +13 -0
  30. data/lib/aethernal_agent/plugins/cardigann/manifest.yml +36 -0
  31. data/lib/aethernal_agent/plugins/cardigann/meta/cardigann.png +0 -0
  32. data/lib/aethernal_agent/plugins/cardigann/templates/cardigann.apache.conf.erb +6 -0
  33. data/lib/aethernal_agent/plugins/cardigann/templates/config.json.erb +7 -0
  34. data/lib/aethernal_agent/plugins/couchpotato/couchpotato.rb +45 -0
  35. data/lib/aethernal_agent/plugins/couchpotato/files/couchpotato.service +13 -0
  36. data/lib/aethernal_agent/plugins/couchpotato/manifest.yml +37 -0
  37. data/lib/aethernal_agent/plugins/couchpotato/meta/couchpotato.png +0 -0
  38. data/lib/aethernal_agent/plugins/couchpotato/templates/couchpotato.apache.conf.erb +4 -0
  39. data/lib/aethernal_agent/plugins/couchpotato/templates/settings.conf.erb +585 -0
  40. data/lib/aethernal_agent/plugins/deluge/manifest.yml +2 -2
  41. data/lib/aethernal_agent/plugins/deluge/templates/deluge.apache.conf.erb +0 -1
  42. data/lib/aethernal_agent/plugins/filebrowser/manifest.yml +1 -1
  43. data/lib/aethernal_agent/plugins/gitea/manifest.yml +1 -1
  44. data/lib/aethernal_agent/plugins/jackett/files/jackett.service +15 -0
  45. data/lib/aethernal_agent/plugins/jackett/jackett.rb +49 -0
  46. data/lib/aethernal_agent/plugins/jackett/manifest.yml +54 -0
  47. data/lib/aethernal_agent/plugins/jackett/meta/jackett.png +0 -0
  48. data/lib/aethernal_agent/plugins/jackett/templates/ServerConfig.json.erb +8 -0
  49. data/lib/aethernal_agent/plugins/jackett/templates/jackett.apache.conf.erb +5 -0
  50. data/lib/aethernal_agent/plugins/medusa/files/medusa.service +13 -0
  51. data/lib/aethernal_agent/plugins/medusa/manifest.yml +54 -0
  52. data/lib/aethernal_agent/plugins/medusa/medusa.rb +47 -0
  53. data/lib/aethernal_agent/plugins/medusa/meta/medusa.png +0 -0
  54. data/lib/aethernal_agent/plugins/medusa/templates/config.ini.erb +1308 -0
  55. data/lib/aethernal_agent/plugins/medusa/templates/medusa.apache.conf.erb +12 -0
  56. data/lib/aethernal_agent/plugins/nextcloud/manifest.yml +54 -0
  57. data/lib/aethernal_agent/plugins/nextcloud/meta/nextcloud.png +0 -0
  58. data/lib/aethernal_agent/plugins/nextcloud/nextcloud.rb +44 -0
  59. data/lib/aethernal_agent/plugins/nextcloud/templates/nextcloud.apache.conf.erb +4 -0
  60. data/lib/aethernal_agent/plugins/nzbget/files/nzbget.service +13 -0
  61. data/lib/aethernal_agent/plugins/nzbget/manifest.yml +54 -0
  62. data/lib/aethernal_agent/plugins/nzbget/meta/nzbget.png +0 -0
  63. data/lib/aethernal_agent/plugins/nzbget/nzbget.rb +44 -0
  64. data/lib/aethernal_agent/plugins/nzbget/templates/nzbget.apache.conf.erb +5 -0
  65. data/lib/aethernal_agent/plugins/nzbget/templates/nzbget.conf.erb +1508 -0
  66. data/lib/aethernal_agent/plugins/olaris/manifest.yml +1 -1
  67. data/lib/aethernal_agent/plugins/ombi/manifest.yml +5 -2
  68. data/lib/aethernal_agent/plugins/ombi/ombi.rb +59 -22
  69. data/lib/aethernal_agent/plugins/ombi/templates/ombi.apache.conf.erb +3 -4
  70. data/lib/aethernal_agent/plugins/ombi/templates/ombi.service.erb +1 -1
  71. data/lib/aethernal_agent/plugins/plex-docker/manifest.yml +74 -0
  72. data/lib/aethernal_agent/plugins/plex-docker/meta/plex.png +0 -0
  73. data/lib/aethernal_agent/plugins/plex-docker/plex_docker.rb +37 -0
  74. data/lib/aethernal_agent/plugins/plex-docker/templates/Preferences.xml.erb +2 -0
  75. data/lib/aethernal_agent/plugins/plex-docker/templates/plex_docker.apache.conf.erb +21 -0
  76. data/lib/aethernal_agent/plugins/plex-docker/templates/plex_docker.service.erb +10 -0
  77. data/lib/aethernal_agent/plugins/plex/manifest.yml +6 -5
  78. data/lib/aethernal_agent/plugins/plex/plex.rb +2 -4
  79. data/lib/aethernal_agent/plugins/plex/templates/Preferences.xml.erb +1 -1
  80. data/lib/aethernal_agent/plugins/plex/templates/plex.apache.conf.erb +21 -0
  81. data/lib/aethernal_agent/plugins/portainer/manifest.yml +50 -0
  82. data/lib/aethernal_agent/plugins/portainer/meta/portainer.png +0 -0
  83. data/lib/aethernal_agent/plugins/portainer/portainer.rb +51 -0
  84. data/lib/aethernal_agent/plugins/portainer/templates/portainer.apache.conf.erb +7 -0
  85. data/lib/aethernal_agent/plugins/portainer/templates/portainer.service.erb +10 -0
  86. data/lib/aethernal_agent/plugins/radarr/files/radarr.service +1 -1
  87. data/lib/aethernal_agent/plugins/radarr/manifest.yml +3 -13
  88. data/lib/aethernal_agent/plugins/radarr/radarr.rb +24 -18
  89. data/lib/aethernal_agent/plugins/radarr/templates/radarr.apache.conf.erb +3 -4
  90. data/lib/aethernal_agent/plugins/resilio_docker/files/resilio_docker.service.erb +10 -0
  91. data/lib/aethernal_agent/plugins/resilio_docker/manifest.yml +59 -0
  92. data/lib/aethernal_agent/plugins/resilio_docker/meta/resilio.png +0 -0
  93. data/lib/aethernal_agent/plugins/resilio_docker/resilio_docker.rb +28 -0
  94. data/lib/aethernal_agent/plugins/resilio_docker/templates/resilio_docker.apache.conf.erb +11 -0
  95. data/lib/aethernal_agent/plugins/resilio_docker/templates/resilio_docker.conf.erb +38 -0
  96. data/lib/aethernal_agent/plugins/rutorrent/manifest.yml +84 -0
  97. data/lib/aethernal_agent/plugins/rutorrent/meta/rtorrent.png +0 -0
  98. data/lib/aethernal_agent/plugins/rutorrent/rutorrent.rb +39 -0
  99. data/lib/aethernal_agent/plugins/rutorrent/templates/rtorrent.rc.erb +69 -0
  100. data/lib/aethernal_agent/plugins/rutorrent/templates/rutorrent.apache.conf.erb +13 -0
  101. data/lib/aethernal_agent/plugins/rutorrent/templates/rutorrent.service.erb +10 -0
  102. data/lib/aethernal_agent/plugins/sabnzbd/files/sabnzbd.service +13 -0
  103. data/lib/aethernal_agent/plugins/sabnzbd/manifest.yml +43 -0
  104. data/lib/aethernal_agent/plugins/sabnzbd/meta/sabnzbd.png +0 -0
  105. data/lib/aethernal_agent/plugins/sabnzbd/sabnzbd.rb +47 -0
  106. data/lib/aethernal_agent/plugins/sabnzbd/templates/sabnzbd.apache.conf.erb +4 -0
  107. data/lib/aethernal_agent/plugins/sabnzbd/templates/sabnzbd.ini.erb +188 -0
  108. data/lib/aethernal_agent/plugins/sickchill/files/sickchill.service +13 -0
  109. data/lib/aethernal_agent/plugins/sickchill/manifest.yml +58 -0
  110. data/lib/aethernal_agent/plugins/sickchill/meta/sickchill.png +0 -0
  111. data/lib/aethernal_agent/plugins/sickchill/sickchill.rb +49 -0
  112. data/lib/aethernal_agent/plugins/sickchill/templates/config.ini.erb +1078 -0
  113. data/lib/aethernal_agent/plugins/sickchill/templates/sickchill.apache.conf.erb +4 -0
  114. data/lib/aethernal_agent/plugins/sonarr/manifest.yml +2 -2
  115. data/lib/aethernal_agent/plugins/sonarr/templates/sonarr.apache.conf.erb +3 -4
  116. data/lib/aethernal_agent/plugins/syncthing/files/syncthing.service +18 -0
  117. data/lib/aethernal_agent/plugins/syncthing/manifest.yml +38 -0
  118. data/lib/aethernal_agent/plugins/syncthing/meta/syncthing.png +0 -0
  119. data/lib/aethernal_agent/plugins/syncthing/syncthing.rb +33 -0
  120. data/lib/aethernal_agent/plugins/syncthing/templates/config.xml.erb +56 -0
  121. data/lib/aethernal_agent/plugins/syncthing/templates/syncthing.apache.conf.erb +7 -0
  122. data/lib/aethernal_agent/plugins/tautulli/files/tautulli.service +13 -0
  123. data/lib/aethernal_agent/plugins/tautulli/manifest.yml +40 -0
  124. data/lib/aethernal_agent/plugins/tautulli/meta/tautulli.png +0 -0
  125. data/lib/aethernal_agent/plugins/tautulli/tautulli.rb +45 -0
  126. data/lib/aethernal_agent/plugins/tautulli/templates/config.ini.erb +222 -0
  127. data/lib/aethernal_agent/plugins/tautulli/templates/tautulli.apache.conf.erb +5 -0
  128. data/lib/aethernal_agent/plugins/vnc/manifest.yml +3 -2
  129. data/lib/aethernal_agent/systemd.rb +19 -13
  130. data/lib/aethernal_agent/utils.rb +69 -6
  131. data/lib/aethernal_agent/version.rb +1 -1
  132. data/lib/aethernal_agent/webserver/api.rb +1 -1
  133. data/lib/aethernal_agent/webserver/core.rb +1 -1
  134. metadata +115 -6
@@ -0,0 +1,12 @@
1
+ <Location /medusa>
2
+ ProxyPass http://localhost:<%= @port %>/medusa
3
+ RequestHeader set X-Forwarded-Proto "https" env=HTTPS
4
+ ProxyPassReverse http://localhost:<%= @port %>/medusa
5
+ </Location>
6
+
7
+ <Location /medusa/ws>
8
+ # Websockets
9
+ ProxyPass ws://127.0.0.1:<%= @port %>/medusa/ws keepalive=On timeout=600 retry=1 acquire=3000
10
+ ProxyPassReverse ws://127.0.0.1:<%= @port %>/medusa/ws
11
+ ProxyPassReverseCookieDomain 127.0.0.1 %{HTTP:Host}
12
+ </Location>
@@ -0,0 +1,54 @@
1
+ name: Nextcloud
2
+ script_name: nextcloud.rb
3
+ version: 0.1
4
+ required_aethernal_agent_version: ">= 0.2.0"
5
+ description: The self-hosted productivity platform that keeps you in control
6
+ installation_type: local_install
7
+ configuration_type: multi_user
8
+ apache_configuration: nextcloud.apache.conf.erb
9
+ icon:
10
+ name: nextcloud.png
11
+ sha256sum: e28b54c0f5069e7b437f36aba9baf87c3c647295810e90067f662a66c0bac80d
12
+ plain_name: nextcloud
13
+ actions:
14
+ restart:
15
+ user:
16
+ required: true
17
+ linux_user: true
18
+ uninstall:
19
+ nothing: true
20
+ install_packages:
21
+ user:
22
+ required: true
23
+ linux_user: true
24
+ remove_app_user:
25
+ user:
26
+ required: true
27
+ linux_user: true
28
+ configure_app_user:
29
+ user:
30
+ required: true
31
+ linux_user: true
32
+ password:
33
+ required: false
34
+ auto_generate: true
35
+ return_values:
36
+ - password
37
+ display_values:
38
+ - user
39
+ - password
40
+ estimated_size_mb: 295
41
+ package:
42
+ folder_name: nextcloud
43
+ direct_download:
44
+ url: https://download.nextcloud.com/server/releases/nextcloud-18.0.4.tar.bz2
45
+ target_name: nextcloud-18.0.4.tar.bz2
46
+ auto_extract: true
47
+ always_latest: false
48
+ apt:
49
+ "1804":
50
+ packages:
51
+ - libapache2-mod-php7.2
52
+ - php-sqlite3
53
+ - php7.2-gd php7.2-json php7.2-mysql php7.2-curl php7.2-mbstring
54
+ - php7.2-intl php-imagick php7.2-xml php7.2-zip
@@ -0,0 +1,44 @@
1
+ class AethernalAgent::Nextcloud < AethernalAgent::App
2
+ def initialize(options = {})
3
+ options[:home] = home_folder_path
4
+ super(options)
5
+ end
6
+
7
+ def install_packages(options = {})
8
+ remove_app_user
9
+ super(options)
10
+ directory(home_folder_path("/www"), action: :create)
11
+ FileUtils.mv(app_path + "/nextcloud", nextcloud_folder_path)
12
+ file(nextcloud_folder_path, chmod: 711, owner: self.user)
13
+ directory(app_path + "/nextcloud", action: :delete)
14
+ end
15
+
16
+ def remove_app_user(options = {})
17
+ super(options) do |opts|
18
+ directory(home_folder_path("/www/nextcloud"), action: :delete)
19
+ end
20
+ end
21
+
22
+ def configure_app_user(options = {})
23
+ self.install_packages(options)
24
+
25
+ super(options) do |opts|
26
+ @vars = {
27
+ password: opts['password'],
28
+ domain_name: opts['domain_name'],
29
+ user: self.user}
30
+ end
31
+
32
+ run_command("cd #{nextcloud_folder_path} && sudo -u #{self.user} /usr/bin/php occ maintenance:install --admin-user=#{self.user} --admin-pass=\"#{@vars[:password]}\"")
33
+ run_command("sed -ibak \"s/0 => 'localhost',/0 => 'localhost',1 => '#{self.user}.#{@vars[:domain_name]}',/\" #{nextcloud_folder_path}/config/config.php")
34
+
35
+ return create_return_args(@vars)
36
+ end
37
+
38
+ protected
39
+
40
+ def nextcloud_folder_path
41
+ home_folder_path("/www/nextcloud")
42
+ end
43
+
44
+ end
@@ -0,0 +1,4 @@
1
+ <Directory <%= @home %>/www>
2
+ AllowOverride all
3
+ Require all granted
4
+ </Directory>
@@ -0,0 +1,13 @@
1
+ [Unit]
2
+ Description=NZBGet Daemon
3
+ After=network.target
4
+
5
+ [Service]
6
+ Type=forking
7
+ ExecStart=%h/apps/nzbget/nzbget -c %h/.config/nzbget/nzbget.conf -D
8
+ ExecStop=%h/apps/nzbget/nzbget -Q
9
+ ExecReload=%h/apps/nzbget/nzbget -O
10
+ KillMode=process
11
+
12
+ [Install]
13
+ WantedBy=multi-user.target
@@ -0,0 +1,54 @@
1
+ name: Nzbget
2
+ script_name: nzbget.rb
3
+ version: 0.1
4
+ required_aethernal_agent_version: ">= 0.2.0"
5
+ description: The most efficient usenet downloader.
6
+ installation_type: local_install
7
+ configuration_type: multi_user
8
+ apache_configuration: nzbget.apache.conf.erb
9
+ icon:
10
+ name: nzbget.png
11
+ sha256sum: 3c046423d6fedd9f48992dabc3fa19543482e7666b4a8e74843df417ddee104f
12
+ plain_name: nzbget
13
+ services:
14
+ - nzbget
15
+ actions:
16
+ restart:
17
+ user:
18
+ required: true
19
+ linux_user: true
20
+ uninstall:
21
+ nothing: true
22
+ install_packages:
23
+ user:
24
+ required: true
25
+ linux_user: true
26
+ remove_app_user:
27
+ user:
28
+ required: true
29
+ linux_user: true
30
+ configure_app_user:
31
+ port:
32
+ auto_generate_port: true
33
+ min: 6800
34
+ max: 6899
35
+ user:
36
+ required: true
37
+ linux_user: true
38
+ password:
39
+ required: false
40
+ auto_generate: true
41
+ return_values:
42
+ - password
43
+ - port
44
+ display_values:
45
+ - user
46
+ - password
47
+ estimated_size_mb: 18
48
+ package:
49
+ folder_name: nzbget
50
+ direct_download:
51
+ url: https://github.com/nzbget/nzbget/releases/download/v21.0/nzbget-21.0-bin-linux.run
52
+ target_name: nzbget-21.0-bin-linux.run
53
+ auto_extract: false
54
+ always_latest: false
@@ -0,0 +1,44 @@
1
+ class AethernalAgent::Nzbget < AethernalAgent::App
2
+ def initialize(options = {})
3
+ super(options)
4
+ end
5
+
6
+ def install_packages(options = {})
7
+ remove_app_user
8
+ super(options)
9
+ run_as(self.user,"sh #{app_path}/nzbget-21.0-bin-linux.run")
10
+ directory(app_path, action: :delete)
11
+ run_as("root","mv #{home_folder_path}/nzbget* #{app_path}")
12
+ end
13
+
14
+ def remove_app_user(options = {})
15
+ super(options) do |opts|
16
+ directory(app_path, action: :delete)
17
+ directory(nzbget_config_path, action: :delete)
18
+ end
19
+ end
20
+
21
+ def configure_app_user(options = {})
22
+ self.install_packages(options)
23
+ super(options) do |opts|
24
+ @vars = {
25
+ password: opts['password'],
26
+ port: opts['port'],
27
+ user: self.user}
28
+
29
+ write_template(template_path('nzbget.conf.erb'),
30
+ nzbget_config_path('nzbget.conf'),
31
+ @vars,
32
+ {owner: @vars[:user]})
33
+ end
34
+
35
+ return create_return_args(@vars)
36
+ end
37
+
38
+ protected
39
+
40
+ def nzbget_config_path(path ="/")
41
+ File.join(home_folder_path(".config/nzbget"), path)
42
+ end
43
+
44
+ end
@@ -0,0 +1,5 @@
1
+ Redirect "/nzbget" "/nzbget/"
2
+ <Location /nzbget/>
3
+ ProxyPass http://localhost:<%= @port %>/
4
+ ProxyPassReverse http://localhost:<%= @port %>/
5
+ </Location>
@@ -0,0 +1,1508 @@
1
+ MainDir=~/.config/nzbget/generated
2
+ DestDir=${MainDir}/download
3
+ NzbDir=${MainDir}/nzb
4
+ QueueDir=${MainDir}/queue
5
+ TempDir=${MainDir}/tmp
6
+ ScriptDir=~/.config/nzbget/
7
+ LockFile=${MainDir}/nzbget.lock
8
+ LogFile=~/.config/nzbget/nzbget.log
9
+ WebDir=~/apps/nzbget/webui
10
+ ConfigTemplate=~/.config/nzbget/nzbget.conf
11
+ RequiredDir=
12
+ ##############################################################################
13
+ ### NEWS-SERVERS ###
14
+
15
+ # This section defines which servers NZBGet should connect to.
16
+ #
17
+ # The servers should be numbered subsequently without holes.
18
+ # For example if you configure three servers you should name them as Server1,
19
+ # Server2 and Server3. If you need to delete Server2 later you should also
20
+ # change the name of Server3 to Server2. Otherwise it will not be properly
21
+ # read from the config file. Server number doesn't affect its priority (level).
22
+
23
+ # Use this news server (yes, no).
24
+ #
25
+ # Set to "no" to disable the server on program start. Servers can be activated
26
+ # later via scheduler tasks or manually via web-interface.
27
+ #
28
+ # NOTE: Download is not possible when all servers on level 0 are disabled. Servers
29
+ # on higher levels are used only if at least one server on level 0 was tried.
30
+ Server1.Active=yes
31
+
32
+ # Name of news server.
33
+ #
34
+ # The name is used in UI and for logging. It can be any string, you
35
+ # may even leave it empty.
36
+ Server1.Name=
37
+
38
+ # Level (priority) of news server (0-99).
39
+ #
40
+ # The servers are ordered by their level. NZBGet first tries to download
41
+ # an article from one (any) of level-0-servers. If that server fails,
42
+ # NZBGet tries all other level-0-servers. If all servers fail, it proceeds
43
+ # with the level-1-servers, etc.
44
+ #
45
+ # Put your major download servers at level 0 and your fill servers at
46
+ # levels 1, 2, etc..
47
+ #
48
+ # Several servers with the same level may be defined, they have
49
+ # the same priority.
50
+ Server1.Level=0
51
+
52
+ # Group of news server (0-99).
53
+ #
54
+ # If you have multiple accounts with same conditions (retention, etc.)
55
+ # on the same news server, set the same group (greater than 0) for all
56
+ # of them. If download fails on one news server, NZBGet does not try
57
+ # other servers from the same group.
58
+ #
59
+ # Value "0" means no group defined (default).
60
+ Server1.Group=0
61
+
62
+ # Host name of news server.
63
+ Server1.Host=my.newsserver.com
64
+
65
+ # Port to connect to (1-65535).
66
+ Server1.Port=119
67
+
68
+ # User name to use for authentication.
69
+ Server1.Username=user
70
+
71
+ # Password to use for authentication.
72
+ Server1.Password=pass
73
+
74
+ # Server requires "Join Group"-command (yes, no).
75
+ Server1.JoinGroup=no
76
+
77
+ # Encrypted server connection (TLS/SSL) (yes, no).
78
+ #
79
+ # NOTE: By changing this option you should also change the option <ServerX.Port>
80
+ # accordingly because unsecure and encrypted connections use different ports.
81
+ Server1.Encryption=no
82
+
83
+ # Cipher to use for encrypted server connection.
84
+ #
85
+ # By default (when the option is empty) the underlying encryption library
86
+ # chooses the cipher automatically. To achieve the best performance
87
+ # however you can manually select a faster cipher.
88
+ #
89
+ # See http://nzbget.net/choosing-cipher for details.
90
+ #
91
+ # NOTE: One of the fastest cipher is RC4. To select it use the cipher string
92
+ # "RC4-MD5" (if NZBGet was configured to use OpenSSL) or
93
+ # "NONE:+VERS-TLS-ALL:+ARCFOUR-128:+RSA:+MD5:+COMP-ALL"
94
+ # (if NZBGet was configured to use GnuTLS). Note that RC4 is considered insecure
95
+ # by the IETF (http://tools.ietf.org/html/rfc7465), but may be sufficient for
96
+ # the usage of NZBGet.
97
+ #
98
+ # NOTE: You may get a TLS handshake error if the news server does
99
+ # not support the chosen cipher. You can also get an error "Could not
100
+ # select cipher for TLS" if the cipher string is not valid.
101
+ Server1.Cipher=
102
+
103
+ # Maximum number of simultaneous connections to this server (0-999).
104
+ Server1.Connections=4
105
+
106
+ # Server retention time (days).
107
+ #
108
+ # How long the articles are stored on the news server. The articles
109
+ # whose age exceed the defined server retention time are not tried on
110
+ # this news server, the articles are instead considered failed on this
111
+ # news server.
112
+ #
113
+ # Value "0" disables retention check.
114
+ Server1.Retention=0
115
+
116
+ # Second server, on level 0.
117
+
118
+ #Server2.Level=0
119
+ #Server2.Host=my2.newsserver.com
120
+ #Server2.Port=119
121
+ #Server2.Username=me
122
+ #Server2.Password=mypass
123
+ #Server2.JoinGroup=yes
124
+ #Server2.Connections=4
125
+
126
+ # Third server, on level 1.
127
+
128
+ #Server3.Level=1
129
+ #Server3.Host=fills.newsserver.com
130
+ #Server3.Port=119
131
+ #Server3.Username=me2
132
+ #Server3.Password=mypass2
133
+ #Server3.JoinGroup=yes
134
+ #Server3.Connections=1
135
+
136
+
137
+ ##############################################################################
138
+ ### SECURITY ###
139
+
140
+ # IP on which NZBGet server listen and which clients use to contact NZBGet.
141
+ #
142
+ # It could be a dns-hostname (e. g. "mypc") or an IP address (e. g. "192.168.1.2" or
143
+ # "127.0.0.1").
144
+ #
145
+ # Your computer may have multiple network interfaces and therefore multiple IP
146
+ # addresses. If you want NZBGet to listen to all interfaces and be available from
147
+ # all IP-addresses use value "0.0.0.0".
148
+ #
149
+ # NOTE: When you start NZBGet as client (to send remote commands to NZBGet server) and
150
+ # the option <ControlIP> is set to "0.0.0.0" the client will use IP "127.0.0.1".
151
+ #
152
+ # NOTE: If you set the option to "127.0.0.1" you will be able to connect to NZBGet
153
+ # only from the computer running NZBGet. This restriction applies to web-interface too.
154
+ ControlIP=0.0.0.0
155
+
156
+ # Port which NZBGet server and remote client use (1-65535).
157
+ #
158
+ # NOTE: The communication via this port is not encrypted. For encrypted
159
+ # communication see option <SecurePort>.
160
+ ControlPort=<%= @port %>
161
+
162
+ # User name which NZBGet server and remote client use.
163
+ #
164
+ # Set to empty value to disable user name check (check only password).
165
+ #
166
+ # NOTE: This option was added in NZBGet 11. Older versions used predefined
167
+ # not changeable user name "nzbget". Third-party tools or web-sites written
168
+ # for older NZBGet versions may not have an option to define user name. In
169
+ # this case you should set option <ControlUsername> to the default value
170
+ # "nzbget" or use empty value.
171
+ ControlUsername=<%= @user %>
172
+ ControlPassword=<%= @password %>
173
+
174
+ # User name for restricted access.
175
+ #
176
+ # The restricted user can control the program with a few restrictions.
177
+ # They have access to the web-interface and can see most of the program
178
+ # settings. They however, can not change program settings, view security
179
+ # related options or options provided by extension scripts.
180
+ #
181
+ # Use this user to connect to NZBGet from other programs and web-sites.
182
+ #
183
+ # In terms of RPC-API the user:
184
+ # - cannot use method "saveconfig";
185
+ # - methods "config" and "saveconfig" return string "***" for
186
+ # options those content is protected from the user.
187
+ #
188
+ # Set to empty value to disable restricted user.
189
+ #
190
+ # NOTE: Don't forget to change default username/password of the control
191
+ # user (options <ControlUsername> and <ControlPassword>).
192
+ RestrictedUsername=
193
+
194
+ # Password for restricted access.
195
+ #
196
+ # Set to empty value to disable password check.
197
+ RestrictedPassword=
198
+
199
+ # User name to add downloads via RPC-API.
200
+ #
201
+ # Use the AddUsername/AddPassword to give other programs or web-services
202
+ # access to NZBGet with only two permissions:
203
+ # - add new downloads using RPC-method "append";
204
+ # - check program version using RPC-method "version".
205
+ #
206
+ # In a case the program/web-service needs more rights use the restricted
207
+ # user instead (options <RestrictedUsername> and <RestrictedPassword>).
208
+ #
209
+ # Set to empty value to disable add-user.
210
+ #
211
+ # NOTE: Don't forget to change default username/password of the control
212
+ # user (options <ControlUsername> and <ControlPassword>).
213
+ AddUsername=
214
+
215
+ # Password for user with add downloads access.
216
+ #
217
+ # Set to empty value to disable password check.
218
+ AddPassword=
219
+
220
+ # Authenticate using web-form (yes, no).
221
+ #
222
+ # The preferred and default way to authenticate in web-interface is using
223
+ # HTTP authentication. Web-browsers show a special dialog to enter username
224
+ # and password which they then send back to NZBGet. Sometimes browser plugins
225
+ # aided at storing and filling of passwords do not work properly with browser's
226
+ # built-in dialog. To help with such tools NZBGet provide an alternative
227
+ # authentication mechanism via web form.
228
+ FormAuth=no
229
+
230
+ # Secure control of NZBGet server (yes, no).
231
+ #
232
+ # Activate the option if you want to access NZBGet built-in web-server
233
+ # via HTTPS (web-interface and RPC). You should also provide certificate
234
+ # and key files, see option <SecureCert> and option <SecureKey>.
235
+ SecureControl=no
236
+
237
+ # Port which NZBGet server and remote client use for encrypted
238
+ # communication (1-65535).
239
+ SecurePort=6791
240
+
241
+ # Full path to certificate file for encrypted communication.
242
+ SecureCert=
243
+
244
+ # Full path to key file for encrypted communication.
245
+ SecureKey=
246
+
247
+ # IP-addresses allowed to connect without authorization.
248
+ #
249
+ # Comma separated list of privileged IPs for easy access to NZBGet
250
+ # built-in web-server (web-interface and RPC). The connected clients
251
+ # have full unrestricted access.
252
+ #
253
+ # Example: 127.0.0.1,192.168.178.2.
254
+ #
255
+ # NOTE: Do not use this option if the program works behind another
256
+ # web-server because all requests will have the address of this server.
257
+ AuthorizedIP=
258
+
259
+ # TLS certificate verification (yes, no).
260
+ #
261
+ # When connecting to a news server (for downloading) or a web server
262
+ # (for fetching of rss feeds and nzb-files) the authenticity of the server
263
+ # should be validated using server security certificate. If the check
264
+ # fails that means the connection cannot be trusted and must be closed
265
+ # with an error message explaining the security issue.
266
+ #
267
+ # Sometimes servers are improperly configured and the certificate verification
268
+ # fails even if there is no hacker attack in place. In that case you should
269
+ # inform the server owner about the issue. If you still need to connect to
270
+ # servers with invalid certificates you can disable the certificate verification
271
+ # but you should know that your connection is insecure and you might be
272
+ # connecting to attacker's server without your awareness.
273
+ #
274
+ # NOTE: Certificate verification requires a list of trusted root certificates,
275
+ # which must be configured using option <CertStore>.
276
+ #
277
+ # NOTE: For more details visit http://nzbget.net/certificate-verification.
278
+ CertCheck=no
279
+
280
+ # Automatically check for new releases (none, stable, testing).
281
+ #
282
+ # None - do not show notifcations;
283
+ # Stable - show notifications about new stable releases;
284
+ # Testing - show notifications about new stable and testing releases.
285
+ UpdateCheck=stable
286
+
287
+ # User name for daemon-mode, POSIX only.
288
+ #
289
+ # Set the user that the daemon normally runs at (POSIX in daemon-mode only).
290
+ # Set MainDir with an absolute path to be sure where it will write.
291
+ # This allows NZBGet daemon to be launched in rc.local (at boot), and
292
+ # download items as a specific user id.
293
+ #
294
+ # NOTE: This option has effect only if the program was started from
295
+ # root-account, otherwise it is ignored and the daemon runs under
296
+ # current user id.
297
+ DaemonUsername=root
298
+
299
+ # Specify default umask (affects file permissions) for newly created
300
+ # files, POSIX only (000-1000).
301
+ #
302
+ # The value should be written in octal form (the same as for "umask" shell
303
+ # command).
304
+ # Empty value or value "1000" disable the setting of umask-mode; current
305
+ # umask-mode (set via shell) is used in this case.
306
+ UMask=1000
307
+
308
+
309
+ ##############################################################################
310
+ ### CATEGORIES ###
311
+
312
+ # This section defines categories available in web-interface.
313
+
314
+ # Category name.
315
+ #
316
+ # Each nzb-file can be assigned to a category.
317
+ # Category name is passed to post-processing script and can be used by it
318
+ # to perform category specific processing.
319
+ Category1.Name=Movies
320
+
321
+ # Destination directory for this category.
322
+ #
323
+ # If this option is empty, then the default destination directory
324
+ # (option <DestDir>) is used. In this case if the option <AppendCategoryDir>
325
+ # is active, the program creates a subdirectory with category name within
326
+ # destination directory.
327
+ Category1.DestDir=
328
+
329
+ # Unpack downloaded nzb-files (yes, no).
330
+ #
331
+ # For more information see global option <Unpack>.
332
+ Category1.Unpack=yes
333
+
334
+ # List of extension scripts for this category.
335
+ #
336
+ # For more information see global option <Extensions>.
337
+ Category1.Extensions=
338
+
339
+ # List of aliases.
340
+ #
341
+ # When a nzb-file is added from URL, RSS or RPC the category name
342
+ # is usually supplied by nzb-site or by application accessing
343
+ # NZBGet. Using Aliases you can match their categories with your owns.
344
+ #
345
+ # Separate aliases with commas or semicolons. Use wildcard characters
346
+ # * and ? for pattern matching.
347
+ #
348
+ # Example: TV - HD, TV - SD, TV*
349
+ Category1.Aliases=
350
+
351
+ Category2.Name=Series
352
+ Category2.DestDir=
353
+ Category2.Unpack=yes
354
+ Category2.Extensions=
355
+ Category2.Aliases=
356
+ Category3.Name=Music
357
+ Category3.DestDir=
358
+ Category3.Unpack=yes
359
+ Category3.Extensions=
360
+ Category3.Aliases=
361
+ Category4.Name=Software
362
+ Category4.DestDir=
363
+ Category4.Unpack=yes
364
+ Category4.Extensions=
365
+ Category4.Aliases=
366
+
367
+
368
+ ##############################################################################
369
+ ### RSS FEEDS ###
370
+
371
+ # Name of RSS Feed.
372
+ #
373
+ # The name is used in UI and for logging. It can be any string.
374
+ #Feed1.Name=my feed
375
+
376
+ # Address (URL) of RSS Feed.
377
+ #
378
+ # Example: https://myindexer.com/api?apikey=3544646bfd1c535a9654645609800901&t=search&q=game.
379
+ #Feed1.URL=
380
+
381
+ # Filter rules for items.
382
+ #
383
+ # Use filter to ignore unwanted items in the feed. In its simplest version
384
+ # the filter is a space separated list of words which must be present in
385
+ # the item title.
386
+ #
387
+ # Example: linux debian dvd.
388
+ #
389
+ # MORE INFO:
390
+ # NOTE: This is a short documentation, for more information visit
391
+ # http://nzbget.net/rss.
392
+ #
393
+ # Feed filter consists of rules - one rule per line. Each rule defines
394
+ # a search string and a command, which must be performed if the search
395
+ # string matches. There are five kinds of rule-commands: Accept,
396
+ # Reject, Require, Options, Comment.
397
+ #
398
+ # NOTE: Since options in the configuration file can not span multiple
399
+ # lines, the lines (rules) must be separated with %-character (percent).
400
+ #
401
+ # Definition of a rule:
402
+ # [A:|A(options):|R:|Q:|O(options):|#] search-string
403
+ #
404
+ # A - declares Accept-rule. Rules are accept-rules by default, the
405
+ # "A:" can be omitted. If the feed item matches to the rule the
406
+ # item is considered good and no further rules are checked.
407
+ # R - declares Reject-rule. If the feed item matches to the rule the
408
+ # item is considered bad and no further rules are checked.
409
+ # Q - declares Require-rule. If the feed item DOES NOT match to the rule
410
+ # the item is considered bad and no further rules are checked.
411
+ # O - declares Options-rule. If the feed item matches to the rule the
412
+ # options declared in the rule are set for the item. The item is
413
+ # neither accepted nor rejected via this rule but can be accepted
414
+ # later by one of Accept-rules. In this case the item will have its
415
+ # options already set (unless the Accept-rule overrides them).
416
+ # # - lines starting with # are considered comments and are ignored. You
417
+ # can use comments to explain complex rules or to temporary disable
418
+ # rules for debugging.
419
+ #
420
+ # Options allow to set properties on nzb-file. It's a comma-separated
421
+ # list of property names with their values.
422
+ #
423
+ # Definition of an option:
424
+ # name:value
425
+ #
426
+ # Options can be defined using long option names or short names:
427
+ # category (cat, c) - set category name, value is a string;
428
+ # pause (p) - add nzb in paused or unpaused state, possible
429
+ # values are: yes (y), no (n);
430
+ # priority (pr, r) - set priority, value is a signed integer number;
431
+ # priority+ (pr+, r+) - increase priority, value is a signed integer number;
432
+ # dupescore (ds, s) - set duplicate score, value is a signed integer number;
433
+ # dupescore+ (ds+, s+) - increase duplicate score, value is a signed integer number;
434
+ # dupekey (dk, k) - set duplicate key, value is a string;
435
+ # dupekey+ (dk+, k+) - add to duplicate key, value is a string;
436
+ # dupemode (dm, m) - set duplicate check mode, possible values
437
+ # are: score (s), all (a), force (f);
438
+ # rageid - generate duplicate key using this rageid
439
+ # (integer number) and season/episode numbers;
440
+ # series - generate duplicate key using series identifier
441
+ # (any unique string) and season/episode numbers.
442
+ #
443
+ # Examples of option definitions:
444
+ # Accept(category:my series, pause:yes, priority:100): my show 1080p;
445
+ # Options(c:my series, p:y, r:100): 1080p;
446
+ # Options(s:1000): 1080p;
447
+ # Options(k+:1080p): 1080p;
448
+ # Options(dupemode:force): BluRay.
449
+ #
450
+ # Rule-options override values set in feed-options.
451
+ #
452
+ # The search-string is similar to used in search engines. It consists of
453
+ # search terms separated with spaces. Every term is checked for a feed
454
+ # item and if they all succeed the rule is considered matching.
455
+ #
456
+ # Definition of a term:
457
+ # [+|-][field:][command]param
458
+ #
459
+ # + - declares a positive term. Terms are positive by default,
460
+ # the "+" can be omitted;
461
+ # - - declares a negative term. If the term succeeds the feed
462
+ # item is ignored;
463
+ # field - field to which apply the term. If not specified
464
+ # the default field "title" is used;
465
+ # command - a special character defining how to interpret the
466
+ # parameter (followed after the command):
467
+ # @ - search for string "param". This is default command,
468
+ # the "@" can be omitted;
469
+ # $ - "param" defines a regular expression (using POSIX Extended
470
+ # Regular Expressions syntax);
471
+ # = - equal;
472
+ # < - less than;
473
+ # <= - equal or less than;
474
+ # > - greater than;
475
+ # >= - equal or greater than;
476
+ # param - parameter for command.
477
+ #
478
+ # Commands @ and $ are for use with text fields (title, filename, category,
479
+ # link, description, dupekey). Commands =, <, <=, > and >= are for use
480
+ # with numeric fields (size, age, imdbid, rageid, season, episode, priority,
481
+ # dupescore).
482
+ #
483
+ # Only fields title, filename and age are always present. The availability of
484
+ # other fields depend on rss feed provider.
485
+ #
486
+ # Any newznab attribute (encoded as "newznab:attr" in the RSS feed) can
487
+ # be used as search field with prefix "attr-", for example "attr-genre".
488
+ #
489
+ # Text search (Command @) supports wildcard characters * (matches
490
+ # any number of any characters), ? (matches any one character)
491
+ # and # (matches one digit).
492
+ # Text search is by default performed against words (word-search mode): the
493
+ # field content is separated into words and then each word is checked
494
+ # against pattern. If the search pattern starts and ends with * (star)
495
+ # the search is performed against the whole field content
496
+ # (substring-search mode). If the search pattern contains word separator
497
+ # characters (except * and ?) the search is performed on the whole
498
+ # field (the word-search would be obviously never successful in this
499
+ # case). Word separators are: !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~.
500
+ #
501
+ # Field "size" can have suffixes "K" or "KB" for kilobytes, "M" or "MB"
502
+ # for megabytes and "G" or "GB" for gigabytes. Field "age" can have
503
+ # suffixes "m" for minutes, "h" for hours and "d" for days. If suffix
504
+ # is not specified default is days.
505
+ #
506
+ # Examples (the trailing ; or . is not part of filter):
507
+ # 1) A: s01* -category:anime;
508
+ # 2) my show WEB-DL;
509
+ # 3) *my?show* WEB-DL size:<1.8GB age:>2h;
510
+ # 4) R: size:>9GB;
511
+ # 5) Q: HDTV.
512
+ #
513
+ # NOTE: This is a short documentation, for more information visit
514
+ # http://nzbget.net/rss.
515
+ #Feed1.Filter=
516
+
517
+ # How often to check for new items (minutes).
518
+ #
519
+ # Value "0" disables the automatic check of this feed.
520
+ #Feed1.Interval=15
521
+
522
+ # Treat all items on first fetch as backlog (yes, no).
523
+ #
524
+ # yes - when the feed is fetched for the very first time (or after
525
+ # changing of URL or filter) all existing items are ignored (marked
526
+ # as backlog). The items found on subsequent fetches are processed;
527
+ # no - all items are processed even on first fetch (or after
528
+ # changing of URL or filter).
529
+ #Feed1.Backlog=yes
530
+
531
+ # Add nzb-files as paused (yes, no).
532
+ #Feed1.PauseNzb=no
533
+
534
+ # Category for added nzb-files.
535
+ #
536
+ # NOTE: Feed providers may include category name within response when nzb-file
537
+ # is downloaded. If you want to use the providers category leave the option empty.
538
+ #Feed1.Category=
539
+
540
+ # Priority for added nzb-files (number).
541
+ #
542
+ # Priority can be any integer value. The web-interface however operates
543
+ # with only six predefined priorities: -100 (very low priority), -50
544
+ # (low priority), 0 (normal priority, default), 50 (high priority),
545
+ # 100 (very high priority) and 900 (force priority). Downloads with
546
+ # priorities equal to or greater than 900 are downloaded and
547
+ # post-processed even if the program is in paused state (force mode).
548
+ #Feed1.Priority=0
549
+
550
+ # List of rss feed extension scripts to execute for rss content.
551
+ #
552
+ # The scripts in the list must be separated with commas or semicolons. All
553
+ # scripts must be stored in directory set by option <ScriptDir> and
554
+ # paths relative to <ScriptDir> must be entered here.
555
+ #
556
+ # NOTE: For developer documentation visit http://nzbget.net/extension-scripts.
557
+ #Feed1.Extensions=
558
+
559
+
560
+ ##############################################################################
561
+ ### INCOMING NZBS ###
562
+
563
+ # Create subdirectory with category-name in destination-directory (yes, no).
564
+ AppendCategoryDir=yes
565
+
566
+ # How often incoming-directory (option <NzbDir>) must be checked for new
567
+ # nzb-files (seconds).
568
+ #
569
+ # Value "0" disables the check.
570
+ #
571
+ # NOTE: nzb-files are processed by extension scripts. See option <Extensions>.
572
+ NzbDirInterval=5
573
+
574
+ # How old nzb-file should at least be for it to be loaded to queue (seconds).
575
+ #
576
+ # NZBGet checks if nzb-file was not modified in last few seconds, defined by
577
+ # this option. That safety interval prevents the loading of files, which
578
+ # were not yet completely saved to disk, for example if they are still being
579
+ # downloaded in web-browser.
580
+ NzbDirFileAge=60
581
+
582
+ # Check for duplicate titles (yes, no).
583
+ #
584
+ # If this option is enabled the program checks by adding of a new nzb-file:
585
+ # 1) if history contains the same title (see below) with success status
586
+ # the nzb-file is not added to queue;
587
+ # 2) if download queue already contains the same title the nzb-file is
588
+ # added to queue for backup (if the first file fails);
589
+ # 3) if nzb-file contains duplicate entries. This helps to find errors
590
+ # in bad nzb-files.
591
+ #
592
+ # "Same title" means the nzb file name is same or the duplicate key is
593
+ # same. Duplicate keys are set by fetching from RSS feeds using title
594
+ # identifier fields provided by RSS provider (imdbid or rageid/season/episode).
595
+ #
596
+ # If duplicates were detected only one of them is downloaded. If download
597
+ # fails another duplicate is tried. If download succeeds all remaining
598
+ # duplicates are deleted from queue.
599
+ #
600
+ # NOTE: For automatic duplicate handling option <HealthCheck> must be
601
+ # set to "Delete", "Park" or "None". If it is set to "Pause" you will need to
602
+ # manually unpause another duplicate (if any exists in queue).
603
+ #
604
+ # NOTE: For more info on duplicates see http://nzbget.net/rss.
605
+ DupeCheck=yes
606
+
607
+
608
+ ##############################################################################
609
+ ### DOWNLOAD QUEUE ###
610
+
611
+ # Flush download queue to disk (yes, no).
612
+ #
613
+ # Immediately flush file buffers for queue state file. This improves
614
+ # safety for the queue file but may decrease disk performance due to
615
+ # disabling of disk caching for queue state file.
616
+ #
617
+ # You can disable this option if it negatively affects disk performance on your
618
+ # system. You should create backups of queue-directory (option <QueueDir>)
619
+ # in that case. Keep the option enabled if your system often crashes.
620
+ FlushQueue=yes
621
+
622
+ # Continue download of partially downloaded files (yes, no).
623
+ #
624
+ # If active the current state (the info about what articles were already
625
+ # downloaded) is saved every second and is reloaded after restart. This is
626
+ # about files included in download jobs (usually rar-files), not about
627
+ # download-jobs (nzb-files) itself. Download-jobs are always
628
+ # continued regardless of that option.
629
+ #
630
+ # Disabling this option may slightly reduce disk access and is
631
+ # therefore recommended on fast connections.
632
+ ContinuePartial=yes
633
+
634
+ # Propagation delay to your news servers (minutes).
635
+ #
636
+ # The option sets minimum post age for nzb-files. Very recent files
637
+ # are not downloaded to avoid download failures. The files remain
638
+ # on hold in the download queue until the propagation delay expires,
639
+ # after that they are downloaded.
640
+ PropagationDelay=0
641
+
642
+ # Memory limit for article cache (megabytes).
643
+ #
644
+ # Article cache helps to improve performance. First the amount of disk
645
+ # operations can be significantly reduced. Second the created files are
646
+ # less fragmented, which again speeds up the post-processing (unpacking).
647
+ #
648
+ # The article cache works best with option <DirectWrite> which can
649
+ # effectively use even small cache (like 50 MB).
650
+ #
651
+ # If option <DirectWrite> is disabled the cache should be big enough to
652
+ # hold all articles of one file (typically up to 200 MB, sometimes even
653
+ # 500 MB). Otherwise the articles are written into temporary directory
654
+ # when the cache is full, which degrades performance.
655
+ #
656
+ # Value "0" disables article cache.
657
+ #
658
+ # In 32 bit mode the maximum allowed value is 1900.
659
+ #
660
+ # NOTE: Also see option <WriteBuffer>.
661
+ ArticleCache=100
662
+
663
+ # Write decoded articles directly into destination output file (yes, no).
664
+ #
665
+ # Files are posted to Usenet in multiple pieces (articles). Each file
666
+ # typically consists of hundreds of articles.
667
+ #
668
+ # When option <DirectWrite> is disabled and the article cache (option
669
+ # <ArticleCache>) is not active or is full the program saves downloaded
670
+ # articles into temporary directory and later reads them all to write
671
+ # again into the destination file.
672
+ #
673
+ # When option <DirectWrite> is enabled the program at first creates the
674
+ # output destination file with required size (total size of all articles),
675
+ # then writes the articles directly to this file without creating of any
676
+ # temporary files. If article cache (option <ArticleCache>) is active
677
+ # the downloaded articles are saved into cache first and are written
678
+ # into the destination file when the cache flushes. This happen when
679
+ # all articles of the file are downloaded or when the cache becomes
680
+ # full to 90%.
681
+ #
682
+ # The direct write relies on the ability of file system to create
683
+ # empty files without allocating the space on the drive (sparse files),
684
+ # which most modern file systems support including EXT3, EXT4
685
+ # and NTFS. The notable exception is HFS+ (default file system on OSX).
686
+ #
687
+ # The direct write usually improves performance by reducing the amount
688
+ # of disk operations but may produce more fragmented files when used
689
+ # without article cache.
690
+ DirectWrite=yes
691
+
692
+ # Memory limit for per connection write buffer (kilobytes).
693
+ #
694
+ # When downloaded articles are written into disk the OS collects
695
+ # data in the internal buffer before flushing it into disk. This option
696
+ # controls the size of this buffer per connection/download thread.
697
+ #
698
+ # Larger buffers decrease the amount of disk operations and help
699
+ # producing less fragmented files speeding up the post-processing
700
+ # (unpack).
701
+ #
702
+ # To calculate the maximum memory required for all download threads multiply
703
+ # WriteBuffer by number of connections configured in section
704
+ # "NEWS-SERVERS". The option sets the limit, the actual buffer can be
705
+ # smaller if the article size (typically about 500 KB) is below the limit.
706
+ #
707
+ # Write-buffer is managed by OS (system libraries) and therefore
708
+ # the effect of the option is highly OS-dependent.
709
+ #
710
+ # Recommended value for computers with enough memory: 1024.
711
+ #
712
+ # Value "0" disables the setting of buffer size. In this case a buffer
713
+ # of default size (OS and compiler specific) is used, which is usually
714
+ # too small (1-4 KB) and therefore not optimal.
715
+ #
716
+ # NOTE: Also see option <ArticleCache>.
717
+ WriteBuffer=1024
718
+
719
+ # How to name downloaded files (auto, article, nzb).
720
+ #
721
+ # Article - use file names stored in article metadata;
722
+ # Nzb - use file names as defined in nzb-file;
723
+ # Auto - prefer names from article metadata; for obfuscated files use
724
+ # names from nzb-file.
725
+ #
726
+ # NOTE: This option sets the naming convention for files listed in nzb. It has no
727
+ # effect on files extracted from archives.
728
+ FileNaming=auto
729
+
730
+ # Reorder files within nzbs for optimal download order (yes, no).
731
+ #
732
+ # When nzb-file is added to queue the files listed within nzb can be in a random
733
+ # order. When "ReorderFiles" is active the files are automatically sorted
734
+ # alphabetically to ensure download of archive parts in correct order. The
735
+ # par2-files are moved to the end and then sorted by size.
736
+ #
737
+ # NOTE: When option <DirectRename> is active the files are sorted again after the file
738
+ # names become known.
739
+ ReorderFiles=yes
740
+
741
+ # Post-processing strategy (sequential, balanced, aggressive, rocket).
742
+ #
743
+ # Sequential - downloaded items are post processed from a queue, one item at a
744
+ # time, to dedicate the most computer resources to each
745
+ # item. Therefore, a post process par repair will prevent another
746
+ # task from running even if the item does not require a par repair;
747
+ # Balanced - items that do not need par repair are post processed one at a
748
+ # time while par repair tasks may also run simultaneously one after
749
+ # another at the same time. This means that a post process par
750
+ # repair will not prevent another task from running, but at a cost
751
+ # of using more computer resource;
752
+ # Aggressive - will simultaneously post process up to three items including
753
+ # one par repair task;
754
+ # Rocket - will simultaneously post process up to six items including one
755
+ # or two par repair tasks.
756
+ #
757
+ # NOTE: Computer resources are in heavy demand when post-processing with
758
+ # simultaneous tasks - make sure the hardware is capable.
759
+ PostStrategy=balanced
760
+
761
+ # Pause if disk space gets below this value (megabytes).
762
+ #
763
+ # Disk space is checked for directories pointed by option <DestDir> and
764
+ # option <InterDir>.
765
+ #
766
+ # Value "0" disables the check.
767
+ DiskSpace=250
768
+
769
+ # Delete source nzb-file when it is not needed anymore (yes, no).
770
+ #
771
+ # Enable this option for automatic deletion of source nzb-file from
772
+ # incoming directory when the program doesn't require it anymore (the
773
+ # nzb-file has been deleted from queue and history).
774
+ NzbCleanupDisk=yes
775
+
776
+ # Keep the history of downloaded nzb-files (days).
777
+ #
778
+ # After download and post-processing the items are added to history where
779
+ # their status can be checked and they can be post-processed again if
780
+ # necessary.
781
+ #
782
+ # After expiring of defined period:
783
+ #
784
+ # If option <DupeCheck> is active the items become hidden and the amount
785
+ # of data kept is significantly reduced (for better performance), only
786
+ # fields necessary for duplicate check are kept. The item remains in the
787
+ # hidden history (forever);
788
+ #
789
+ # If option <DupeCheck> is NOT active the items are removed from history.
790
+ #
791
+ # When a failed item is removed from history or become hidden all downloaded
792
+ # files of that item are deleted from disk.
793
+ #
794
+ # Value "0" disables history. Duplicate check will not work.
795
+ KeepHistory=30
796
+
797
+ # Keep the history of outdated feed items (days).
798
+ #
799
+ # After fetching of an RSS feed the information about included items (nzb-files)
800
+ # is saved to disk. This allows to detect new items on next fetch. Feed
801
+ # providers update RSS feeds constantly. Since the feed length is limited
802
+ # (usually 100 items or less) the old items get pushed away by new
803
+ # ones. When an item is not present in the feed anymore it's not necessary
804
+ # to keep the information about this item on the disk.
805
+ #
806
+ # If option is set to "0", the outdated items are deleted from history
807
+ # immediately.
808
+ #
809
+ # Otherwise the items are held in the history for defined number of
810
+ # days. Keeping of items for few days helps in situations when feed provider
811
+ # has technical issues and may response with empty feeds (or with missing
812
+ # items). When the technical issue is fixed the items may reappear in the
813
+ # feed causing the program to re-download items if they were not found in
814
+ # the feed history.
815
+ FeedHistory=7
816
+
817
+ ##############################################################################
818
+ ### CONNECTION ###
819
+
820
+ # How many retries should be attempted if a download error occurs (0-99).
821
+ #
822
+ # If download fails because of incomplete or damaged article or due to
823
+ # CRC-error the program tries to re-download the article from the same
824
+ # news server as many times as defined in this option. If all attempts fail
825
+ # the program tries another news server.
826
+ #
827
+ # If download fails because of "article or group not found error" the
828
+ # program tries another news server without retrying on the failed server.
829
+ ArticleRetries=3
830
+
831
+ # Article retry interval (seconds).
832
+ #
833
+ # If download of article fails because of interrupted connection
834
+ # the server is temporary blocked until the retry interval expires.
835
+ ArticleInterval=10
836
+
837
+ # Connection timeout for article downloading (seconds).
838
+ ArticleTimeout=60
839
+
840
+ # Number of download attempts for URL fetching (0-99).
841
+ #
842
+ # If fetching of nzb-file via URL or fetching of RSS feed fails another
843
+ # attempt is made after the retry interval (option <UrlInterval>).
844
+ UrlRetries=3
845
+
846
+ # URL fetching retry interval (seconds).
847
+ #
848
+ # If fetching of nzb-file via URL or fetching of RSS feed fails another
849
+ # attempt is made after the retry interval.
850
+ UrlInterval=10
851
+
852
+ # Connection timeout for URL fetching (seconds).
853
+ #
854
+ # Connection timeout when fetching nzb-files via URLs and fetching RSS feeds.
855
+ UrlTimeout=60
856
+
857
+ # Timeout for incoming connections (seconds).
858
+ #
859
+ # Set timeout for connections from clients (web-browsers and API clients).
860
+ RemoteTimeout=90
861
+
862
+ # Set the maximum download rate on program start (kilobytes/sec).
863
+ #
864
+ # The download rate can be changed later in web-interface or via remote calls.
865
+ #
866
+ # Value "0" means no speed control.
867
+ DownloadRate=0
868
+
869
+ # Maximum number of simultaneous connections for nzb URL downloads (0-999).
870
+ #
871
+ # When NZB-files are added to queue via URL, the program downloads them
872
+ # from the specified URL. The option limits the maximal number of connections
873
+ # used for this purpose, when multiple URLs were added at the same time.
874
+ UrlConnections=4
875
+
876
+ # Force URL-downloads even if download queue is paused (yes, no).
877
+ #
878
+ # If option is active the URL-downloads (such as appending of nzb-files
879
+ # via URL or fetching of RSS feeds and nzb-files from feeds) are performed
880
+ # even if download is in paused state.
881
+ UrlForce=yes
882
+
883
+ # Monthly download volume quota (megabytes).
884
+ #
885
+ # During download the quota is constantly monitored and the downloading
886
+ # is automatically stopped if the limit is reached. Once the next billing month
887
+ # starts the "quota reached"-status is automatically lifted and the downloading
888
+ # continues.
889
+ #
890
+ # Downloads with force-priority are processed regardless of quota status.
891
+ #
892
+ # Value "0" disables monthly quota check.
893
+ MonthlyQuota=0
894
+
895
+ # Day of month when the monthly quota starts (1-31).
896
+ QuotaStartDay=1
897
+
898
+ # Daily download volume quota (megabytes).
899
+ #
900
+ # See option <MonthlyQuota> for details.
901
+ #
902
+ # Value "0" disables daily quota check.
903
+ DailyQuota=0
904
+
905
+
906
+ ##############################################################################
907
+ ### LOGGING ###
908
+
909
+ # How to use log file (none, append, reset, rotate).
910
+ #
911
+ # none - do not write into log file;
912
+ # append - append to the existing log file or create it;
913
+ # reset - delete existing log file on program start and create a new one;
914
+ # rotate - create new log file for each day, delete old files,
915
+ # see option <RotateLog>.
916
+ WriteLog=append
917
+
918
+ # Log file rotation period (days).
919
+ #
920
+ # Defines how long to keep old log-files, when log rotation is active
921
+ # (option <WriteLog> is set to "rotate").
922
+ RotateLog=3
923
+
924
+ # How error messages must be printed (screen, log, both, none).
925
+ ErrorTarget=both
926
+
927
+ # How warning messages must be printed (screen, log, both, none).
928
+ WarningTarget=both
929
+
930
+ # How info messages must be printed (screen, log, both, none).
931
+ InfoTarget=both
932
+
933
+ # How detail messages must be printed (screen, log, both, none).
934
+ DetailTarget=log
935
+
936
+ # How debug messages must be printed (screen, log, both, none).
937
+ #
938
+ # Debug-messages can be printed only if the program was compiled in
939
+ # debug-mode: "./configure --enable-debug".
940
+ DebugTarget=log
941
+
942
+ # Number of messages stored in screen buffer (messages).
943
+ LogBuffer=1000
944
+
945
+ # Create log for each downloaded nzb-file (yes, no).
946
+ #
947
+ # The messages are saved for each download separately and can be viewed
948
+ # at any time in download details dialog or history details dialog.
949
+ NzbLog=yes
950
+
951
+ # Print call stack trace into log on program crash (Linux and Windows) (yes, no).
952
+ #
953
+ # Call stack traces are very helpful for debugging. Call stack traces can be
954
+ # printed only when the program was compiled in debug mode.
955
+ CrashTrace=yes
956
+
957
+ # Save memory dump into disk on program crash (Linux only) (yes, no).
958
+ #
959
+ # Memory dumps (core-files) are very helpful for debugging, especially if
960
+ # they were produced by the program compiled in debug mode.
961
+ #
962
+ # NOTE: Memory dumps may contain sensitive data, like your login/password
963
+ # to news-server etc.
964
+ CrashDump=no
965
+
966
+ # Local time correction (hours or minutes).
967
+ #
968
+ # The option allows to adjust timestamps when converting system time to
969
+ # local time and vice versa. The conversion is used when printing messages
970
+ # to the log-file and by option "TaskX.Time" in the scheduler settings.
971
+ #
972
+ # The option is usually not needed if the time zone is set up correctly.
973
+ # However, sometimes, especially when using a binary compiled on another
974
+ # platform (cross-compiling) the conversion between system and local time
975
+ # may not work properly and requires adjustment.
976
+ #
977
+ # Values in the range -24..+24 are interpreted as hours, other values as minutes.
978
+ # Example 1: set time correction to one hour: TimeCorrection=1;
979
+ # Example 2: set time correction to one hour and a half: TimeCorrection=90.
980
+ TimeCorrection=0
981
+
982
+
983
+ ##############################################################################
984
+ ### DISPLAY (TERMINAL) ###
985
+
986
+ # Set screen-outputmode (loggable, colored, curses).
987
+ #
988
+ # loggable - only messages will be printed to standard output;
989
+ # colored - prints messages (with simple coloring for messages categories)
990
+ # and download progress info; uses escape-sequences to move cursor;
991
+ # curses - advanced interactive interface with the ability to edit
992
+ # download queue and various output option.
993
+ OutputMode=curses
994
+
995
+ # Shows NZB-Filename in file list in curses-outputmode (yes, no).
996
+ #
997
+ # This option controls the initial state of curses-frontend,
998
+ # it can be switched on/off in run-time with Z-key.
999
+ CursesNzbName=yes
1000
+
1001
+ # Show files in groups (NZB-files) in queue list in curses-outputmode (yes, no).
1002
+ #
1003
+ # This option controls the initial state of curses-frontend,
1004
+ # it can be switched on/off in run-time with G-key.
1005
+ CursesGroup=no
1006
+
1007
+ # Show timestamps in message list in curses-outputmode (yes, no).
1008
+ #
1009
+ # This option controls the initial state of curses-frontend,
1010
+ # it can be switched on/off in run-time with T-key.
1011
+ CursesTime=no
1012
+
1013
+ # Update interval for Frontend-output in console mode or remote client
1014
+ # mode (milliseconds).
1015
+ #
1016
+ # Min value 25. Bigger values reduce CPU usage (especially in curses-outputmode)
1017
+ # and network traffic in remote-client mode.
1018
+ UpdateInterval=200
1019
+
1020
+
1021
+ ##############################################################################
1022
+ ### SCHEDULER ###
1023
+
1024
+ # Time to execute the command (HH:MM).
1025
+ #
1026
+ # Multiple comma-separated values are accepted.
1027
+ # An asterisk placed in the hours location will run task every hour (e. g. "*:00").
1028
+ # An asterisk without minutes will run task at program startup (e. g. "*").
1029
+ #
1030
+ # Examples: "08:00", "00:00,06:00,12:00,18:00", "*:00", "*,*:00,*:30".
1031
+ #
1032
+ # NOTE: Also see option <TimeCorrection>.
1033
+ #Task1.Time=08:00
1034
+
1035
+ # Week days to execute the command (1-7).
1036
+ #
1037
+ # Comma separated list of week days numbers.
1038
+ # 1 is Monday.
1039
+ # Character '-' may be used to define ranges.
1040
+ #
1041
+ # Examples: "1-7", "1-5", "5,6", "1-5, 7".
1042
+ #Task1.WeekDays=1-7
1043
+
1044
+ # Command to be executed (PauseDownload, UnpauseDownload, PausePostProcess,
1045
+ # UnpausePostProcess, PauseScan, UnpauseScan, DownloadRate, Script, Process,
1046
+ # ActivateServer, DeactivateServer, FetchFeed).
1047
+ #
1048
+ # Possible commands:
1049
+ # PauseDownload - pause download;
1050
+ # UnpauseDownload - resume download;
1051
+ # PausePostProcess - pause post-processing;
1052
+ # UnpausePostProcess - resume post-processing;
1053
+ # PauseScan - pause scan of incoming nzb-directory;
1054
+ # UnpauseScan - resume scan of incoming nzb-directory;
1055
+ # DownloadRate - set download rate limit;
1056
+ # Script - execute one or multiple scheduler scripts. The scripts
1057
+ # must be written specially for NZBGet;
1058
+ # Process - execute an external (any) program;
1059
+ # ActivateServer - activate news-server;
1060
+ # DeactivateServer - deactivate news-server;
1061
+ # FetchFeed - fetch RSS feed.
1062
+ #
1063
+ # On start the program checks all tasks and determines current state
1064
+ # for download-pause, scan-pause, download-rate and active servers.
1065
+ #Task1.Command=PauseDownload
1066
+
1067
+ # Parameters for the command if needed.
1068
+ #
1069
+ # Some scheduler commands require additional parameters:
1070
+ # DownloadRate - download rate limit to be set (kilobytes/sec).
1071
+ # Example: 1000.
1072
+ # NOTE: use value "0" to disable download limit (unlimited speed).
1073
+ # Script - list of scheduler scripts to execute. The scripts in the
1074
+ # list must be separated with commas or semicolons. All
1075
+ # scripts must be stored in directory set by option
1076
+ # <ScriptDir> and paths relative to <ScriptDir> must be
1077
+ # entered here. For developer documentation visit
1078
+ # http://nzbget.net/extension-scripts;
1079
+ # Process - path to the program to execute and its parameters.
1080
+ # Example: /home/user/fetch.sh.
1081
+ # If filename or any parameter contains spaces it
1082
+ # must be surrounded with single quotation
1083
+ # marks. If filename/parameter contains single quotation marks,
1084
+ # each of them must be replaced (escaped) with two single quotation
1085
+ # marks and the resulting filename/parameter must be
1086
+ # surrounded with single quotation marks.
1087
+ # Example: '/home/user/download/my scripts/task process.sh' 'world''s fun'.
1088
+ # In this example one parameter (world's fun) is passed
1089
+ # to the script (task process.sh).
1090
+ # ActivateServer - comma separated list of news server ids or server names.
1091
+ # Example: 1,3.
1092
+ # Example: my news server 1, my news server 2.
1093
+ # NOTE: server names should not have commas.
1094
+ # DeactivateServer - see ActivateServer.
1095
+ # FetchFeed - comma separated list of RSS feed ids or feed names.
1096
+ # Example: 1,3.
1097
+ # Example: bookmarks feed, another feed.
1098
+ # NOTE: feed names should not have commas.
1099
+ # NOTE: use feed id "0" to fetch all feeds.
1100
+ #Task1.Param=
1101
+
1102
+ #Task2.Time=20:00
1103
+ #Task2.WeekDays=1-7
1104
+ #Task2.Command=UnpauseDownload
1105
+ #Task2.Param=
1106
+
1107
+
1108
+ ##############################################################################
1109
+ ### CHECK AND REPAIR ###
1110
+
1111
+ # Check CRC of downloaded and decoded articles (yes, no).
1112
+ #
1113
+ # Normally this option should be enabled for better detecting of download
1114
+ # errors and for quick par-verification (option <ParQuick>).
1115
+ CrcCheck=yes
1116
+
1117
+ # Whether and how par-verification must be performed (auto, always, force, manual).
1118
+ #
1119
+ # Auto - par-check is performed when needed. One par2-file is always
1120
+ # downloaded. Additional par2-files are downloaded if needed
1121
+ # for repair. Repair is performed if the option <ParRepair>
1122
+ # is enabled;
1123
+ # Always - check every download (even undamaged). One par2-file is
1124
+ # always downloaded. Additional par2-files are downloaded
1125
+ # if needed for repair. Repair is performed if the option
1126
+ # <ParRepair> is enabled;
1127
+ # Force - force par-check for every download (even undamaged). All
1128
+ # par2-files are always downloaded. Repair is performed if
1129
+ # the option <ParRepair> is enabled;
1130
+ # Manual - par-check is skipped. One par2-file is always
1131
+ # downloaded. If a damaged download is detected, all
1132
+ # par2-files are downloaded but neither par-check nor par-repair
1133
+ # take place. The download can be then repaired manually,
1134
+ # eventually on another faster computer.
1135
+ ParCheck=auto
1136
+
1137
+ # Automatic par-repair after par-verification (yes, no).
1138
+ #
1139
+ # If option <ParCheck> is set to "Auto" or "Force" this option defines
1140
+ # if the download must be repaired when needed. The option can be
1141
+ # disabled if a computer does not have enough CPU power, since repairing
1142
+ # may consume too many resources and time on a slow computer.
1143
+ ParRepair=yes
1144
+
1145
+ # What files should be scanned during par-verification (limited, extended,
1146
+ # full, dupe).
1147
+ #
1148
+ # Limited - scan only files belonging to par-set;
1149
+ # Extended - scan files belonging to par-set first, scan other files until
1150
+ # all missing files are found;
1151
+ # Full - scan all files in destination directory. Can be very time
1152
+ # consuming but may sometimes repair where Limited and Extended fail;
1153
+ # Dupe - scan files belonging to par-set first, scan other files until
1154
+ # repair is possible. Even files from other duplicate-downloads
1155
+ # are scanned. Can be very time consuming but brings best results.
1156
+ ParScan=extended
1157
+
1158
+ # Quick file verification during par-check (yes, no).
1159
+ #
1160
+ # If the option is active the files are quickly verified using
1161
+ # checksums calculated during download; quick verification is very fast
1162
+ # because it doesn't require the reading of files from disk, NZBGet
1163
+ # knows checksums of downloaded files and quickly compares them with
1164
+ # checksums stored in the par-file.
1165
+ #
1166
+ # If the option is disabled the files are verified as usual. That's
1167
+ # slow. Use this if the quick verification doesn't work properly.
1168
+ ParQuick=yes
1169
+
1170
+ # Memory limit for par-repair buffer (megabytes).
1171
+ #
1172
+ # Set the amount of RAM that the par-checker may use during repair. Having
1173
+ # the buffer as big as the total size of all damaged blocks allows for
1174
+ # the optimal repair speed. The option sets the maximum buffer size, the
1175
+ # allocated buffer can be smaller.
1176
+ #
1177
+ # If you have a lot of RAM set the option to few hundreds (MB) for the
1178
+ # best repair performance.
1179
+ ParBuffer=100
1180
+
1181
+ # Number of threads to use during par-repair (0-99).
1182
+ #
1183
+ # On multi-core CPUs for the best speed set the option to the number of
1184
+ # logical cores (physical cores + hyper-threading units). If you want
1185
+ # to utilize the CPU to 100% you may need to add one or two additional threads
1186
+ # to compensate for wait intervals used for thread synchronization.
1187
+ #
1188
+ # On single-core CPUs use only one thread.
1189
+ #
1190
+ # Set to '0' to automatically use all available CPU cores (may not
1191
+ # work on old or exotic platforms).
1192
+ ParThreads=0
1193
+
1194
+ # Files to ignore during par-check.
1195
+ #
1196
+ # List of file extensions, file names or file masks to ignore by
1197
+ # par-rename and par-check. The entries must be separated with
1198
+ # commas.
1199
+ #
1200
+ # The entries must be separated with commas. The entries can be file
1201
+ # extensions, file names or file masks containing wildcard
1202
+ # characters * and ?.
1203
+ #
1204
+ # If par-rename or par-check detect missing or damaged files they
1205
+ # will ignore files matching this option and will not initiate
1206
+ # repair. This avoids time costing repair for unimportant files.
1207
+ #
1208
+ # Example: .sfv, .nzb, .nfo
1209
+ ParIgnoreExt=.sfv, .nzb, .nfo
1210
+
1211
+ # Check for renamed and missing files using par-files (yes, no).
1212
+ #
1213
+ # Par-rename restores original file names using information stored
1214
+ # in par2-files. It also detects missing files (files listed in
1215
+ # par2-files but not present on disk). When enabled the par-rename is
1216
+ # performed as the first step of post-processing for every nzb-file.
1217
+ #
1218
+ # Par-rename is very fast and is highly recommended, especially if
1219
+ # unpack is disabled.
1220
+ ParRename=yes
1221
+
1222
+ # Check for renamed rar-files (yes, no).
1223
+ #
1224
+ # Rar-rename restores original file names using information stored
1225
+ # in rar-files. When enabled the rar-rename is performed as one of the
1226
+ # first steps of post-processing for every nzb-file.
1227
+ #
1228
+ # Rar-rename is useful for downloads not having par2-files or for
1229
+ # downloads those files were renamed before creating par2-files. In
1230
+ # both cases par-rename (option <ParRename>) can't rename files
1231
+ # and the rar-rename makes it possible to unpack downloads which
1232
+ # would fail otherwise.
1233
+ RarRename=yes
1234
+
1235
+ # Directly rename files during downloading (yes, no).
1236
+ #
1237
+ # This is similar to par-renaming (option <ParRename>) but the files
1238
+ # are renamed during downloading instead of post-processing stage. This
1239
+ # requires some tricky handling of files and works only for healthy
1240
+ # downloads.
1241
+ DirectRename=yes
1242
+
1243
+ # What to do if download health drops below critical health (delete, park,
1244
+ # pause, none).
1245
+ #
1246
+ # Delete - delete nzb-file from queue, also delete already downloaded files;
1247
+ # Park - move nzb-file to history, keep already downloaded files. Commands
1248
+ # "Download remaining files" and "Retry failed articles" are available
1249
+ # for this nzb;
1250
+ # Pause - pause nzb-file;
1251
+ # None - do nothing (continue download).
1252
+ #
1253
+ # NOTE: For automatic duplicate handling option must be set to "Delete", "Park"
1254
+ # or "None". If it is set to "Pause" you will need to manually move another
1255
+ # duplicate from history to queue. See also option <DupeCheck>.
1256
+ #
1257
+ # NOTE: When option <ParScan> is set to "Dupe" the park-action is performed
1258
+ # only if article completion is below 10% (empirical threshold). This is to
1259
+ # improve efficiency of dupe par scan mode.
1260
+ HealthCheck=park
1261
+
1262
+ # Maximum allowed time for par-repair (minutes).
1263
+ #
1264
+ # If you use NZBGet on a very slow computer like NAS-device, it may be good to
1265
+ # limit the time allowed for par-repair. NZBGet calculates the estimated time
1266
+ # required for par-repair. If the estimated value exceeds the limit defined
1267
+ # here, NZBGet cancels the repair.
1268
+ #
1269
+ # To avoid a false cancellation NZBGet compares the estimated time with
1270
+ # <ParTimeLimit> after the first 5 minutes of repairing, when the calculated
1271
+ # estimated time is more or less accurate. But in a case if <ParTimeLimit> is
1272
+ # set to a value smaller than 5 minutes, the comparison is made after the first
1273
+ # whole minute.
1274
+ #
1275
+ # Value "0" means unlimited.
1276
+ #
1277
+ # NOTE: The option limits only the time required for repairing. It doesn't
1278
+ # affect the first stage of parcheck - verification of files. However, the
1279
+ # verification speed is constant, it doesn't depend on files integrity and
1280
+ # therefore it is not necessary to limit the time needed for the first stage.
1281
+ ParTimeLimit=0
1282
+
1283
+ # Pause download queue during check/repair (yes, no).
1284
+ #
1285
+ # Enable the option to give CPU more time for par-check/repair. That helps
1286
+ # to speed up check/repair on slow CPUs with fast connection (e.g. NAS-devices).
1287
+ #
1288
+ # NOTE: If parchecker needs additional par-files it temporarily unpauses
1289
+ # the queue.
1290
+ #
1291
+ # NOTE: See also options <ScriptPauseQueue> and <UnpackPauseQueue>.
1292
+ ParPauseQueue=no
1293
+
1294
+
1295
+ ##############################################################################
1296
+ ### UNPACK ###
1297
+
1298
+ # Unpack downloaded nzb-files (yes, no).
1299
+ #
1300
+ # Each download (nzb-file) has a post-processing parameter "Unpack". The option
1301
+ # <Unpack> is the default value assigned to this pp-parameter of the download
1302
+ # when it is added to queue.
1303
+ #
1304
+ # When nzb-file is added to queue it can have a category assigned to it. In this
1305
+ # case the option <CategoryX.Unpack> overrides the global option <Unpack>.
1306
+ #
1307
+ # If the download is damaged and could not be repaired using par-files
1308
+ # the unpacking is not performed.
1309
+ #
1310
+ # If the option <ParCheck> is set to "Auto" the program tries to unpack
1311
+ # downloaded files first. If the unpacking fails the par-check/repair
1312
+ # is performed and the unpack is executed again.
1313
+ Unpack=yes
1314
+
1315
+ # Directly unpack files during downloading (yes, no).
1316
+ #
1317
+ # When active the files are unpacked during downloading instead of post-processing
1318
+ # stage. This works only for healthy downloads. Damaged downloads are unpacked
1319
+ # as usual during post-processing stage after par-repair.
1320
+ #
1321
+ # NOTE: This option requires unpack to be enabled in general via option <Unpack>.
1322
+ # NOTE: For best results also activate option <DirectRename> and option <ReorderFiles>.
1323
+ DirectUnpack=yes
1324
+
1325
+ # Pause download queue during unpack (yes, no).
1326
+ #
1327
+ # Enable the option to give CPU more time for unpacking. That helps
1328
+ # to speed up unpacking on slow CPUs.
1329
+ #
1330
+ # NOTE: See also options <ParPauseQueue> and <ScriptPauseQueue>.
1331
+ UnpackPauseQueue=no
1332
+
1333
+ # Delete archive files after successful unpacking (yes, no).
1334
+ UnpackCleanupDisk=yes
1335
+
1336
+ # Full path to unrar executable.
1337
+ #
1338
+ # Example: /usr/bin/unrar.
1339
+ #
1340
+ # The option can also contain extra switches to pass to unrar. To the
1341
+ # here defined command line NZBGet adds the following switches:
1342
+ # x -y -p- -o+ *.rar ./_unpack/
1343
+ #
1344
+ # Switch "x" is added only if neither "x" nor "e" were defined in
1345
+ # the option (this allows you to use switch "e" instead of "x"). switch
1346
+ # "-o+" is added only if neither "-o+" nor "-o-" were defined
1347
+ # in the command line. All other parameters are always added. Parameter
1348
+ # "-p-" is replaced with "-ppassword" if a password is set for nzb-file.
1349
+ #
1350
+ # Examples:
1351
+ # 1) ignore file attributes (permissions):
1352
+ # /usr/bin/unrar x -ai;
1353
+ # 2) decrease priority of unrar-process:
1354
+ # nice -n 19 unrar.
1355
+ #
1356
+ # For other useful switches refer to unrar documentation.
1357
+ #
1358
+ # If unrar is in your PATH you may leave the path part and set only
1359
+ # the executable name ("unrar" on POSIX or "unrar.exe" on Windows).
1360
+ UnrarCmd=${AppDir}/unrar
1361
+
1362
+ # Full path to 7-Zip executable.
1363
+ #
1364
+ # Example: /usr/bin/7z.
1365
+ #
1366
+ # Similar to option <UnrarCmd> this option can also include extra switches.
1367
+ #
1368
+ # If 7-Zip binary is in your PATH you may leave the path part and set only
1369
+ # the executable name ("7z" or "7za" on POSIX or "7z.exe" on Windows).
1370
+ SevenZipCmd=${AppDir}/7za
1371
+
1372
+ # Files to delete after successful download.
1373
+ #
1374
+ # List of file extensions, file names or file masks to delete after
1375
+ # successful download. If either unpack or par-check fail the cleanup is
1376
+ # not performed. If download doesn't contain archives nor par-files
1377
+ # the cleanup is performed if the health is 100%. If parameter "unpack"
1378
+ # is disabled for that nzb-file the cleanup isn't performed.
1379
+ #
1380
+ # The entries must be separated with commas. The entries can be file
1381
+ # extensions, file names or file masks containing wildcard
1382
+ # characters * and ?.
1383
+ #
1384
+ # Example: .par2, .sfv
1385
+ ExtCleanupDisk=.par2, .sfv
1386
+
1387
+ # Files to ignore during unpack.
1388
+ #
1389
+ # List of file extensions to ignore when unpacking archives or renaming
1390
+ # obfuscated archive files. The entries must be separated with commas.
1391
+ #
1392
+ # Archive files with non standard extensions belong to one of two categories: they
1393
+ # are either obfuscated files or files with special purposes which should not be
1394
+ # unpacked. List the files of second type here to avoid attempts to unpack them.
1395
+ #
1396
+ # This option has effect on two post-processing stages.
1397
+ #
1398
+ # First, during rar-rename (option <RarRename>) rar-files with non-standard
1399
+ # extensions are renamed back to rar-extension, which is required for successful
1400
+ # unpacking. Files with extensions listed here will not be renamed.
1401
+ #
1402
+ # Second, if during unpack no rar-files are found but instead rar-archives
1403
+ # with non-rar extensions are found the unpack fails. For files listed here
1404
+ # no unpack failure occurs and download is considered not having archive
1405
+ # files and be successful.
1406
+ #
1407
+ # Example: .cbr
1408
+ UnpackIgnoreExt=.cbr
1409
+
1410
+ # Path to file containing unpack passwords.
1411
+ #
1412
+ # If the option is set the program will try all passwords from the file
1413
+ # when unpacking the archives. The file must be a text file containing
1414
+ # one password per line.
1415
+ #
1416
+ # If an nzb-file has a defined password (in the post-processing settings)
1417
+ # then the password-file is not used for that nzb-file.
1418
+ #
1419
+ # NOTE: Trying multiple passwords is a time consuming task. Whenever possible
1420
+ # passwords should be set per nzb-file in their post-processing settings.
1421
+ UnpackPassFile=
1422
+
1423
+
1424
+ ##############################################################################
1425
+ ### EXTENSION SCRIPTS ###
1426
+
1427
+ # List of active extension scripts for new downloads.
1428
+ #
1429
+ # Extension scripts associated with nzb-files are executed before, during
1430
+ # or after download as defined by script developer.
1431
+ #
1432
+ # Each download (nzb-file) has its own list of extension scripts; the list
1433
+ # can be viewed and changed in web-interface in download details dialog or
1434
+ # via API. Option <Extensions> sets defaults for new downloads; changes
1435
+ # to option <Extensions> do not affect downloads which are already in queue.
1436
+ #
1437
+ # When nzb-file is added to queue it can have a category assigned to it. In this
1438
+ # case option <CategoryX.Extensions> (if not empty) have precedence and
1439
+ # defines the scripts for that nzb-file; consequently global option <Extensions>
1440
+ # has no effect for that nzb-file.
1441
+ #
1442
+ # Certain extensions work globally for the whole program instead of
1443
+ # per-nzb basis. Such extensions are activated once and cannot be overriden
1444
+ # per category or per nzb.
1445
+ #
1446
+ # The scripts in the list must be separated with commas or semicolons. All
1447
+ # scripts must be stored in directory set by option <ScriptDir> and
1448
+ # paths relative to <ScriptDir> must be entered here.
1449
+ #
1450
+ # Example: Cleanup.sh, Move.sh, EMail.py.
1451
+ #
1452
+ # NOTE: The script execution order is controlled by option <ScriptOrder>, not
1453
+ # by their order in option <Extensions>.
1454
+ #
1455
+ # NOTE: For the list of interesting extension scripts see
1456
+ # http://nzbget.net/catalog-of-extension-scripts.
1457
+ #
1458
+ # NOTE: For developer documentation visit http://nzbget.net/extension-scripts.
1459
+ Extensions=filebot.sh
1460
+
1461
+ # Execution order for extension scripts.
1462
+ #
1463
+ # If you assign multiple scripts to one nzb-file, they are executed in the
1464
+ # order defined by this option.
1465
+ #
1466
+ # The scripts in the list must be separated with commas or semicolons. All
1467
+ # scripts must be stored in directory set by option <ScriptDir> and
1468
+ # paths relative to <ScriptDir> must be entered here.
1469
+ #
1470
+ # Example: Cleanup.sh, Move.sh.
1471
+ ScriptOrder=
1472
+
1473
+ # Pause download queue during executing of postprocess-script (yes, no).
1474
+ #
1475
+ # Enable the option to give CPU more time for postprocess-script. That helps
1476
+ # to speed up postprocess on slow CPUs with fast connection (e.g. NAS-devices).
1477
+ #
1478
+ # NOTE: See also options <ParPauseQueue> and <UnpackPauseQueue>.
1479
+ ScriptPauseQueue=no
1480
+
1481
+ # Shell overrides for script interpreters.
1482
+ #
1483
+ # By default extension scripts are executed as normal programs. The system finds
1484
+ # an associated interpreter automatically. If for some reason that doesn't work
1485
+ # properly you can provide shell overrides here.
1486
+ #
1487
+ # This option contains a comma separated list of shell overrides per
1488
+ # file extension. A shell override consists of file extension (starting with
1489
+ # dot) followed by equal sign and the full path to script interpreter.
1490
+ #
1491
+ # Example: .py=/usr/bin/python2;.py3=/usr/bin/python3;.sh=/usr/bin/bash.
1492
+ ShellOverride=
1493
+
1494
+ # Minimum interval between queue events (seconds).
1495
+ #
1496
+ # Extension scripts can opt-in for progress notifcations during
1497
+ # download. For downloads containing many small files the events can
1498
+ # be fired way too often increasing load on the system due to script
1499
+ # execution.
1500
+ #
1501
+ # This option allows to reduce the number of calls of scripts by
1502
+ # skipping "file-downloaded"-events if the previous call for the same
1503
+ # download (nzb-file) were performed a short time ago (as defined by
1504
+ # the option).
1505
+ #
1506
+ # Value "-1" disables "file-downloaded"-events. Scripts are still
1507
+ # notified on other events (such as "nzb-added" or "nzb-downloaded").
1508
+ EventInterval=0