Software-update: Grimmory 3.4.1

Grimmory logo Versies 3.4.0 en 3.4.1 van Grimmory zijn 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

19

Submitter: belkin

Bron: Grimmory

Update-historie

Reacties (19)

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...
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]

Ik ben benieuwd naar je ervaringen; heeft bookorbit goede metadata providers ? zag dat kobo ondersteund wordt.

Zie inderdaad dat er veel releases zijn bij beide en beide evenveel github sterren hebben, ben benieuwd hoe die ontwikkeling gaat.
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....
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.
Wat ik doe is mijn boeken toevoegen in Calibre omdat die wel een uitgebreide bibliotheek heeft om metadata op te halen.

Daarna exporteer ik ze in een map dat Grimmory in de gaten houdt om ze te importeren in Grimmory. Zo staat alle metadata ook correct.

Grimmory kan nog niet goed overweg met nederlandstalige boeken omdat hij niet op Bol kan zoeken.
Voor de mensen die Bookorbit overwegen/overgestapt zijn (@sjenk, @Jacco011). De developer van Bookorbit blijkt de developer te zijn van Booklore maar dan onder een andere identiteit, zie https://www.reddit.com/r/selfhosted/comments/1w9h1b4/comment/p8adm61/?ref=selfh.st (las ik vandaag via de selfh.st newsletter). Dus jullie zijn gewaarschuwd :P
Zat zelf ook met een schuin oog te kijken, maar nu blijf ik voorlopig zeker bij Grimmory.

[Reactie gewijzigd door GerhardBurger op 18 september 2026 15:34]

Dank voor de toevoeging! Bijzondere wending weer dit
Dankje voor het seintje. Jeetje, er is geen maand zonder controverse. M'n hobby wordt steeds meer werk. 😅
Ik zie voorlopig ook niet direct iets problematisch aan BookOrbit zelf.

BookLore controversie:
  1. Discussies over de kwaliteit van de code, waarbij gebruikers vermoedden dat grote delen met AI (vibe coding) waren geschreven.
  2. Conflicten over de open-source licentie en plannen om het project anders te monetiseren, wat leidde tot onvrede bij bijdragers.
  3. Klachten dat bijdragen van de community werden genegeerd, terwijl vergelijkbare functionaliteit later door de ontwikkelaar zelf werd toegevoegd.
  4. Discussies over telemetry, paywalls en het beheer van het project.
  5. Uiteindelijk werd BookLore in maart 2026 door hem zelf stopgezet/verwijderd, waarna Grimmory als community-fork ontstond. Dit kreeg ik inderdaad ook mee. Was niet fraai.

[Reactie gewijzigd door Jacco011 op 21 september 2026 10:28]

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]

Tja, alle software die onderhevig is aan updates zal wel eens stuk gaan na een update.

Of het nu een standalone applicatie is waarbij een datamigratie stukloopt of dat het een database daarnaast gebruikt. Databases zijn in mijn ervaring vaak zelfs nog stabieler dan de software die er gebruik van maakt.
Zeker, het kan altijd mis lopen, ik heb ook alle vertrouwen in de individuele systemen. Home Assistant, bijvoorbeeld, heeft grote stappen gemaakt om betrouwbaarder te zijn over tijd. MariaDB zal een van de meest betrouwbare stukjes software zijn. Echter, als de software ontkoppeld is, is de kans dat update in package A de functionaliteit sloopt in B simpelweg groter. Het is simpelweg een extra variabele.

Precies Home Assistant draai ik in een VM met HAOS. Een enkele image waarmee "iemand anders" een deel van het onderhoud op zich neemt. Als ik zelf verantwoordelijk was geweest voor b.v. Python updates of databasemigraties zou het voor mij een stuk minder aantrekkelijk zijn (en zou ik het vast al een aantal keer gesloopt hebben).

Daarom geef ik de voorkeur aan "all-in-one" oplossingen zoals HA biedt. Ik hoef niet altijd 100% de controle, soms liever niet.
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...
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.
De developer van Bookorbit is de originele developer van Booklore, zie GerhardBurger in 'Grimmory 3.4.1', dus je bent gewaarschuwd ;)
(en Audiobookshelf is dus veel ouder dan Bookorbit :) )

Als je trouwens LXCs gebruikt kan je beter je shares bind mounten, dat is een stuk makkelijker, alleen id mapping moet je dan een keer uitvogelen. Voor VMs kan je dan NFS gebruiken, en als je zfs gebruikt kan dat heel makkelijk via `zfs set sharenfs`.
Ok, bedankt voor de waarschuwing :) Ik had werkelijk nog geen idee. En wat proxmox en LXCs betreft ben ik nog een echte greenhorn (Ik heb de server nog maar net een week in huis en opgetuigd) dus ik moet nog heel veel leren/uitvogelen.
edit:
1e) De reddit post even doorgelezen. Wat een drama allemaal en valt die Book Orbit developer door de mand. Ik ga maar weer eens poging wagen om Grimmory weer aan de praat te krijgen.

2e) Ik heb Grimmory weer helemaal aan de praat gekregen in proxmox. The fout zat zowel in de yaml als in de lxc config. Met een beetje hulp van configs/settings checken door AI werkt het nu wel super, en heb ik Book Orbit weer opgeruimd!
Bedankt nogmaals! :)

[Reactie gewijzigd door 6Pac op 20 september 2026 01:20]


Om te kunnen reageren moet je ingelogd zijn