Replies: 3 comments 1 reply
|
Appreciate the AI generated thorough report, but this isn’t actually a bug in Homepage. The container doesn’t (and shouldn’t) modify system group memberships at runtime — PUID and PGID simply set the process’s primary user and group IDs. They don’t automatically add users to arbitrary host groups, and that behavior is completely normal for Node-based containers. In other words, everything here is working exactly as expected. It looks like the “root cause” is just a misunderstanding of how Linux permissions and Docker user mapping work. |
|
This discussion has been automatically closed due to inactivity. See our contributing guidelines for more details. |
|
This discussion has been automatically locked since there has not been any recent activity after it was closed. Please open a new discussion for related concerns. See our contributing guidelines for more details. |
Uh oh!
There was an error while loading. Please reload this page.
Description
There appears to be a fundamental incompatibility or bug within the container's startup script that prevents the
PGIDenvironment variable from correctly adding thenodeuser to the specified group on an Unraid OS system. This prevents the Docker widget from accessing/var/run/docker.sockdue to a permissions failure, resulting in a persistent "Missing Docker" error.This issue has been reproduced across multiple versions of the
gethomepage/homepageimage, including:latest,:v1.5.0, and:v1.4.6.System Details
latest,v1.5.0,v1.4.6The Problem: A Permissions Mismatch
After extensive debugging, the core issue has been identified:
nodeuser (UID 1000).rootand group281:srw-rw---- 1 root 281.nodeuser must be a member of group281to access the socket.PGID=281environment variable, the container's startup script fails to add thenodeuser to this group.Steps to Reproduce
ghcr.io/gethomepage/homepage:latestcontainer on a standard Unraid system.-v /var/run/docker.sock:/var/run/docker.sock:ro.docker.yamlwith a socket connection:widgets.yamlto display the widget:281).PUID=1000andPGID=281environment variables to the container configuration and restart the container.su node -c "id"to verify the user's groups.Expected Behavior
After setting
PGID=281, thenodeuser (UID 1000) should be added to group281. The output ofsu node -c "id"should be similar to:uid=1000(node) gid=1000(node) groups=1000(node),281The Docker widget should then successfully connect to the socket and display container information.
Current Behavior & Logs
The
PGIDvariable has no effect. Thenodeuser is never added to the specified group, regardless of the image version used.Verification from inside the container:
As shown, the
groupslist for thenodeuser is missing281.Additional Troubleshooting Steps Taken
docker.yaml,widgets.yaml) are syntactically correct and use matching hostnames.--group-add 281parameter. This correctly added therootshell user to group281but had no effect on thenodeuser that the application process runs as.ro(read-only) torw(read/write).latest,v1.5.0,v1.4.6) with the same negative result, indicating this is not a recent regression.It seems the entrypoint script responsible for handling user/group permissions is not functioning as intended in this specific environment. Thank you for looking into this.
homepage version
v1.5.0
Installation method
Docker
Configuration
Container Logs
/app/config already owned by correct UID/GID, skipping chown
Fixing ownership of /app/.next
▲ Next.js 15.4.5
✓ Starting...
✓ Ready in 398ms
Browser Logs
No response
Troubleshooting
Additional Troubleshooting Steps Taken
docker.yaml,widgets.yaml) are syntactically correct and use matching hostnames.--group-add 281parameter. This correctly added therootshell user to group281but had no effect on thenodeuser that the application process runs as.ro(read-only) torw(read/write).latest,v1.5.0,v1.4.6) with the same negative result, indicating this is not a recent regression.All reactions