-
Notifications
You must be signed in to change notification settings - Fork 171
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Docker not downloading #1137
Comments
Can you give us the command that runs the docker, or if it's docker compose
the compose.yml file?
It's very likely that the problem is file permissions. Not that I'm sure
about it, just that it's common.
…-Wm
On Tue, Feb 11, 2025 at 10:15 AM ducamagnifico ***@***.***> wrote:
Hi!
As of last night, my docker instance on unraid server no longer downloads
from either my audible US or my audible Italy. It's only been about 12
hours, but I don't think, fingers crossed, I triggered anything on the
Italian audible by downloading too much. To be on the safe side, I just
added a few books to my American account and restarted the libation
container. Although it saw the books, it errored out.
I changed the sleep time beforehand to 25 minutes from the 30. Thinking
that this could have been a contributing factor, I changed it back to 30,
but no change in results.
I've re-installed the libation docker and copied over fresh settings.json
and AccountsSettings.json from my Arch linux desktop 11.6.4-1, with the
same results. The desktop is working, just not the docker.
I know this is not officially supported, so I understand if you are unable
to do anything about it. I just thought you should be aware and run it by
you in case you had a suggestion.
Thank you so much and I'm attaching the log file(sorry the first part is
cut off due to the long length. It did show it saw the books and attempted
to download them.
Ducato
LibationCrash.log
<https://github.com/user-attachments/files/18756683/LibationCrash.log>
—
Reply to this email directly, view it on GitHub
<#1137>, or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAJ7H6I4JKNR2EYMJEX2ZZT2PI43JAVCNFSM6AAAAABW5W3TXSVHI2DSMVQWIX3LMV43ASLTON2WKOZSHA2DMMJUGM4TIOI>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
Thanks for getting back so quickly! I am running the libation docker on unraid 7, through the GUI. I did have to give full read/write privileges to owner/group/other once again after my re-install(the logs had reminded me). I had not changed the permissions when it stopped uploading. I did not use docker compose, but rather used the docker file in the unraid repository:
I leave it checked always on and to run every 30 minutes(default). root@Tower /m/u/a/Libation# ls -a Sorry, my knowledge of docker containers is limited, so if you can point me to where I might find the .yml file, I will be more than happy to assist :-) |
I'm limited in my knowledge too, but I think I know what's wrong ... I'm
guessing your system didn't update itself until recently, and when it did,
it followed the instructions implied by the source `*rmcrackan*
*/libation:latest*` (which will upgrade to the newest version whether you
want to or not), and the new version uses a different user by default than
the old one did, meaning that the permissions are newly wrong.
[Actually, note to programmers: in hindsight it would be better to test
what the current user actually is and just use that, instead of hardcoding
the user. I think the Unix `id` command might be helpful in that, IIRC.]
Our document has been updated to explain the new situation, including
giving some instructions for how do make things right (under several
situations, the old code was worse).
Start at the very top, "breaking changes."
https://github.com/rmcrackan/Libation/blob/master/Documentation/Docker.md
…-Wm
|
Thanks once again for the really quick response! I appreciate you! I have to run to dinner, so this may have to wait until the morning, but I will follow what you just wrote me and promise to get back with the results straight away! |
Okay, I wanted to try several things before getting back to you. I have 2 audible accounts, one in the U.S. and one in Italy. The desktop Libation downloads without problem from both accounts. It is a bit baffling for me, with my limited knowledge, but I am consistently getting exactly one book before erroring out on the docker. As a stopgap, I'll just use the desktop Libation, then compress the file and use Tailscale to send it to the Unraid server. I don't know if I'm overlooking something, and once again I know you don't officially support the docker, I just wanted you to know the steps I've taken and your work is very much appreciated! |
When you say "read/write permission", do you mean that you ran "chmod u+rw
-R ." or something like that? The problem actually is which user has the
permissions. Did you go through that section?
…-Wm
|
Yes, although I did it through their GUI. Owner(User)/Group/Other are all set to read + write, which is the highest level offered. The only thing I didn't keep was the container in "privileged" mode(though I even tried that one time). Privileged for docker would allow full access to all other containers, a security risk. Having said that, I even gave that a shot as well just to see if it would make a difference, which it didn't, so I removed privileged. But all the files within Libation I have full chmod u+rw -R. |
I forgot to mention one thing. The docker is not remembering the one book it will download, so on subsequent attempts it tries the same book again, even though it's already in the downolad folder(which I gave full read/write permissions to owner/group/user as well. I have to go into the desktop Libation and click "Set to downloaded" and then re-copy the files to the docker for it to not try that one book anymore and it will then move on to the next book and allow one download only, still trying on subsequent attempts once again to download the same book, and the cycle repeats. I have made sure that I have set the audiobooks folder correctly within docker. |
I just copied from Unraid the Libation appdata folder permissions so you could see it: AccountsSettings.json root -rw-rw-rw- 11.9 KB 2025-02-13 06:17 cache ... |
That means Libation can't write to the database - clearly it can read it,
so it's in the right place, but it can't change it when done.
This is absolutely a user permissions issue, that page I gave you should
document the `chown` command, but you need to find which user you are (the
page recommends a command, I think it's `id`).
…-Wm
|
Sorry, you and I were writing at the same time! AccountsSettings.json root -rw-rw-rw- 11.9 KB 2025-02-13 06:17 cache ... |
The strange thing though is that it does write exactly one audiobook at a time and immediately shows up in my audiobookshelf. |
I will take another look and try manually on the command line....and Thank You! |
Yup, look at the user settings on those: two are owned by root (probably
you don't care that Libation can't change those, although maybe
your container runs as root), and one's "UNKNOWN" (who knows, but it can't
be good).
Your call what to do there; probably you need to change what user Docker
uses to run Libation (see that page for how to do that), but you also need
to run `chown` as root (or sudo chown) to fix its owner.
…-Wm
Message ID: ***@***.***>
|
Right now I am running as root: Yes, I've just tried all Libation files even as root owner, while trying to figure out where unraid actually stores the docker files so that I can use the terminal(I know where the appdata is, I just don't yet know which file holds the actual container yet, but I am investigating). In the meantime I am running as root. |
Changed owner back to limited and will continue perservering. Thanks once again! |
Downloading a single file is the key fact for me - it tells me it can write
to the file storage, but it can't write to the database (which it tries to
do after the download).
Yes, having it run as nobody is best. The thing is that you need to change
the command that starts Docker so that it knows it needs to run as the user
number for nobody, so that all the files it writes are owned by that user.
Apparently unraid has a web interface of some kind to let you run it. Was
Libation installed using that? Can we see it? Maybe a screenshot is the
only way.
…-Wm
Message ID: ***@***.***>
|
Aaaahhhh....I wouldn't have known that about the single file...that's why you're the expert! I even brought the appdata back to nobody ownership. Here are 4 screenshots, 2 of the actual edit file for libation docker(it was too long for one) and one of the appdata file for libation. The data structure to reach it is /mnt/user/appdata/Libation. Thanks so much for the help. You've always been great to me, but I know you're busy so I don't want to monopolize your time! |
You know what ... I don't know if we can solve this without some help. You
need to tell Docker what user to work as ... but I don't see any available
in that user interface. Can you find the person who authored that? They
should be able to easily modify it to work with the new version, they just
need to set the user to nobody (or optionally to root of course).
OR, they could just force the Libation version to stay at the old version,
no upgrades. I'm that way myself honestly, if it ain't broke don't fix it.
OR, maybe there's a way for an advanced user to directly edit the config
that I don't know about or see; maybe while you're asking for the author of
that nice config page, you could also ask in the tech support group and ask
about how you'd be able to let me see and tell you how to change the docker
or docker-compose command that launches Libation.
… Message ID: ***@***.***>
|
From what I'm reading, there may be a way to bypass this completely. Apparently there is a "Docker Compose" plugin for unraid. Using that, you should be able to "roll your own" install of Libation using Docker Compose, and specify the user in the compose file. |
Thanks once again for a great suggestion! Once I have some info I won't hesitate to pass it on to you. The open source community is awesome that way, helping each other. |
Yes, there is a docker compose and I've used it twice, following instructions. Again, I'm not expert in docker, but if someone gives me instructions, I'm pretty damn good at following them :-D |
Yes, I think we have an example docker-compose file somewhere in the docs,
and if pressed I might be able to figure out how to set its user.
… Message ID: ***@***.***>
|
Oh, that's good to know. I'll peruse the docs as well. |
The format for that is just |
I did see that in the page you sent me |
I just ran into this issue myself and already wrote to the original template author on the Unraid forums about the breaking changes. Let's hope it will be fixed shortly. A quick and dirty workaround to somehow get it working again until the Unraid template has been fixed is to add "-u 99:100" under "Extra Parameters" in the Docker's config on Unraid (likely requires "Advanced View" to be turned on). But that still writes files with an incorrect UMASK. So, not great ... |
Thank you very much. I was going to write the template author myself this evening, but you beat me to the punch! |
Unraid template author here, thanks @bentrop for pinging me about this on the forums. I'm working on updating the template for the user:group fix you mentioned, but yeah, still going to run into the UMASK issue. Wondering if @rmcrackan has any insight into the UMASK used by the in-container user and if there could be a way to override that via an environmental variable? |
Wow, that's terrifying. I wonder why we've never hit this with any of the other Linux installs? |
Did you fix the ownership of your config files/folders? Once that mess had been cleaned up and corrected, Libatian is working like it should for me, except for the UMASK issue. That's minor-ish: data downloaded via libation is stored read-only for share access users, should be rw in order to follow Unraid App standards.
Unraid does a bunch of things differently and isn't just another Linux distribution. I wouldn't exactly call its security top-notch - that's certainly not its focus, and it certainly makes a bunch of security trade-offs for convenience (and some organically grown sub-optimums), but "terrifying" is a bit of a stretch. The default docker user is generally nobody:x:99:100:nobody, and files are generally umasked to allow r/w-access by share access users. That's secure enough for what Unraid does. |
@nwithan8 Thanks for joining the conversation. I'm afraid I'm not going to be much help. I know basically nothing about docker. All of the docker-related files in this repo were written by others. The upshot about this being a community driven feature is that I'll be happy to look at your PRs also if you have suggestions. I'm happy to provide docker unofficially and I love how far it's come without needing me at all -- just users helping other users. |
Still getting the Microsoft.EntityFrameworkCore.DbContext errors. |
Hi!
As of last night, my docker instance on unraid server no longer downloads from either my audible US or my audible Italy. It's only been about 12 hours, but I don't think, fingers crossed, I triggered anything on the Italian audible by downloading too much. To be on the safe side, I just added a few books to my American account and restarted the libation container. Although it saw the books, it errored out.
I changed the sleep time beforehand to 25 minutes from the 30. Thinking that this could have been a contributing factor, I changed it back to 30, but no change in results.
I've re-installed the libation docker and copied over fresh settings.json and AccountsSettings.json from my Arch linux desktop 11.6.4-1, with the same results. The desktop is working, just not the docker.
I know this is not officially supported, so I understand if you are unable to do anything about it. I just thought you should be aware and run it by you in case you had a suggestion.
Thank you so much and I'm attaching the log file(sorry the first part is cut off due to the long length. It did show it saw the books and attempted to download them.
Ducato
LibationCrash.log
The text was updated successfully, but these errors were encountered: