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