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.
| Book | Status | Visibility | Pages | Rendered | Indexed | Readers | Views | Actions |
|---|---|---|---|---|---|---|---|---|
| Loading… | ||||||||
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.