# ── Libraseer ───────────────────────────────────────────────────────────────── STACKARR_NAME=Libraseer STACKARR_ACCENT=#d98c3f # STACKARR_URL_BASE=stackarr # set if served under a subpath / reverse proxy # STACKARR_ADMINS=jon # ABS usernames that are Libraseer admins (comma-sep) # ── Audiobookshelf (login + library + listening history) ───────────────────── # Users sign in with their own ABS credentials. The admin token is for # server-wide reads (libraries, items) and scans. ABS_URL=http://host.docker.internal:13378 ABS_ADMIN_TOKEN= # ABS_LIBRARY_IDS= # limit to specific library ids (comma-sep); blank = all book libs # ── Library format ─────────────────────────────────────────────────────────── # Which media this install surfaces: audiobook (default) | ebook | both. # Also switchable in Settings → General. Default = unchanged audiobook behaviour. STACKARR_FORMATS=audiobook # ── eBook sources (optional — only when STACKARR_FORMATS is ebook or both) ──── # Kavita: API key (Kavita → your account → Settings → Account → API Key). # Gives the eBook library + reliable per-user reading progress. # KAVITA_URL=http://host.docker.internal:5001 # KAVITA_API_KEY= # Calibre-Web: OPDS feed (its built-in user/password). Library + read/unread # flag only — NOT true per-user reading progress (Libraseer warns about this). # CALIBREWEB_URL=http://host.docker.internal:8083 # CALIBREWEB_USER= # CALIBREWEB_PASS= # ── Shelfmark acquisition ─────────────────────────────────────────────────── # Configure only the formats enabled by STACKARR_FORMATS. These values can also # be saved and tested from Settings → Connections. SHELFMARK_EBOOK_URL=http://host.docker.internal:8086 SHELFMARK_EBOOK_USERNAME= SHELFMARK_EBOOK_PASSWORD= SHELFMARK_EBOOK_SOURCE=prowlarr SHELFMARK_AUDIOBOOK_URL=http://host.docker.internal:8084 SHELFMARK_AUDIOBOOK_USERNAME= SHELFMARK_AUDIOBOOK_PASSWORD= SHELFMARK_AUDIOBOOK_SOURCE=audiobookbay # Used only after a person presses "Try Prowlarr / Usenet" on a failed request. SHELFMARK_AUDIOBOOK_FALLBACK_SOURCE=prowlarr # ── Metadata (no key, no AI) ───────────────────────────────────────────────── AUDIBLE_DOMAIN=com # com, co.uk, com.au, de… # AUDNEXUS_REGION=us # GOOGLE_BOOKS_KEY= # optional — only raises Google Books rate limits # ── Suggestion engine ──────────────────────────────────────────────────────── STACKARR_SUGGEST=true STACKARR_SUGGEST_HOURS=24 STACKARR_SUGGEST_MAX=12 STACKARR_RATING_FLOOR=4.0 STACKARR_MAX_PER_AUTHOR=2 # weights (tune without code changes) # W_SERIES_NEXT=10 # W_SIMS_FREQ=8 # W_AUTHOR_BACKLIST=6 # W_NARRATOR=4 # W_RATING=3 # POPULARITY_DAMPEN=0.15 # ── Import lists (optional — your "Want to Read" shelves seed suggestions) ──── # GOODREADS_RSS=https://www.goodreads.com/review/list_rss/USERID?shelf=to-read # HARDCOVER_TOKEN= # ── Notifications (all optional) ───────────────────────────────────────────── # Email digest (bring your own SMTP) SMTP_HOST= SMTP_PORT=587 SMTP_USER= SMTP_PASS= SMTP_FROM= SMTP_TO= # Discord webhook digest DISCORD_WEBHOOK= # Optional interactive Discord bot (you supply these; no AI) # DISCORD_BOT_TOKEN= # DISCORD_CHANNEL_ID= # Apprise targets (Telegram, ntfy, Pushover, etc. — comma-separated apprise URLs) # APPRISE_URLS= # ── Security (recommended for any network-exposed deployment) ──────────────── # STACKARR_HTTPS=true # set when behind HTTPS -> Secure cookies # STACKARR_FRAME_ANCESTORS='self' # who may iframe Libraseer; set your nzb360/dashboard origin to embed