mirror of
https://github.com/games-on-whales/wolf.git
synced 2026-10-15 13:02:03 +00:00
[PR #415] [CLOSED] Make default run UID/GID configurable, fix UID following GID on update #450
Labels
No labels
🧠 1 - 🤖 999
AMD
bug
bug
cannot reproduce
documentation
duplicate
easy
enhancement
enhancement
enhancement
fixed?
fixed?
good first issue
hard
help wanted
Intel
invalid
LXC
medium
moonlight-protocol
Multi GPU
nixos
not a bug
nvidia
pull-request
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
games-on-whales/wolf#450
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/games-on-whales/wolf/pull/415
Author: @JBailes
Created: 5/31/2026
Status: ❌ Closed
Base:
stable← Head:fix/configurable-default-run-uid-gid📝 Commits (2)
9f06a5cMake default run UID/GID configurable and fix UID-follows-GID on update113adfeUse existing utils::get_env for run UID/GID defaults📊 Changes
3 files changed (+24 additions, -3 deletions)
View changed files
📝
docs/modules/user/pages/quickstart.adoc(+14 -0)📝
src/moonlight-server/api/endpoints.cpp(+1 -1)📝
src/moonlight-server/state/serialised_config.hpp(+9 -2)📄 Description
Problem
Apps run as
1000:1000by default, which bakes in a UID/GID convention thatisn't universal. On Unraid the
nobodyuser is99:100, so the defaultsnever matched the host and every newly paired client had to be corrected by
hand.
That manual correction was also broken. In
endpoint_UpdateClientSettings,the
run_uidfield was assigned fromnew_settings.run_gid:So whatever GID you submitted was copied into the UID too — you could only ever
end up with
99:99or100:100, never99:100. Submitting only a new UID(no GID) silently dropped the change, because the
value_orfell through to thecurrent value. On Unraid this left Steam and other apps running with a UID
outside the expected
1000–60000range and with file ownership that didn't lineup with the host, which broke streaming.
Changes
ClientSettings::run_uid/run_gidnow read
WOLF_DEFAULT_RUN_UID/WOLF_DEFAULT_RUN_GID(falling back to1000). Both new-client paths (endpoint_Pair-time session creation and thepairing event handler) default-construct
ClientSettings, so they inherit theoverride. Persisted clients keep their saved values, so this only affects
new clients. Malformed/empty values fall back to
1000.endpoint_UpdateClientSettingsnow readsnew_settings.run_uidfor therun_uidfield, so UID and GID can be setindependently.
Why env vars
This is what lets the Unraid plugin (and any other turnkey deployment) ship the
right defaults: the plugin controls Wolf's container environment, so it can set
WOLF_DEFAULT_RUN_UID=99/WOLF_DEFAULT_RUN_GID=100and every new client iscorrect out of the box, with no per-client editing.
Testing
The new
env_default_run_idhelper was compiled standalone with-std=c++17 -Wall -Wextraand verified for the unset / valid / malformed cases.I was not able to run a full Wolf build locally; relying on CI for the
integration build.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.