grimmory-self-hosted-library

grimmory-self-hosted-library — an installable skill for AI agents.

By reason-machines · 1,258 installs

npx skills add reason-machines/trending-skills --skill grimmory-self-hosted-library

Source repository · Upstream listing

Grimmory Self Hosted Library Manager Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection. Grimmory is a self hosted application (successor to BookLore) for managing your entire book collection. It supports EPUBs, PDFs, MOBIs, AZW/AZW3, and comics (CBZ/CBR/CB7), with a built in browser reader, annotations, Kobo/OPDS sync, KOReader progress sync, metadata enrichment, and multi user support. Installation Requirements Docker and Docker Compose Step 1: Create .env Step 2: Create docker compose.yml Step 3: Launch Open http://localhost:6060 and create your admin account. Volume Layout Environment Variables Reference Variable Description Default USER ID UID for the app process 1000 GROUP ID GID for the app process 1000 TZ Timezone string Etc/UTC DATABASE URL JDBC connection string required DATABASE USERNAME DB username required DATABASE PASSWORD DB password required DISK TYPE LOCAL or NETWORK LOCAL Supported Book Formats Category Formats eBooks EPUB, MOBI, AZW, AZW3 Documents PDF Comics CBZ, CBR, CB7 BookDrop (Auto Import) Drop files into ./bookdrop/ on your host. Grimmory watches the folder, extracts metadata from Google Books and Open Library, and queues books for review. Flow: 1. Watch — Grimmory monitors /bookdrop continuously 2. Detect — New files are picked up and parsed 3. Enrich — Metadata fetched from Google Books / Open Library 4. Import — Review in UI, adjust if needed, confirm import Volume mapping required in docker compose.yml : Network Storage Mode For NFS, SMB, or other network mounted filesystems, set DISK TYPE=NETWORK . This disables destructive UI operations (delete, move, rename) to protect shared mounts while keeping reading, metadata, and sync fully functional. Java Backend — Key Patterns Grimmory is a Java application (Spring Boot + MariaDB). When contributing or extending: Project Structure (typical Spring Boot layout) REST API — Base Path All endpoints are under /api/v1/ : Example: Querying the API with Java (OkHttp) Example: Spring Boot Controller Pattern Example: JPA Entity Pattern Example: Service with Metadata Enrichment OPDS Integration Connect any OPDS compatible reader app (Kybook, Chunky, Moon+ Reader, etc.) using: Authenticate with your Grimmory username and password when prompted. Kobo / KOReader Sync Kobo : Connect via the device sync feature in Grimmory settings. The app exposes a sync endpoint compatible with Kobo's API. KOReader : Configure KOReader's sync plugin to point to your Grimmory instance URL. Multi User & Authentication Local Authentication Create users from the admin panel at http://localhost:6060. Each user has isolated shelves, reading progress, and preferences. OIDC Authentication Configure via environment variables (refer to full documentation at https://grimmory.org/docs/getting started for OIDC specific variables such as OIDC ISSUER URI , OIDC CLIENT ID , OIDC CLIENT SECRET ). Building from Source Common Docker Commands Troubleshooting Container won't start — DB connection refused Books not appearing after BookDrop Permission denied on ./books or ./data OPDS not accessible from reader app High memory usage MariaDB and Grimmory together require at minimum ~512 MB RAM. For large libraries (10k+ books), allocate 1–2 GB. Metadata not enriching Google Books and Open Library require outbound internet access from the container. Verify DNS and network: Contributing Before opening a pull request: 1. Open an issue and get maintainer approval 2. Include screenshots/video proof and pasted test output 3. Follow backend and frontend conventions in CONTRIBUTING.md 4. AI assisted code is allowed but you must run, test, and understand every line Links GitHub : https://github.com/grimmory tools/grimmory Docker Hub : https://hub.docker.com/r/grimmory/grimmory GHCR : ghcr.io/grimmory tools/grimmory Discord : https://discord.gg/FwqHeFWk Docs : https://grimmory.org/docs/getting started License : AGPL 3.0