grimoire
Self-hosted organizer for your TTRPG content and campaigns
What is it?
What it is
Grimoire is a self‑hosted web application that lets tabletop RPG enthusiasts organize, search, and read their PDF collections from any device. It provides a responsive UI built with React, a FastAPI backend, and a Docker‑ready deployment stack.
Why it exists
Many TTRPG groups keep thousands of PDFs, maps, tokens, and audio files scattered across drives or cloud services. Grimoire centralizes this content, automatically detects folder structures, indexes every page for instant full‑text search, renders PDFs as images for fast mobile viewing, and offers features like tagging, bookmarks, favorites, campaigns, and an OPDS feed for e‑readers. It solves the pain of manual cataloging, slow search, and fragmented access to game resources.
Who should use it
Game MastersPlayers with large digital collectionsTech-savvy users who can manage Docker
Who should avoid it
Casual usersThose who prefer simple apps without self-hostingUsers who don't need OCR or campaign features
How it works
A quick walkthrough in plain English
How grimoire works
Step 1 of 3
You interact with it
Open grimoire, send a request, or connect it to your stack.
Features
Advantages
- Easy deployment with Docker or local Python/Node stack
- Self‑hosted with full control over data and privacy
- Open source GPL‑3.0 license
- Rich feature set for tabletop RPG libraries in one app
- Fast full‑text search with OCR for scanned books
- Responsive UI works on mobile and desktop
- Built‑in campaign management and wiki
- Supports multiple media types (PDF, images, audio)
- Tagging and bulk actions simplify library organization
- OPDS support enables e‑reader integration
- OpenID Connect allows single‑sign‑on
- Healthcheck and rate limiting improve reliability and security
- Valkey cache speeds up page rendering
- Automatic database migrations ease upgrades
- Per‑user feeds and explicit content filtering enhance user experience
Disadvantages
- Requires Docker or a Python/Node environment to run
- Large libraries can take minutes to index and OCR can be CPU‑intensive
- No native PDF editing or annotation beyond bookmarks
- No built‑in cloud sync; relies on external file storage
- Library organization must follow a strict folder structure
- Requires manual backup of data volume for persistence
- Limited to supported audio formats; no streaming services
- Open source GPL license may restrict commercial use
- No mobile app; relies on web UI
- No automatic updates; must pull new Docker image or rebuild
Installation
docker
docker pull hunterreadca/grimoire:latest
native
Run Grimoire directly on the host with Python 3.12+ and Node 20+, following the instructions in docs/running-from-source.md
compose
cp docs/docker/docker-compose.yml docker-compose.yml # Edit docker-compose.yml: set SECRET_KEY and volume paths # Then start the service docker compose up -d
FAQ
What is grimoire?
grimoire is an open-source project licensed under GPL-3.0.
What language is grimoire built with?
Primary language: JavaScript.
Is it free to use?
Yes. Licensed under GPL-3.0. Check the license for commercial use.
Featured in Videos
YouTube tutorials and walkthroughs for grimoire
Alternatives
Similar projects ranked by category, topics, and text overlap.