Software-update: Grimmory 3.4.1

Grimmory logo Versies 3.4.0 en 3.4.1 van Grimmory is uitgekomen, een eenvoudig met Docker op te zetten selfhosted webapplicatie voor het organiseren en beheren van e-boeken. Het kan boeken al dan niet dynamisch organiseren op bijvoorbeeld schrijver of genre, metadata ophalen vanuit meerdere bronnen en biedt ondersteuning voor meerdere gebruikers. Er is een ingebakken lezer voor pdf's, epubs en comics, en boeken kunnen ook naar Kobo-e-readers worden gedownload of gelezen worden op een mobiel apparaat met daarop een leesapp die OPDS ondersteunt. In deze uitgave zijn de volgende veranderingen en verbeteringen in aangebracht:

Grimmory 3.4.1

Bug Fixes
  • angular: remove service worker api passthrough (#2638) (539a0e0)
  • ui: modernise the metadata searcher component (#2631) (ba47aaa)
Performance
  • tests: use Angular recommended test config (#2632) (6bfb345)
Refactors
  • epub: make some epub extraction / creation code reusable (#2629) (e6ac37f)

Grimmory 3.40

Features
  • kobo: show full Kobo API path in sync settings (#2381) (852da00)
  • metadata: initial implementation of Apple Books source (#1780) (0660e1d)
  • metadata: initial implementation of OpenLibrary source (#1764) (9b38a09)
  • opds: add pagination to authors / series navigation (#2315) (7d768a2)
  • api: add paged books sorts for author name / author sort name (#2497) (f44a7df)
  • api: add paged books random sort (#2451) (0e67549)
Bug Fixes
  • amazon: emit external Amazon URL with region domain (#2330) (4c160cd)
  • archive: handle non-utf8 ZIP headers with apache ZIP library (#2520) (0279c15)
  • cbx: use natural compare that handles numbers larger than int (#2536) (11224eb)
  • douban: ignore extraneous data when parsing window data (#2516) (d75c128)
  • epub: add applebooks ID to template content.opf (#2616) (a1b6233)
  • epub: handle duplicate zip entries when extracting epubs (#2526) (75495bf)
  • epub: handle literal + when decoding URLs (#2618) (ce18ce3)
  • epub: no flattening when sorting opf document elements (#2611) (0b887ae)
  • epub: support cover edits when media type changes (#2281) (828806a)
  • epub: support cover edits when no previous cover (#2278) (e963f28)
  • goodreads: refresh goodreads public api token (#2477) (8362a90)
  • i18n: use correct value for magicshelf.metadataFields.applebooksId (#2609) (0ca234d)
  • library: refresh file size and hash for in-place modified files (#2490) (7a9cd31)
  • magic-shelf: keep rule value on compatible operator change (#2604) (81a40fd)
  • sidecar files are not written when only cover changes (#2567) (b3574cc)
  • ui: add show/hide toggle to admin change-password dialog (#2612) (7163761)
  • ui: logout needs access token before clearing session (#2340) (bc5616f)
  • ui: use OIDC client secret if included in settings (#2557) (32b6384)
Refactors
  • api: add missing book facet fields (#2469) (e60bb82)
  • api: add missing book sorts (#2554) (14b45a2)
  • cbx: only use ArchiveService for CBXReaderService (#2395) (a88982b)
  • googbooks: move google books key to HTTP header (#2533) (ed8f7b3)
  • i18n: combine localization files into one JSON per language (#2498) (9bf8ca9)
  • metadata: normalize metadata provider language fields to BCP-47 (#2259) (8c24d69)
  • move OIDC client secret to non public app setting (#2558) (53abc8b)
  • settings: simplify app settings service (#2527) (1ee9b51)
Chores
  • api: add extra XSS protections to SVG icon endpoint (#2433) (f8c45da)
  • api: drop unused LibraryScanListener (#2434) (e0c8118)
  • backend: remove unused LoginRateLimitService (#2613) (9d239c3)
  • i18n: migrate translations from Weblate to Crowdin (#2568) (41c612c)
  • settings: drop installation service / migrations (#2528) (703c7f2)
Dependencies
  • deps: update to Angular 22 and adopt APIs (#2468) (3cc29fc)
  • deps: bump @tanstack/angular-query-experimental from 5.101.4 to 5.102.8 (#2552) (3724713)
  • deps: bump @vitest/coverage-v8 from 4.1.10 to 5.0.0 (#2547) (4a066e7)
  • deps: bump actions/checkout from 7.0.0 to 7.0.1 (#2503) (bceed0b)
  • deps: bump actions/setup-java from 5.6.0 to 5.7.0 (#2449) (5c535d8)
  • deps: bump actions/setup-java from 5.7.0 to 6.0.0 (#2504) (3725ca7)
  • deps: bump angular to 21.2.20 (#2420) (9960d2c)
  • deps: bump com.twelvemonkeys.imageio from 3.14.0 to 3.15.0 in /backend (#2587) (d528d2f)
  • deps: bump conventional-changelog-conventionalcommits from 10.3.0 to 10.4.0 in the release-tooling group (#2439) (8ff933c)
  • deps: bump docker/login-action from 4.4.0 to 4.6.0 (#2444) (ea80fc0)
  • deps: bump docker/setup-buildx-action from 4.2.0 to 4.3.0 (#2441) (9f6754f)
  • deps: bump docker/setup-qemu-action from 4.2.0 to 4.3.0 (#2549) (ac68da1)
  • deps: bump eslint from 10.8.1 to 10.9.1 (#2542) (464a259)
  • deps: bump github/codeql-action/analyze from 4.37.3 to 4.37.7 (#2443) (b34ac76)
  • deps: bump gradle-wrapper from 9.7.0 to 9.7.1 in /backend in the gradle-dependencies group (#2442) (b941693)
  • deps: bump lucide-static from 1.31.0 to 1.40.0 (#2546) (7d4662b)
  • deps: bump markdown-it from 15.0.0 to 15.0.1 (#2544) (5186f85)
  • deps: bump org.flywaydb:flyway-mysql from 13.3.0 to 13.5.0 in /backend (#2548) (f8d6f75)
  • deps: bump org.freemarker:freemarker from 2.3.34 to 2.3.35 in /backend (#2541) (3432178)
  • deps: bump org.hibernate.orm from 7.4.6.Final to 7.4.7.Final in /backend (#2550) (9fdf424)
  • deps: bump org.jsoup:jsoup from 1.23.1 to 1.23.2 in /backend (#2545) (e7b8482)
  • deps: bump org.projectlombok:lombok from 1.18.46 to 1.18.48 in /backend (#2543) (e40f067)
  • deps: bump org.springdoc:springdoc-openapi-starter-webmvc-api from 3.1.0 to 3.1.1 in /backend (#2583) (83dede5)
  • deps: bump taiki-e/install-action from 2.85.4 to 2.86.4 (#2440) (60e59e4)
  • deps: bump taiki-e/install-action from 2.86.4 to 2.87.1 (#2502) (ffa9440)
  • deps: bump taiki-e/install-action from 2.87.1 to 2.87.5 (#2551) (2b843fa)
  • deps: bump the codeql group with 2 updates (#2501) (4e28fde)
  • deps: bump the gradle-dependencies group in /backend with 3 updates (#2474) (aa58069)
  • deps: bump uuid from 14.0.1 to 14.0.2 (#2540) (14454c3)
  • deps: bump vitest from 4.1.10 to 4.1.11 (#2578) (1d2c5a8)
  • deps: update pnpm to 11.19.0 and pnpm/action-setup to 6.0.10 (#2445) (fcc4d9c)
  • pin angular table to v8 (#2422) (1766f87)
Documentation CI Build
  • properly include LICENSE information during docker builds (#2579) (76bd4e8)

Grimmory

Versienummer 3.4.1
Releasestatus Final
Besturingssystemen Platformonafhankelijk
Website Grimmory
Download https://github.com/grimmory-tools/grimmory/releases/tag/v3.4.1
Licentietype GPL

Door Bart van Klaveren

Downloads en Best Buy Guide

15-09-2026 • 12:00

10

Submitter: belkin

Bron: Grimmory

Update-historie

Reacties (10)

Sorteer op:

Weergave:

Ik zag toevallig hier over na te denken. Ik gebruik nu Calibreweb Automated maar dat ziet er niet zo mooi / slick uit als Grimmory en Bookorbit. Tussen de laatste 2 twijfel ik dus...
Ik ben ook steeds aan het stoeien met Calibre, maar krijg dat niet zo fijn aan het werk. Het voordeel van deze (en wss Bookorbit) zal zijn dat ze makkelijker via web te benaderen zijn en er misschien ook nog wat mooier uit zien?

Ik ga deze in ieder geval proberen te installeren op mijn Synology. Ik ben benieuwd hoe makkelijk dat is....
Ben zelf recent overgegaan op BookOrbit, en daarvoor Calibreweb Automated. BookOrbit bevalt erg goed tot dusver, en zeker de Koreader integratie/plugin maakt het voor mij al de moeite waard. Switchen tussen beide was niet zo veel werk met Docker. Heb BookOrbit (tijdelijk) read-only toegang tot mijn CWA volume gegeven, en dat werkt prima.

Zowel Grimmory en BookOrbit lijken zich nog vrij snel te ontwikkelen. BookOrbit focussed meer op zowel ebooks als audioboeken, en de nadruk ligt nu meer de geïntegreerde boek request functionaliteit (wat mij wel aanspreekt).
BookOrbit ziet er inderdaad erg goed uit!
Ik heb docker en een PocketBook en denk dat ik Grimmory en BookOrbit parallel ga inzetten. Samen mit BookBridge schijn je zonder problemen beide applicaties te kunnen syncen met KOReader. BookBride kan ook Calibre-Web Automated en Audiobookshelf syncen.

PocketBook Era (KOReader Plugin) → BookBridge → Grimmory + BookOrbit

[Reactie gewijzigd door Jacco011 op 15 september 2026 13:24]

Je wil misschien nog even kijken naar CalibreWebAutomated-NextGen. Een fork van CWA. Released meerdere malen per week om de vele bugs in CWA te fixen, maar het leunt wel enorm op AI. Desalniettemin heeft het voor mij wel zaken gefixt waar ik echt last van had.

Ondanks het aantal releases update ik het wel maar in keer in de zoveel tijd.
Ben helemaal fan van selfhosted. En als je er over nadenkt is dit toch ook wel fijner: je kiest een server en je kiest een client. Je hebt nog enigszins invloed. Anders dan -in dit geval- Kobo of Apple Books waar je vast in zit...
Iemand ervaring met het hosten van Grimmory? Ik wil een stabiel platform. Een losse MariaDB instantie onderhouden en zorgen dat de versie compatible blijft met Grimmory trekt mij weinig aan.
In docker draaien: https://grimmory.org/docs/installation/
De voorbeeld docker-compose trekt ook gelijk een MariaDB container binnen en is zo te zien vastgepint op 11.4.5, dus die zal niet zomaar updaten. Al is de Grimmory container zelf wel de :latest tag, dus theoretisch gezien zou er een nieuwere Grimmory kunnen uitkomen die (bij een toekomstige update) een hogere MariaDB vereist. Maar zoiets zou dan wel in de changelog staan en/of de laatste docker-compose file bekijken.

Maar zo spannend is het mijn inziens niet, het is niet dat er vaak braking changes in database servers zitten. Zelf draai ik een losse MariaDB container (Voor meerdere services) met de tag mariadb:latest en dat is momenteel 12.3.3 en werkt allemaal prima.

Gebruik Grimmory pas sinds kort, en gebruik het (Naast Kobo sync API) tevens als vervanger voor Goodreads.
Maar zo spannend is het mijn inziens niet
In principe niet spannend, maar er gaat een moment zijn dat het stuk gaat, en dan mogen we 't weer fixen op een moment dat niet uitkomt. Ik heb toch liever dat "de applicatie" lekker standalone draait. In zakelijke productieomgevingen is het een ander verhaal, dan hou ik de boel wel in de gaten. In m'n dagelijks (privé) leven heb ik daar iets minder behoefte aan.

Het is precies die `:latest` tag die zo'n geurtje heeft. Ja, ik zou dan Grimmory kunnen pinnen op een versie, maar dan heb ik daar weer maintenance aan.

/rant

Ik wil zeker niet teveel afgeven op een project als dit. Het ziet er super uit, maar juist die "het gaat misschien wel eens stuk" weerhoudt mensen zo van Home Assistant (wat ik overigens met plezier host)

[Reactie gewijzigd door Quipeace op 15 september 2026 18:19]

Ik ben van Grimmory afgestapt. Niet omdat het een slechte server is, integendeel (draaide het altijd probleemloos in een docker container op mijn Qnap nas), maar ik stuitte op heel veel problemen om deze goed werkend te krijgen in proxmox, waar ik recent op over ben gegaan omdat mijn nas bijna door zijn hoeven ging vanwege de vele containers en apps.

Omdat er (helaas voor een onbepaalde tijd) geen usercommunity installatie scripts meer voor Grimmory worden ontwikkeld heb ik die uit noodzaak volledig handmatig in een docker, en die weer in in een lxc container, moeten installeren. Maar na een dag klooien om mijn externe disks met boeken via nfs te kunnen benaderen, wat ook niet makkelijk verliep, en uiteindelijk alles aan de praat had (dacht ik), kreeg ik geen enkele boek open en had ik non stop een spinner in mijn web browser die eindeloos een boek probeerde te laden.

Na een goede dag frustratie en zonder enig resultaat proberen heb ik uiteindelijk zowel Book Orbit als Audiobookshelf geïnstalleerd. Puur om een vergelijking tussen die twee te maken. Hiervoor worden wel usercommunity scripts ontwikkeld. Book Orbit is min of meer een cloon van Grimmory, en Audiobookshelf weer een ultra light versie die daarvan is afgeleid heb ik het idee. Na een half uurtje installeren had ik en de apps in hun eigen native lxc draaien, kon ik direct mijn shares mounten, bibliotheken aanmaken en boeken lezen.

Het enige minpunt die deze twee apps hebben, is dat android devices (getest met een galaxy tab s10 en galaxy s25 mobiel) niet goed omgaan met http waar de proxmox containers standaard op draaien, dus met specifieke boekformaten (zoals pdf) kreeg ik, of 401 unauthorized issues als deze uit Book Orbit worden opgehaald (session cookies die anders door android worden afgehandeld dus Book Orbit ziet dit als een security incident en dropt de verbinding), of tcp socket timeouts na ongeveer 8 seconden als een boek van Audiobookshelf af komt (vanwege agressieve netwerk throttling door android in de background)

Heb dit uiteindelijk opgelost door tailscale op de proxmox host te installeren, dus nu kan ik met mijn mobiele apparaten overal probleemloos bij en werkt het super.

Om te kunnen reageren moet je ingelogd zijn