Book Engine

Every PDF 4AB publishes: what it is, who may read it, and what it is doing. Storage lives outside the web root — nothing here is reachable by guessing a URL.

Library

BookStatusVisibilityPages RenderedIndexed ReadersViewsActions
Loading…

Adding a book

Uploading through a browser would hand PHP a 90 MB POST and a two-minute render inside a web request. The pipeline runs from the shell instead, where it can take as long as it needs and its output is readable:

php /usr/local/lib/4ab/books/ingest.php --add /path/book.pdf --title "Title" --author "Aniket Bhardwaj" --isbn "..." --category chemistry --visibility public

php /usr/local/lib/4ab/books/ingest.php --process <slug> → --publish <slug>

Re-rendering an existing book (after a new scan, or a DPI change) is the Process button in the table — it runs the same pipeline detached and this page follows it. --status <slug> prints what is on disk versus what the database believes.

Book