October 14, 2025Oct 14 Oh my god, yes that was it! Thank you so much!!If anyone else has this same problem and is unsure what jmztaylor means, edit the container for Booklore and check the entry that says Database URL. If it says "localhost" in the URL, replace that with the actual local IP address of your server. Thanks again, you're the best!
October 20, 2025Oct 20 Anyone else getting errors when trying to fetch metadata? When I try to fetch metadata (but NOT from within a book's details page) I get something like:Fatal error during metadata refresh: could not execute batch [(conn=70) Duplicate entry 'Untitled.epub-1' for key 'unique_file_library'] [update book set added_on=?,book_type=?,current_hash=?,deleted=?,deleted_at=?,file_name=?,file_size_kb=?,file_sub_path=?,library_id=?,library_path_id=?,metadata_match_score=?,similar_books_json=? where id=?]; SQL [update book set added_on=?,book_type=?,current_hash=?,deleted=?,deleted_at=?,file_name=?,file_size_kb=?,file_sub_path=?,library_id=?,library_path_id=?,metadata_match_score=?,similar_books_json=? where id=?]; constraint [unique_file_library]
December 11, 2025Dec 11 if it's not too hard, it would be great if you could provide a way to set PUID/PGID; if it's already possible, would you be so kind as to share how. thanks in advance
December 14, 2025Dec 14 On 12/11/2025 at 3:53 AM, sinbrkatetete said:if it's not too hard, it would be great if you could provide a way to set PUID/PGID; if it's already possible, would you be so kind as to share how. thanks in advanceYou should just be able to set up two new variables: PUID and PGIDBased on the official Booklore docs, those are supported variables: https://booklore-app.github.io/booklore-docs/docs/installation/ Edited December 14, 2025Dec 14 by smikwily
December 31, 2025Dec 31 I cannot get this to work. MariaDB is setup and running. I get the following error: SQL State : 28000Error Code : 1045Message : (conn=8) Access denied for user 'booklore'@'172.17.0.1' (using password: YES)
January 4Jan 4 In case it happens for anyone else: I have 3 instances of MariaDB. When I set up the third one, the /config path used was the same as the default for a second instance, /mnt/user/appdata/mariadb-1. I didn't bother changing this when I set up the second MariaDB. This lead to weird Could not connect to 192.168.0.162:3308 : unexpected end of stream, read 0 bytes from 4 (socket was closed by server) errors in the Booklore log. It is a simple fix. Edit the MariaDB instance, toggle the Advanced view and scroll to find the /config path and give it a unique name. Save, then restart the Booklore instance. profit
January 15Jan 15 On 5/21/2025 at 7:46 AM, GreenEyedMonster said:Did that now I'm getting this error:SQL State : HY000Error Code : 1728Message : (conn=5) Cannot load from mysql.proc. The table is probably corruptedI got this error too. Figured it out - the mariadb container I'm using was installed long ago as an old version. After years of container updates it underwent a major version change (eg: 11.3.x -> 11.4.x). Not sure what my original version was, but in the end 11.4.8 worked for me.On my mariadb container, I had to run mariadb-upgrade -u root -p in the console (the password is the mariadb password, not any sort of linux user root password). This fixed the database and resolved your posted error.
January 18Jan 18 I feel really stupid asking this, but where are the folders mapped to? I would like to ingest some books automatically but cannot figure out where the ingest folder (bookdrop) is on the server. I've looked in where the books are mapped to, as well as the appdata folder but do not see it in either location. Sorry if it's obvious and I missed it.Edit: I was able to map it manually by editing the image and verify it worked. Sorry for the dumb question Edited January 18Jan 18 by Taubin
February 1Feb 1 i'm trying to troubleshoot a longstanding issue that i've been having with this container. i'm aware that @jmztaylor is not the developer of booklore, and i've already posted about this in the booklore github issue where jmztaylor gave out their link to the Unraid template... a few people replied and said that they do not experience this issue. so, this seemed like the best place to post and ask for solutions and troubleshooting help.i've also already posted a topic in the Unraid "General Support" forum here: https://forums.unraid.net/topic/196573-one-single-container-consistently-fails-to-stop-cleanly/ and one person has responded so far but i'm really not getting any closer to figuring out this issue.tl,dr; the booklore container will not stop cleanly. whether a "stop" command is issued during the container update process, me clicking the "stop" button in the Unraid web ui, or i do docker stop booklorein the console, it never stops cleanly and will be forcibly SIGKILLed when Unraid's global docker stop timeout has been exceeded (Settings > Docker > Docker Stop Timeout).i've done countless "delete the container, delete the appdata dir, delete the metadata xml, reinstall from scratch" routines; i've done the same to my mariadb container; i've installed unraid on a brand-new flash drive; i've completely deleted and rebuilt the docker.img file; nothing has solved this issue. i do not understand it, and i don't understand why my setup seems to be the only one experiencing this issue.what i'd really like is some help with the troubleshooting -- i haven't found anything revealing in any system logs. does Unraid even keep system-level docker logs? Settings > Docker (as well as /boot/config/docker.cfg) has configuration options for docker log file rotation, size, etc., but i don't know where the log file is supposed to live. Tools > Log Viewer (New) has a "docker.log" dropdown, but it says "docker.log (0 bytes)" and is empty.i don't know what else to check and i'm losing my mind over this, because it doesn't seem to make sense. we all love Unraid but it really needs some damn work, especially when it comes to the web ui giving helpful diagnostic/error output.
February 3Feb 3 i think i may have solved this issue? i would like input from other users, though -- when you stop booklore, does it return exit code 137?i’ve found that modifying the container (Unraid > Docker > BookLore > Edit, enable Advanced View) by adding --init fixes this behavior. that is to say, when run with --init and subsequently stopped, unraid now returns an exit code of 143 for that container. in bash, this equals signal 15 (143 - 128 = 15), which is a SIGTERM, and is what should be happening.again, without --init stopping the container returns 9 (SIGKILL, 137 - 128 = 9). i’ll update my issue on the upstream github project for booklore to see what the dev has to say, since it appears to actually be a booklore problem and not a jmztaylor unraid template problem. Edited February 3Feb 3 by almighty7lurch
February 23Feb 23 Theres a new version out and I forced an update but it crashes at startup now with lots of "springframework" errorsCaused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'taskService' defined in URL [jar:nested:/app/app.jar/!BOOT-INF/classes/!/org/booklore/service/task/TaskService.class]: Unsatisfied dependency expressed through constructor parameter 3: Error creating bean with name 'bookdropPeriodicScanTask' defined in URL [jar:nested:/app/app.jar/!BOOT-INF/classes/!/org/booklore/task/tasks/BookdropPeriodicScanTask.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'bookdropMonitoringService': Invocation of init method failed
February 23Feb 23 Author 51 minutes ago, upthetoon said:Theres a new version out and I forced an update but it crashes at startup now with lots of "springframework" errorsCaused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'taskService' defined in URL [jar:nested:/app/app.jar/!BOOT-INF/classes/!/org/booklore/service/task/TaskService.class]: Unsatisfied dependency expressed through constructor parameter 3: Error creating bean with name 'bookdropPeriodicScanTask' defined in URL [jar:nested:/app/app.jar/!BOOT-INF/classes/!/org/booklore/task/tasks/BookdropPeriodicScanTask.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'bookdropMonitoringService': Invocation of init method failedHow did you force an updateEDIT: I opened an issue as I confirmed this locally as well. https://github.com/booklore-app/booklore/issues/2867 Edited February 23Feb 23 by jmztaylor
February 23Feb 23 55 minutes ago, upthetoon said:Theres a new version out and I forced an update but it crashes at startup now with lots of "springframework" errorsCaused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'taskService' defined in URL [jar:nested:/app/app.jar/!BOOT-INF/classes/!/org/booklore/service/task/TaskService.class]: Unsatisfied dependency expressed through constructor parameter 3: Error creating bean with name 'bookdropPeriodicScanTask' defined in URL [jar:nested:/app/app.jar/!BOOT-INF/classes/!/org/booklore/task/tasks/BookdropPeriodicScanTask.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'bookdropMonitoringService': Invocation of init method failedI had to go through the terminal to see the full log history but long story short, it seems like they expect a path variable for bookdrop now.add a new pathName: BookdropContainer path: /bookdropHost Path: /mnt/user/appdata/booklore/bookdrop_tempDefault Value: /mnt/user/appdata/booklore/bookdrop_tempDescription: Path for bookdrop uploads.I'm having issues now with being able to save book covers to the images directory but it doesnt appear to be a permissions issue as I can enter the container and write to that path. Still working through that one.
February 23Feb 23 Author Yeah it seems I am going to move away from Booklore. I already have my own reader I wrote so I will just wrap my own opds service. Too many hard breaking changes from Booklore and not going to keep chasing rabbit holes.
February 23Feb 23 22 minutes ago, jmztaylor said:How did you force an updateEDIT: I opened an issue as I confirmed this locally as well. https://github.com/booklore-app/booklore/issues/2867From the docker page
February 23Feb 23 16 minutes ago, Adubs said:I had to go through the terminal to see the full log history but long story short, it seems like they expect a path variable for bookdrop now.add a new pathName: BookdropContainer path: /bookdropHost Path: /mnt/user/appdata/booklore/bookdrop_tempDefault Value: /mnt/user/appdata/booklore/bookdrop_tempDescription: Path for bookdrop uploads.I'm having issues now with being able to save book covers to the images directory but it doesnt appear to be a permissions issue as I can enter the container and write to that path. Still working through that one.Thanks, up and running but I have the same image issue as you now too.
February 23Feb 23 i know the purpose of this thread is to discuss the unraid template for the app rather than being designed for discussion of the app itself, so this is slightly off-topic, but... @jmztaylor i feel you, i’ve been losing faith in booklore over the past few months. i think the project is getting away from the (i believe well-intentioned) creator and it’s been growing more and more unstable and unreliable. recently, i experienced the “all book covers have disappeared, and it fails to regenerate them” bug described here: https://github.com/booklore-app/booklore/issues/2508hope they can right the ship, but it’s crazy how much time i’ve had to spend massaging this one service just to keep it running right. Edited February 23Feb 23 by almighty7lurch clarity
February 23Feb 23 Author For anyone that uses it for only OPDS like me, https://github.com/Node-Dog-Consulting/python-opds/pkgs/container/opdsThis is a very simple and dumbed down version of the OPDS standard. All I needed was the book listing, downloading, and the cover image. There is no web ui for this. Just map the container path of /books to wherever your books are. Not sure if I will put more effort into this to name it and publish it to Community Apps. I built my own ereader so most of booklore was useless to me.
February 23Feb 23 14 minutes ago, upthetoon said:Thanks, up and running but I have the same image issue as you now too.So what you have to do now is add 2 variables to specify UID/GID for the container and chown the directory in appdatamake a new variable:Name: User IDKey: USER_IDValue: 99Default: 99Description: Unraid User IDThen repeat for group IDmake a new variable:Name: Group IDKey: GROUP_IDValue: 100Default: 100Description: Unraid Group IDFinally start a console and enter: chown -R 99:100 /mnt/user/appdata/booklore/You should now be able to do everything as expected.I'm not certain what it was before, I assume 1000/1000 as that would be root which is fine™ for unraid but less than ideal for everything else. They're probably trying to bring this in line with best practices on other distros which is understandable. These changes should be fairly straight forward to implement on the template but anyone running without these variables initially is going to struggle.
February 23Feb 23 18 minutes ago, Adubs said:So what you have to do now is add 2 variables to specify UID/GID for the container and chown the directory in appdatamake a new variable:Name: User IDKey: USER_IDValue: 99Default: 99Description: Unraid User IDThen repeat for group IDmake a new variable:Name: Group IDKey: GROUP_IDValue: 100Default: 100Description: Unraid Group IDFinally start a console and enter: chown -R 99:100 /mnt/user/appdata/booklore/You should now be able to do everything as expected.I'm not certain what it was before, I assume 1000/1000 as that would be root which is fine™ for unraid but less than ideal for everything else. They're probably trying to bring this in line with best practices on other distros which is understandable. These changes should be fairly straight forward to implement on the template but anyone running without these variables initially is going to struggle.thank you again, that did it
February 23Feb 23 Author I updated the template to include these.1 hour ago, Adubs said:So what you have to do now is add 2 variables to specify UID/GID for the container and chown the directory in appdatamake a new variable:Name: User IDKey: USER_IDValue: 99Default: 99Description: Unraid User IDThen repeat for group IDmake a new variable:Name: Group IDKey: GROUP_IDValue: 100Default: 100Description: Unraid Group IDFinally start a console and enter: chown -R 99:100 /mnt/user/appdata/booklore/You should now be able to do everything as expected.I'm not certain what it was before, I assume 1000/1000 as that would be root which is fine™ for unraid but less than ideal for everything else. They're probably trying to bring this in line with best practices on other distros which is understandable. These changes should be fairly straight forward to implement on the template but anyone running without these variables initially is going to struggle.
February 25Feb 25 For what it's worth I had to run the command on my book library too, otherwise I wasn't able to upload.chown -R 99:100 /mnt/user/data/media/books/
February 25Feb 25 On 12/30/2025 at 6:04 PM, Tronalix said:I cannot get this to work. MariaDB is setup and running.I get the following error: SQL State : 28000Error Code : 1045Message : (conn=8) Access denied for user 'booklore'@'172.17.0.1' (using password: YES)I'm in the same boat! Can't figure this one out. I've tried every combination of IPs (container,lan etc.). Strangely enough, I also never get the root password in the logs. I have an existing mariadb instance ( linuxsserver template) running for something else (romm), but I did change the port from 3306 to 3307 in this template for booklore and it just won't accept any password. For convenience, booklore is attached to the official maria-db CA template Edited February 25Feb 25 by cambrionic Additional information
February 26Feb 26 16 hours ago, cambrionic said:I'm in the same boat! Can't figure this one out. I've tried every combination of IPs (container,lan etc.). Strangely enough, I also never get the root password in the logs. I have an existing mariadb instance ( linuxsserver template) running for something else (romm), but I did change the port from 3306 to 3307 in this template for booklore and it just won't accept any password. For convenience, booklore is attached to the official maria-db CA templateyou configure the password on the database name, user, and password on the mariadb container, then enter it into the booklore template. Post your logs.
February 26Feb 26 6 hours ago, Adubs said:you configure the password on the database name, user, and password on the mariadb container, then enter it into the booklore template. Post your logs.Booklore docker log: https://pastes.io/item-1772088002732Maria-db docker log: https://pastes.io/2026-02-25I had changed the database URL to point to my LAN ip (192.168.0.137:3307) before and it gave me the same error, with the address being [email protected] denied in the logs
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.