Skip to content

Introduction

Grimoire is a self-hosted web application for managing your tabletop RPG PDF collection. It runs as a Docker container, mounts your existing library folder, and gives you a clean browser-based UI to browse, search, and read your books from any device on your network.

What it does

  • Organizes your PDFs by game system and category, derived automatically from your folder structure — no manual tagging required to get started
  • Indexes every page of every PDF for full-text search using SQLite FTS5
  • Renders PDF pages server-side as WebP images so the reader is fast even on mobile
  • Tracks maps and tokens alongside books in the same library
  • Supports campaigns, bookmarks, favorites, OPDS feeds, and OpenID Connect authentication

What it does not do

Grimoire is a read-only viewer. It never modifies the files in your library folder. Adding, removing, or reorganizing files is done with whatever tool you prefer — a file manager, Calibre, Filebrowser Quantum, or just your OS. After making changes, trigger a Rescan in the Grimoire UI to pick them up.

Stack

LayerTechnology
BackendFastAPI (async Python 3.12)
DatabaseSQLite with FTS5 full-text search
PDF renderingPyMuPDF → WebP
FrontendReact 18, served by the FastAPI backend
Optional cacheValkey / Redis (page image cache)
AuthJWT + optional OpenID Connect

License

GNU General Public License v3.0. Source on GitHub.

Released under the GNU GPL v3.0 License.