mirror of
https://github.com/games-on-whales/wolf.git
synced 2026-10-15 21:12:08 +00:00
[PR #422] [MERGED] Run PulseAudio inside the Wolf container #453
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#453
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/422
Author: @JBailes
Created: 6/7/2026
Status: ✅ Merged
Merged: 6/7/2026
Merged by: @ABeltramo
Base:
stable← Head:fix/embedded-pulseaudio📝 Commits (5)
fee5994Run PulseAudio inside the Wolf container4b0c97dSupervise PulseAudio and Wolf with supervisord441006cAllow supervisord.conf through .dockerignore8ac72affeat: suppress PA logs5cd682bGracefully stop sessions and lobbies on shutdown signal📊 Changes
6 files changed (+150 additions, -9 deletions)
View changed files
📝
.dockerignore(+2 -1)📝
docker/startup.sh(+24 -1)➕
docker/supervisord.conf(+58 -0)📝
docker/wolf.Dockerfile(+13 -0)📝
docs/modules/user/pages/configuration.adoc(+5 -1)📝
src/moonlight-server/wolf.cpp(+48 -6)📄 Description
Fixes #374.
The external WolfPulseAudio sidecar has caused nothing but trouble. Wolf sleeps for
WOLF_PULSE_CONTAINER_TIMEOUT_MSand then connects once, so you either set it too low and get no audio, or set it high (I had to use 30s on Unraid) and then any session started before the deadline gets no audio.This runs PulseAudio inside the Wolf container and waits for the socket before launching Wolf, so PA is already up when Wolf does its existing "is there a PA server available?" check. Per @ABeltramo's suggestion it's Dockerfile-only, no C++ changes, and the sidecar stays as a fallback. Set
PULSE_SERVERyourself to point Wolf at an external/host PA instead.Changes
wolf.Dockerfile: installpulseaudio+pulseaudio-utilsstartup.sh: start PA on$XDG_RUNTIME_DIR/pulse-socket, wait for the socket, exportPULSE_SERVERas the bare path, then exec Wolf. Skipped ifPULSE_SERVERis already setPULSE_SERVER, noteWOLF_PULSE_IMAGEis fallback-onlyTesting
Built
FROM ghcr.io/games-on-whales/wolf:stablewith these changes and ran the real Wolf binary:[PULSE] Pulse connection ready->[PULSE_ROUTER] Setup complete), no sidecar started, no "Unable to connect"PULSE_SERVERas the bare socket path they expect (pa_context_get_serverreturns it verbatim, nounix:prefix, so the socket mount still lines up)🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.