quadlets: - name: lazylibrarian type: container image: localhost/lazylibrarian:latest volumes: - "{{ config_root }}/lazylibrarian:/config:Z" - "{{ download_root }}/htpc:/downloads:z" - "{{ media_root }}/ebooks:/ebooks:Z" env: TZ: "{{ tz }}" command: ["/venv/bin/python", "/app/LazyLibrarian.py", "--nolaunch", "--port", "{{ lazylibrarian_port | default('5299') }}", "--datadir=/config"] restart_policy: on-failure configs: - path: "{{ config_root }}/lazylibrarian/lazylibrarian.cfg" template: | [GENERAL] homepage = eBooks auth_type = FORM displaylength = -1 series_tab = False config_tab_num = 2 toggles = False launch_browser = False imp_preflang = en, en-GB, en-US, eng, English, Unknown date_lang = en_GB.UTF-8 destination_copy = True ebook_dir = {{ lazylibrarian_ebook_dir | default('/ebooks') }} download_dir = {{ lazylibrarian_download_dir | default('/downloads/complete/lazylibrarian') }} ebook_type = epub, mobi, pdf, azw3 audiobook_type = mp3, m4b, opus, ogg [API] api_enabled = True api_key = {{ lazylibrarian_api_key }} api_ro_key = {{ lazylibrarian_api_ro_key }} book_api = GoodReads ol_api = True gb_api = {{ lazylibrarian_gb_api | default('') }} gb_country = US [WEBSERVER] http_user = {{ lazylibrarian_http_user | default('lazylibrarianuser') }} http_pass = {{ lazylibrarian_http_pass }} [LOGGING] logdir = {{ lazylibrarian_logdir | default('/config/Logs') }} detaileduilog = True [IMPORTER] multi_source = True [TELEMETRY] server_id = {{ lazylibrarian_server_id | default('') }} [SABNZBD] sab_host = {{ lazylibrarian_sab_host | default('localhost') }} sab_port = {{ lazylibrarian_sab_port | default(8082) }} sab_user = {{ sabnzbd_username | default('sabnzbduser') }} sab_pass = {{ sabnzbd_password }} sab_api = {{ sabnzbd_api_key }} sab_cat = {{ lazylibrarian_sab_cat | default('lazylibrarian') }} [USENET] nzb_downloader_sabnzbd = True [TORRENT] tor_downloader_qbittorrent = True seed_wait = False [QBITTORRENT] qbittorrent_host = {{ lazylibrarian_qbit_host | default('localhost') }} qbittorrent_port = {{ lazylibrarian_qbit_port | default(8082) }} qbittorrent_user = {{ qbittorrent_username | default('qbittorrentuser') }} qbittorrent_pass = {{ qbittorrent_password }} qbittorrent_label = {{ lazylibrarian_qbit_label | default('lazylibrarian') }} [ANNA] anna_key = {{ lazylibrarian_anna_key }} anna = True [POSTPROCESS] ebook_dest_folder = $Author/$Title $$ audiobook_dest_folder = $Author/$Title del_downloadfailed = True [MAGAZINES] mag_tab = False [PROWL] prowl_priority = -2 [PREPROCESS] ebook_wanted_formats = azw3, mobi, epub {% for indexer in lazylibrarian_newznab_indexers | default([]) %} [Newznab_{{ loop.index0 }}] dispname = {{ indexer.name }} enabled = {{ indexer.enabled | default(True) | string }} host = {{ indexer.host }} api = {{ indexer.api }} generalsearch = search bookcat = {{ indexer.bookcat | default('7020') }} {% if indexer.magcat is defined %} magcat = {{ indexer.magcat }} {% endif %} {% if indexer.comiccat is defined %} comiccat = {{ indexer.comiccat }} {% endif %} updated = {{ indexer.updated | default('2026-01-27') }} dlpriority = {{ indexer.dlpriority | default(26) }} {% endfor %} {% for indexer in lazylibrarian_torznab_indexers | default([]) %} [Torznab_{{ loop.index0 }}] dispname = {{ indexer.name }} enabled = {{ indexer.enabled | default(True) | string }} host = {{ indexer.host }} api = {{ indexer.api }} generalsearch = search {% if indexer.bookcat is defined %} bookcat = {{ indexer.bookcat }} {% endif %} {% if indexer.magcat is defined %} magcat = {{ indexer.magcat }} {% endif %} {% if indexer.comiccat is defined %} comiccat = {{ indexer.comiccat }} {% endif %} updated = {{ indexer.updated | default('2026-01-27') }} dlpriority = {{ indexer.dlpriority | default(26) }} seeders = {{ indexer.seeders | default(1) }} {% if indexer.seed_ratio is defined %} seed_ratio = {{ indexer.seed_ratio }} {% endif %} {% endfor %} {% for indexer in lazylibrarian_generic_indexers | default([]) %} [GEN_{{ loop.index0 }}] dispname = {{ indexer.name }} enabled = {{ indexer.enabled | default(True) | string }} host = {{ indexer.host }} search = {{ indexer.search }} {% endfor %}