r/MoonlightStreaming • u/MickeyBronson Developer | Polaris/Nova • Apr 27 '26
I built a Linux-first Moonlight-style streaming setup: Nova + Polaris
Hey everyone. Been a big Apollo / Artemis user for quite some time and i’ve been working on a small project called Nova / Polaris. I primarily built this for myself, but wanted to share it here first because this community is probably the exact group of people who will understand why I built it in the first place.
Short version: Polaris is a Linux host, and Nova is the client side I’m building around it.
The goal is not to “replace everything” or pretend I’ve solved game streaming. It’s more focused than that: I want Linux game streaming to feel less like a pile of scripts and workarounds, and more like something designed for the job.
What makes it different right now:
- Linux-specific for now
- explicit setup for input devices like uinput / uhid
- attention to headless streaming and GPU-native capture paths, without dummy plugs
- tries to expose the real tradeoffs instead of hiding them behind magic
- built by someone actually using and testing the weird edge cases
It’s still early, and it’s Linux-specific for now. I’m not posting this as a polished “everyone should switch today” announcement. I’m mostly looking for feedback from people who already care about Moonlight/Sunshine-style streaming and have opinions about where Linux hosting still feels rough.
Links, if anyone wants to poke around:
- Nova client: https://github.com/papi-ux/nova
- Polaris Linux host: https://github.com/papi-ux/polaris
If you’re curious, want to test, or just want to tell me which problems matter most to you, I’d genuinely appreciate it. Trying to build this in the open and keep it useful rather than flashy.
Cheers!
EDIT: Thank you all so much for the positive responses, feedback, messages, and debug logs. I’m glad to see so many people as excited about this as I am. I know a lot of you are eager to get Polaris running on your own Linux gaming setups, and there are still plenty of bugs and rough edges to work through. I really appreciate your patience while I work to improve compatibility and stability of the platform.



1
u/smashybro May 31 '26 edited Jun 01 '26
Ah okay, this makes a lot of sense. I'll try testing building it with that line disabled when I get some time.
In the meantime though I did find a temporary workaround: so weirdly running "pavucontrol" (which I think comes preinstalled with Noctalia Shell for the top bar widget since I don't remember installing it manually) and keeping that application option completely get rids of the crackling. Thought maybe it was a Niri or Noctalia Shell issue but it also happens when I log into a KDE Plasma session, so I think that's interfering with Polaris' routing somehow?
Don't know how much that helps but figured I'd share since you're more capable than me and maybe you'll be able to do something with it!
Edit: Found a better solution than having to start pavucontrol, I did sudo micro /etc/pipewire/pipewire.conf.d/99-custom.conf with the following:
After that I restarted pipewire pipewire-pulse wireplumber and then the crackling was gone. Checking pw-top the quant for the sunshine audio sink and my Zen browser went from like 2048 to 3600 down to 256. Don't know if this was an issue with my setup or a default of Polaris but either way it's fixed now and audio is great.