mirror of
https://github.com/games-on-whales/unraid-plugin.git
synced 2026-10-15 21:12:04 +00:00
[GH-ISSUE #54] Bug: User profile is not persisted across container restarts #17
Labels
No labels
enhancement
enhancement
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
games-on-whales/unraid-plugin#17
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?
Originally created by @shitfacevk on GitHub (Jun 10, 2026).
Original GitHub issue: https://github.com/games-on-whales/unraid-plugin/issues/54
Bug: User profile is not persisted across container restarts
Description
Every time the Docker container is restarted, the user profile is reset to its default state. It appears that the profile data is stored inside the container rather than being mounted to a persistent location on the host. Any customization (settings, game library, saved configurations, etc.) is lost on every restart.
Steps to Reproduce
Expected Behavior
User profile and configuration data should persist across container restarts via a mounted host directory.
Actual Behavior
Profile data is lost on every container restart, regardless of appdata path or network mode used.
Tested Configurations
/mnt/cache/gow, default pathEnvironment
Additional Context
Since the issue persists across different appdata paths and network configurations, it seems like the plugin is not correctly mounting the appdata directory into the container for persistent storage - rather than this being a path or permissions issue.
@JBailes commented on GitHub (Jun 14, 2026):
Thanks for the detailed write-up. I've traced the persistence path end to end and the plugin is mounting everything where Wolf expects it (
config.toml+ pairing under<appdata>/cfg, per-app state under<appdata>/profile_data/...), so I want to pin down exactly which layer is resetting before I change anything.Could you grab a few things from a server that shows the problem? Replace
/mnt/user/appdata/gowwith your actual appdata path if you changed it.Do you have to re-pair Moonlight after a restart, or does it stay paired but the in-app stuff is gone?
Host vs in-container view of the app state:
What I'm trying to confirm: whether the data is being written into the host appdata folder (persists) or into Wolf's own container layer (wiped on restart). The two
lsoutputs in step 2 should match — if the host one is empty but the in-container one isn't, that tells me exactly what to fix.Anyone else hitting this, feel free to paste the same. Appreciate the help narrowing it down.
@shitfacevk commented on GitHub (Jun 14, 2026):
root@kapten:~# docker exec wolf ls -la /etc/wolf/profile_dataroot@kapten:~# ls -la /mnt/cache/gow/root@kapten:~# ls -la /mnt/cache/gow/cfg/root@kapten:~# docker exec wolf head -40 /etc/wolf/cfg/config.tomlroot@kapten:~# docker logs wolf 2>&1 | head -50I think i solved the problem.
I edited the docker-compose.yml
@JBailes commented on GitHub (Jun 14, 2026):
Thanks for digging in, your edit pinned it exactly. The cause is that Wolf's
startup.shre-derives its config path fromHOST_APPS_STATE_FOLDER, so with appdata mounted at/etc/wolfit was writing config and pairing to a path that wasn't actually mounted, which is why it reset every restart. Mounting appdata at the same path inside the container as on the host (the identity mount you found) is the fix.Just pushed it to
main(#56); it'll ship in the next release. Once you update the plugin and redeploy, config and pairing should stick across restarts with no need to hand-edit the compose. Shout if it still misbehaves.