525 lines
15 KiB
YAML
525 lines
15 KiB
YAML
quadlets:
|
|
- name: sabnzbd
|
|
type: build
|
|
image: localhost/sabnzbd:latest
|
|
pull: missing
|
|
format: oci
|
|
force_rm: true
|
|
container_file: |
|
|
FROM {{ alpine_base_image }}
|
|
LABEL maintainer="{{ maintainer }}"
|
|
RUN \
|
|
rm -rf /etc/apk/repositories \
|
|
&& apk add --no-cache \
|
|
-X "{{ alpine_mirror }}/v{{ alpine_base_image.split(':')[-1] }}/main" \
|
|
-X "{{ alpine_mirror }}/v{{ alpine_base_image.split(':')[-1] }}/community" \
|
|
python3 py3-pip git unzip ca-certificates par2cmdline 7zip \
|
|
&& apk add --no-cache --virtual=.build-deps \
|
|
-X "{{ alpine_mirror }}/v{{ alpine_base_image.split(':')[-1] }}/main" \
|
|
-X "{{ alpine_mirror }}/v{{ alpine_base_image.split(':')[-1] }}/community" \
|
|
autoconf automake build-base openssl-dev libffi-dev python3-dev \
|
|
&& apk add --no-cache -X '{{ alpine_mirror }}/v3.14/main' unrar \
|
|
&& git clone --depth 1 --branch master https://github.com/sabnzbd/sabnzbd /app \
|
|
&& python3 -m venv /venv \
|
|
&& . /venv/bin/activate \
|
|
&& pip install --no-cache-dir -r /app/requirements.txt \
|
|
&& apk del --purge .build-deps
|
|
|
|
- name: sabnzbd
|
|
type: container
|
|
image: localhost/sabnzbd:latest
|
|
volumes:
|
|
- "{{ config_root }}/sabnzbd:/config:Z"
|
|
- "{{ download_root }}/htpc:/downloads:z"
|
|
- "{{ monitor_root }}/nzbs:/nzbs:Z"
|
|
env:
|
|
TZ: "{{ tz }}"
|
|
command:
|
|
- "/venv/bin/python"
|
|
- "-OO"
|
|
- "/app/SABnzbd.py"
|
|
- "--config-file=/config/sabnzbd.ini"
|
|
- "--browser=0"
|
|
restart_policy: on-failure
|
|
|
|
configs:
|
|
- path: "{{ config_root }}/sabnzbd/sabnzbd.ini"
|
|
template: |
|
|
__version__ = 19
|
|
__encoding__ = utf-8
|
|
|
|
[misc]
|
|
username = {{ sabnzbd_username | default("admin") }}
|
|
password = {{ sabnzbd_password | default("admin") }}
|
|
host = {{ sabnzbd_host | default("::") }}
|
|
port = {{ sabnzbd_http_port | default("8081") }}
|
|
api_key = {{ sabnzbd_api_key }}
|
|
nzb_key = {{ sabnzbd_nzb_key }}
|
|
download_dir = {{ sabnzbd_download_dir | default("/downloads/incomplete/sabnzbd") }}
|
|
complete_dir = {{ sabnzbd_complete_dir | default("/downloads/complete") }}
|
|
dirscan_dir = {{ sabnzbd_dirscan_dir | default("/nzbs") }}
|
|
web_dir = Glitter
|
|
web_color = Night
|
|
inet_exposure = 4
|
|
cleanup_list = sfv, m3u, nfo
|
|
unwanted_extensions = exe, com
|
|
ignore_samples = 1
|
|
enable_all_par = 1
|
|
new_nzb_on_failure = 1
|
|
replace_dots = 1
|
|
prospective_par_download = 1
|
|
deobfuscate_final_filenames = 1
|
|
direct_unpack = 1
|
|
pause_on_pwrar = 2
|
|
propagation_delay = 0
|
|
top_only = 1
|
|
pre_script = None
|
|
queue_complete = ""
|
|
queue_complete_pers = 0
|
|
bandwidth_perc = 100
|
|
refresh_rate = 1
|
|
interface_settings = '{"dateFormat":"fromNow","extraQueueColumns":["category","age"],"extraHistoryColumns":["size"],"displayCompact":false,"displayFullWidth":false,"confirmDeleteQueue":true,"confirmDeleteHistory":true,"keyboardShortcuts":true}'
|
|
queue_limit = 30
|
|
config_lock = 0
|
|
sched_converted = 0
|
|
notified_new_skin = 2
|
|
direct_unpack_tested = 1
|
|
check_new_rel = 1
|
|
auto_browser = 0
|
|
language = en
|
|
enable_https_verification = 1
|
|
https_port = {{ sabnzbd_https_port | default("9090") }}
|
|
bandwidth_max = 60M
|
|
cache_limit = 1G
|
|
https_cert = {{ sabnzbd_https_cert | default("/config/admin/server.cert") }}
|
|
https_key = {{ sabnzbd_https_key | default("/config/admin/server.key") }}
|
|
https_chain = ""
|
|
enable_https = {{ sabnzbd_enable_https | default(false) | int }}
|
|
permissions = ""
|
|
download_free = ""
|
|
complete_free = ""
|
|
fulldisk_autoresume = 0
|
|
script_dir = ""
|
|
nzb_backup_dir = ""
|
|
admin_dir = admin
|
|
dirscan_speed = 5
|
|
password_file = ""
|
|
log_dir = logs
|
|
max_art_tries = 3
|
|
load_balancing = 2
|
|
sfv_check = 1
|
|
quick_check_ext_ignore = nfo, sfv, srr
|
|
script_can_fail = 0
|
|
enable_recursive = 1
|
|
flat_unpack = 0
|
|
par_option = ""
|
|
pre_check = 0
|
|
nice = ""
|
|
win_process_prio = 3
|
|
ionice = ""
|
|
fail_hopeless_jobs = 1
|
|
fast_fail = 1
|
|
auto_disconnect = 1
|
|
no_dupes = 0
|
|
no_series_dupes = 0
|
|
series_propercheck = 1
|
|
auto_sort = ""
|
|
direct_unpack_threads = 3
|
|
folder_rename = 1
|
|
replace_spaces = 0
|
|
safe_postproc = 1
|
|
pause_on_post_processing = 0
|
|
sanitize_safe = 0
|
|
action_on_unwanted_extensions = 0
|
|
unwanted_extensions_mode = 0
|
|
history_retention = ""
|
|
enable_meta = 1
|
|
quota_size = ""
|
|
quota_day = ""
|
|
quota_resume = 0
|
|
quota_period = m
|
|
rating_enable = 0
|
|
rating_host = ""
|
|
rating_api_key = ""
|
|
rating_filter_enable = 0
|
|
rating_filter_abort_audio = 0
|
|
rating_filter_abort_video = 0
|
|
rating_filter_abort_encrypted = 0
|
|
rating_filter_abort_encrypted_confirm = 0
|
|
rating_filter_abort_spam = 0
|
|
rating_filter_abort_spam_confirm = 0
|
|
rating_filter_abort_downvoted = 0
|
|
rating_filter_abort_keywords = ""
|
|
rating_filter_pause_audio = 0
|
|
rating_filter_pause_video = 0
|
|
rating_filter_pause_encrypted = 0
|
|
rating_filter_pause_encrypted_confirm = 0
|
|
rating_filter_pause_spam = 0
|
|
rating_filter_pause_spam_confirm = 0
|
|
rating_filter_pause_downvoted = 0
|
|
rating_filter_pause_keywords = ""
|
|
enable_tv_sorting = 0
|
|
tv_sort_string = ""
|
|
tv_categories = tv,
|
|
enable_movie_sorting = 0
|
|
movie_sort_string = ""
|
|
movie_sort_extra = -cd%1
|
|
movie_extra_folder = 0
|
|
movie_categories = movies,
|
|
enable_date_sorting = 0
|
|
date_sort_string = ""
|
|
date_categories = tv,
|
|
schedlines = ,
|
|
rss_rate = 60
|
|
ampm = 0
|
|
replace_illegal = 1
|
|
start_paused = 0
|
|
preserve_paused_state = 0
|
|
enable_par_cleanup = 1
|
|
process_unpacked_par2 = 1
|
|
enable_unrar = 1
|
|
enable_unzip = 1
|
|
enable_7zip = 1
|
|
enable_filejoin = 1
|
|
enable_tsjoin = 1
|
|
overwrite_files = 0
|
|
ignore_unrar_dates = 0
|
|
backup_for_duplicates = 1
|
|
empty_postproc = 0
|
|
wait_for_dfolder = 0
|
|
rss_filenames = 0
|
|
api_logging = 1
|
|
html_login = 1
|
|
osx_menu = 1
|
|
osx_speed = 1
|
|
warn_dupl_jobs = 1
|
|
helpful_warnings = 1
|
|
keep_awake = 1
|
|
win_menu = 1
|
|
allow_incomplete_nzb = 0
|
|
enable_broadcast = 1
|
|
ipv6_hosting = 0
|
|
fixed_ports = 1
|
|
api_warnings = 1
|
|
disable_api_key = 0
|
|
no_penalties = 0
|
|
x_frame_options = 1
|
|
allow_old_ssl_tls = 0
|
|
num_decoders = 3
|
|
rss_odd_titles = nzbindex.nl/, nzbindex.com/, nzbclub.com/
|
|
req_completion_rate = 100.2
|
|
selftest_host = self-test.sabnzbd.org
|
|
movie_rename_limit = 100M
|
|
episode_rename_limit = 20M
|
|
size_limit = 0
|
|
show_sysload = 2
|
|
history_limit = 20
|
|
wait_ext_drive = 5
|
|
max_foldername_length = 246
|
|
nomedia_marker = ""
|
|
ipv6_servers = 1
|
|
url_base = /sabnzbd
|
|
host_whitelist = htpc,
|
|
local_ranges = ,
|
|
max_url_retries = 10
|
|
downloader_sleep_time = 10
|
|
ssdp_broadcast_interval = 15
|
|
socks5_proxy_url = ""
|
|
email_server = ""
|
|
email_to = ,
|
|
email_from = ""
|
|
email_account = ""
|
|
email_pwd = ""
|
|
email_endjob = 0
|
|
email_full = 0
|
|
email_dir = ""
|
|
email_rss = 0
|
|
email_cats = *,
|
|
num_simd_decoders = 2
|
|
ext_rename_ignore = ,
|
|
sorters_converted = 1
|
|
backup_dir = ""
|
|
replace_underscores = 0
|
|
tray_icon = 1
|
|
enable_season_sorting = 1
|
|
receive_threads = 2
|
|
switchinterval = 0.005
|
|
end_queue_script = None
|
|
no_smart_dupes = 0
|
|
dupes_propercheck = 1
|
|
history_retention_option = all
|
|
history_retention_number = 1
|
|
enable_multipar = 1
|
|
disable_archive = 0
|
|
ipv6_staging = 0
|
|
verify_xff_header = 0
|
|
config_conversion_version = 4
|
|
disable_par2cmdline = 0
|
|
unrar_parameters = ""
|
|
outgoing_nntp_ip = ""
|
|
|
|
[categories]
|
|
[[*]]
|
|
name = *
|
|
order = 0
|
|
pp = 3
|
|
script = None
|
|
dir = ""
|
|
newzbin = ""
|
|
priority = 0
|
|
[[music]]
|
|
name = music
|
|
order = 0
|
|
pp = ""
|
|
script = Default
|
|
dir = music
|
|
newzbin = music
|
|
priority = -100
|
|
[[tv]]
|
|
name = tv
|
|
order = 0
|
|
pp = ""
|
|
script = Default
|
|
dir = tv
|
|
newzbin = tv
|
|
priority = -100
|
|
[[movies]]
|
|
name = movies
|
|
order = 0
|
|
pp = ""
|
|
script = Default
|
|
dir = movies
|
|
newzbin = "movies, movie"
|
|
priority = -100
|
|
[[radarr]]
|
|
name = radarr
|
|
order = 0
|
|
pp = ""
|
|
script = Default
|
|
dir = radarr
|
|
newzbin = "movies, movie"
|
|
priority = -100
|
|
[[sonarr]]
|
|
name = sonarr
|
|
order = 0
|
|
pp = ""
|
|
script = Default
|
|
dir = sonarr
|
|
newzbin = tv
|
|
priority = -100
|
|
[[other]]
|
|
name = other
|
|
order = 1
|
|
pp = ""
|
|
script = Default
|
|
dir = other
|
|
newzbin = "games, game, other"
|
|
priority = -100
|
|
[[lidarr]]
|
|
name = lidarr
|
|
order = 2
|
|
pp = ""
|
|
script = Default
|
|
dir = lidarr
|
|
newzbin = music
|
|
priority = -100
|
|
[[readarr]]
|
|
name = readarr
|
|
order = 3
|
|
pp = ""
|
|
script = Default
|
|
dir = readarr
|
|
newzbin = ebooks
|
|
priority = -100
|
|
[[lazylibrarian]]
|
|
name = lazylibrarian
|
|
order = 4
|
|
pp = ""
|
|
script = Default
|
|
dir = lazylibrarian
|
|
newzbin = "ebooks, audiobooks"
|
|
priority = -100
|
|
|
|
[servers]
|
|
{% for s in sabnzbd_servers | default([]) %}
|
|
[[{{ s.name }}]]
|
|
name = {{ s.name }}
|
|
displayname = {{ s.displayname | default(s.name) }}
|
|
host = {{ s.host | default(s.name) }}
|
|
port = {{ s.port | default(563) }}
|
|
timeout = {{ s.timeout | default(60) }}
|
|
username = {{ s.username| default('') }}
|
|
password = {{ s.password| default('') }}
|
|
connections = {{ s.connections | default(50) }}
|
|
ssl = {{ s.ssl | default(1) }}
|
|
ssl_verify = {{ s.ssl_verify | default(1) }}
|
|
ssl_ciphers = {{ s.ssl_ciphers | default('""') }}
|
|
enable = {{ s.enable| default(1) }}
|
|
required = {{ s.required| default(0) }}
|
|
optional = {{ s.optional| default(0) }}
|
|
retention = {{ s.retention | default(0) }}
|
|
expire_date = {{ s.expire_date | default('""') }}
|
|
quota = {{ s.quota | default('""') }}
|
|
usage_at_start = {{ s.usage_at_start | default(0) }}
|
|
priority = {{ s.priority| default(0) }}
|
|
notes = {{ s.notes | default('""') }}
|
|
|
|
{% endfor %}
|
|
[logging]
|
|
log_level = 1
|
|
max_log_size = 5242880
|
|
log_backups = 5
|
|
[ncenter]
|
|
ncenter_enable = 0
|
|
ncenter_cats = *,
|
|
ncenter_prio_startup = 1
|
|
ncenter_prio_download = 0
|
|
ncenter_prio_pause_resume = 0
|
|
ncenter_prio_pp = 0
|
|
ncenter_prio_complete = 1
|
|
ncenter_prio_failed = 1
|
|
ncenter_prio_disk_full = 1
|
|
ncenter_prio_new_login = 0
|
|
ncenter_prio_warning = 0
|
|
ncenter_prio_error = 0
|
|
ncenter_prio_queue_done = 1
|
|
ncenter_prio_other = 1
|
|
ncenter_prio_quota = 1
|
|
[acenter]
|
|
acenter_enable = 0
|
|
acenter_cats = *,
|
|
acenter_prio_startup = 0
|
|
acenter_prio_download = 0
|
|
acenter_prio_pause_resume = 0
|
|
acenter_prio_pp = 0
|
|
acenter_prio_complete = 1
|
|
acenter_prio_failed = 1
|
|
acenter_prio_disk_full = 1
|
|
acenter_prio_new_login = 0
|
|
acenter_prio_warning = 0
|
|
acenter_prio_error = 0
|
|
acenter_prio_queue_done = 1
|
|
acenter_prio_other = 1
|
|
acenter_prio_quota = 1
|
|
[ntfosd]
|
|
ntfosd_enable = 1
|
|
ntfosd_cats = *,
|
|
ntfosd_prio_startup = 1
|
|
ntfosd_prio_download = 0
|
|
ntfosd_prio_pause_resume = 0
|
|
ntfosd_prio_pp = 0
|
|
ntfosd_prio_complete = 1
|
|
ntfosd_prio_failed = 1
|
|
ntfosd_prio_disk_full = 1
|
|
ntfosd_prio_new_login = 0
|
|
ntfosd_prio_warning = 0
|
|
ntfosd_prio_error = 0
|
|
ntfosd_prio_queue_done = 1
|
|
ntfosd_prio_other = 1
|
|
ntfosd_prio_quota = 1
|
|
[prowl]
|
|
prowl_enable = 0
|
|
prowl_cats = *,
|
|
prowl_apikey = ""
|
|
prowl_prio_startup = -3
|
|
prowl_prio_download = -3
|
|
prowl_prio_pause_resume = -3
|
|
prowl_prio_pp = -3
|
|
prowl_prio_complete = 0
|
|
prowl_prio_failed = 1
|
|
prowl_prio_disk_full = 1
|
|
prowl_prio_new_login = -3
|
|
prowl_prio_warning = -3
|
|
prowl_prio_error = -3
|
|
prowl_prio_queue_done = 0
|
|
prowl_prio_other = 0
|
|
prowl_prio_quota = 0
|
|
[pushover]
|
|
pushover_token = ""
|
|
pushover_userkey = ""
|
|
pushover_device = ""
|
|
pushover_emergency_expire = 3600
|
|
pushover_emergency_retry = 60
|
|
pushover_enable = 0
|
|
pushover_cats = *,
|
|
pushover_prio_startup = -3
|
|
pushover_prio_download = -2
|
|
pushover_prio_pause_resume = -2
|
|
pushover_prio_pp = -3
|
|
pushover_prio_complete = -1
|
|
pushover_prio_failed = -1
|
|
pushover_prio_disk_full = 1
|
|
pushover_prio_new_login = -3
|
|
pushover_prio_warning = 1
|
|
pushover_prio_error = 1
|
|
pushover_prio_queue_done = -1
|
|
pushover_prio_other = -1
|
|
pushover_prio_quota = -1
|
|
[pushbullet]
|
|
pushbullet_enable = 0
|
|
pushbullet_cats = *,
|
|
pushbullet_apikey = ""
|
|
pushbullet_device = ""
|
|
pushbullet_prio_startup = 0
|
|
pushbullet_prio_download = 0
|
|
pushbullet_prio_pause_resume = 0
|
|
pushbullet_prio_pp = 0
|
|
pushbullet_prio_complete = 1
|
|
pushbullet_prio_failed = 1
|
|
pushbullet_prio_disk_full = 1
|
|
pushbullet_prio_new_login = 0
|
|
pushbullet_prio_warning = 0
|
|
pushbullet_prio_error = 0
|
|
pushbullet_prio_queue_done = 0
|
|
pushbullet_prio_other = 1
|
|
pushbullet_prio_quota = 1
|
|
[nscript]
|
|
nscript_enable = 0
|
|
nscript_cats = *,
|
|
nscript_script = ""
|
|
nscript_parameters = ""
|
|
nscript_prio_startup = 1
|
|
nscript_prio_download = 0
|
|
nscript_prio_pause_resume = 0
|
|
nscript_prio_pp = 0
|
|
nscript_prio_complete = 1
|
|
nscript_prio_failed = 1
|
|
nscript_prio_disk_full = 1
|
|
nscript_prio_new_login = 0
|
|
nscript_prio_warning = 0
|
|
nscript_prio_error = 0
|
|
nscript_prio_queue_done = 1
|
|
nscript_prio_other = 1
|
|
nscript_prio_quota = 1
|
|
[apprise]
|
|
apprise_enable = 0
|
|
apprise_cats = *,
|
|
apprise_urls = ""
|
|
apprise_target_startup = ""
|
|
apprise_target_startup_enable = 0
|
|
apprise_target_download = ""
|
|
apprise_target_download_enable = 0
|
|
apprise_target_pause_resume = ""
|
|
apprise_target_pause_resume_enable = 0
|
|
apprise_target_pp = ""
|
|
apprise_target_pp_enable = 0
|
|
apprise_target_complete = ""
|
|
apprise_target_complete_enable = 1
|
|
apprise_target_failed = ""
|
|
apprise_target_failed_enable = 1
|
|
apprise_target_disk_full = ""
|
|
apprise_target_disk_full_enable = 0
|
|
apprise_target_new_login = ""
|
|
apprise_target_new_login_enable = 1
|
|
apprise_target_warning = ""
|
|
apprise_target_warning_enable = 0
|
|
apprise_target_error = ""
|
|
apprise_target_error_enable = 0
|
|
apprise_target_queue_done = ""
|
|
apprise_target_queue_done_enable = 0
|
|
apprise_target_other = ""
|
|
apprise_target_other_enable = 1
|
|
apprise_target_quota = ""
|
|
apprise_target_quota_enable = 1
|
|
|