Releasing Wolf: Stream virtual desktops and games running in Docker

abeltramo@lemmy.world to Selfhosted@lemmy.world – 19 points –
games-on-whales.github.io

Hello everyone! 👋

For the past year I had fun messing around with Docker containers, Moonlight/Sunshine and HW acceleration; so much so that I've ended up building a Gamestream server from scratch!

The basic underlying idea is to allow the followings:

  • Share a single server (possibly headless but doesn't have to be) with multiple users

  • by creating virtual HW accelerated desktops

  • whilst keeping remote mouse, keyboard and controllers completely separated

  • with low latency

It's still rough around the edges, and it needs more testing from the community; if you want to check it out, here you can read the docs and here's the Github repo.

14

Whoa, what a cool project! It seems like way more than I need for single-user purposes, but I've been relying on Moonlight, Sunshine, and Chiaki quite a lot more than I ever expected to since I ended up taking quite a liking to using the Steam Deck as a pseudo thin-client. Kind of the best of both worlds letting another machine do the heavy lifting somewhere else in the house, so any advancements in the local game streaming space are extremely welcome to see.

Yeah the Steam Deck is such a perfect target for Moonlight I use it for all the demanding games that I can't run properly natively or when playing on the couch with a big screen.

Wow, this is impressive. Already seems quite stable, I got it running straight away on a headless machine with an Intel i5-7400T running Ubuntu 22.04. I think I need to do some optimising, but I can already use it as a somewhat convoluted way to get proper adblocking on an iPad!

I noticed a small mistake in the docs - the docker run command in the quickstart is missing a backslash.

The PulseAudio container also doesn't stop when the main wolf container stops - not sure if that's expected behaviour or not.

I'm excited to see where this project goes, I can see a bunch of uses for this running graphical application remotely.

Thanks for trying it out and for the feedback, I'm glad it works!

You are right, we should probably stop and remove the pulse container; I'll add it to the things that needs to be improved.

ingenious idea, but for having adfree youtube on the ipad the easiest way is to use invidious :)

What's required to map a folder into one of the containers (i.e. retroarch)? I've attempted to edit config.toml to include it, but the main wolf container immediately crashes on boot due to interrupt code 11. There's no other error messages, just a binary stack trace.

The folder exists. I've tried directly mounting the host path as well as mounting it into Wolf-Wolf-1 and using the local path, but nothing works. Even perfectly mirrored paths don't work. Wolf appears to be running as root so I don't think it's a permissions error? I can certainly access the folders. They are a locally mounted NFS, but I've used this with dozens of containers without issue.

It's probably failing to parse the config.toml file, although that should usually print a proper error line. Have you tried deleting the file or copy and paste the default?

Looks like the mount definitions require the :ro (or maybe :rq?) at the end unlike regular docker volumes, that was the issue.

Ooops that was a lazy leftover from my side, sorry about that. Thanks for letting me know, I'll fix it soon!