Files
bookhoard/docs/admin/libraries.md
T
John O'Keefe 3e55ddd88a docs(admin): libraries page — the definition surface, with backlinks
Fifth admin page and the section's hub. Documents library creation
(name/description/type — type fixed at creation, verified in the edit
modal), the card's Force Rescan + Manage controls, and the full panel:
folders (add via Browse or manual path, shallow per-folder scan,
removal-unregisters-only semantics verified in DeleteLibraryFolder —
files and items untouched, archive lifecycle governs the rest; podcast
roots refuse hand scans), User Access visibility checkboxes (default-
allow, DB-enforced), the processing-issues link, and Delete Library's
exact destructive scope (records + reading data gone, files on disk
untouched). Ends with the at-a-glance scan table linking scanning.md.
Adds the Libraries backlinks to the processing-issues and archived
pages. Glossary gains Create Library, Manage, Edit Details, Delete
Library, View Archived, Purge Archived Now, Browse, User Access.
2026-11-02 14:11:25 -05:00

4.4 KiB

Libraries

The Libraries page is where a Bookhoard instance is defined: what libraries exist, which folders on the server they read from, who can see them, and how they get scanned. Everything here is admin-only — regular users just see the result.

Creating a library

Create Library opens a modal with three fields:

  • Library Name (required) — what users see in their sidebar
  • Description (optional)
  • Library Type (required) — book, comic, audiobook, podcast; the type drives how the scanner parses files and how the reader presents them

A library with no folders can't scan — add at least one folder (below) before expecting anything to appear in it.

The library card

Each library renders as a card: name, description, a type chip, a folder count, and two controls:

  • Force Rescan — starts a force scan of this one library: every file re-read and re-extracted, hashes recomputed. This is the heavy, thorough pass (Scanning explains force vs. shallow and when each is worth it). If a scan is already running for the library, the click tells you instead of stacking a second one.
  • Manage — opens the library's panel, where everything else lives.

The library panel

Folders

Folders are the server-side directories the scanner walks. Each one shows its path with two icon actions: Scan this folder (a shallow scan scoped to just that folder's subtree — the quick "I just dropped files here" button) and remove-from-library (confirm-guarded).

Adding one: type a path, or click Browse to walk the server's filesystem in a modal (up with .., into a folder by clicking it, Select This Folder to fill the input), then Add.

Two things worth knowing:

  • Removing a folder only unregisters it. The mapping is deleted; files on disk and existing catalog items are untouched. If no remaining folder covers those files, later library-wide scans will treat them as missing — the Archived Items lifecycle takes over, history kept.
  • Podcast download folders are feed-managed. The scanner refuses to scan them by hand; the podcast feed system owns their contents.

User Access

One checkbox per user. Checked (the default) means the library is visible to them; unchecking hides it from their browsing, apps, and OPDS — enforced in the database, so every listing obeys. Hiding a library never destroys anything: the user simply can't see it.

Processing issues

When the library has items the scanner couldn't process, a link here shows the count and leads to its Processing Issues page.

Edit Details and Delete Library

Edit Details changes the name and description. The library type is fixed at creation — it can't be edited later.

Delete Library is the destructive one, and its confirm dialog says precisely what it does:

  • Permanently removed, no archive or undo: the library, its folder mappings, and all book records — with their reading progress, highlights, notes, bookmarks, and ratings.
  • Not touched: media files on disk. Delete the library, keep the files; re-create the library later and scan them fresh (with empty reading history).

The archived banner

When any library has archived (missing-file) items, this page shows a banner with the total count and two shortcuts: View Archived (the Archived Items page) and Purge Archived Now (the same permanent wipe the archived page's Purge All Archived performs).

Every scan entry point, at a glance

Where Control Kind
This page, library card Force Rescan Force, this library
This page, folder row Scan this folder Shallow, that folder
Admin dashboard Force Rescan All Libraries Force, everything
Settings → Scanning Auto-Scan Shallow, automatic
A book's page Rescan Force, that one item

Full semantics for each: Scanning.