Skip to content

permissions issues

zhdenny edited this page Jun 3, 2024 · 3 revisions

Permission Issues

Issues between DAPS and Kometa

When using the DAPS scripts that handle posters, it is crucial that you have consistent permissions setup between DAPS AND KOMETA. If user:group permissions are not the same between these two containers you may experience errors/issues related to permissions.

DAPS is fairly standard with permissions as it uses the old PUID and PGID Environmental Variables. PUID is used to declare the user and PGID is used to declare the group. For Unraid users, the user is nobody (also known numerically as 99) and the group is users (known numerically as 100). For unraid users, the Template in the app store already sets this up for you. For others, it is important to set these values respective of your own environment.

Now for KOMETA, it is a little bit different. Kometa does NOT support the old PUID and PGID Environmental Variables most users are familiar with. Due to this, many Kometa users do not have their Kometa permissions setup correctly. You will notice this when you see Kometa creating files (such as meta.log files) as root:root. To resolve this, Koemta devs rely on users knowing that Docker now officially supports a relatively new --user flag. See HERE for further reading. In order to use this flag in Unraid, users must toggle the "Advanced View" in the upper right hand of the Docker Edit page for Kometa and then add --user 99:100 to the "Extra Parameters" field. You'll also want to chown 99:100 -R /path/to/kometa/appdata your kometa appdata folder as well to make sure your current appdata files are also good permissions. This of course also applies to non-Unraid users as well. Incorporate the --user flag appropriately for your own envionment.

Now that both DAPS and Kometa permissions use consistent permissions, they should be able to read/write posters between each other without permissions issues.

Running DAPS scripts using docker exec

If you need to execute a DAPS script from another script or from the terminal, this is the correct way to do so without creating permissions issues:

docker exec -u dockeruser -e HOME=/app daps python3 main.py poster_renamerr

This command assumes the container name is "daps" and you want to run the "poster_renamerr" DAPS script. The only things that you need to change in this command are the container name if your container name isn't "daps" and the script name you want to run.