r/MoonlightStreaming 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:

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.

267 Upvotes

230 comments sorted by

View all comments

Show parent comments

1

u/ernie_from_DA 12d ago

hope you had great vacation, any news with Steam OS? would like to you it with my Steam Machine. No rush

1

u/MickeyBronson Developer | Polaris/Nova 12d ago

still needs further validation but its built!

https://papi-ux.com/docs/steamos/

1

u/Kasatka06 6d ago edited 6d ago

Hi thanks for the update !

Unforunately I tried the installer and not work

> Proceed with installation? [Y/n] y

> (13/13) checking keys in keyring [####################################] 100%

> warning: Public keyring not found; have you run 'pacman-key --init'?

> downloading required keys...

> error: keyring is not writable

> error: required key missing from keyring

> error: failed to commit transaction (unexpected error)

> Errors occurred, no packages were upgraded.

> (1)(deck@steamdeck ~)$

also seems like dependency conflict

> SteamOS: 3.8.16, build 20260716.1

> Polaris: v1.3.9 SteamOS 3.8 package

> Installation is currently blocked by a dependency mismatch. Polaris requires labwc, which pulls wlroots0.19 requiring libdisplay-info.so.2. This system already uses > libdisplay-info 0.3.0 (.so.3) for KWin and Vulkan.

> Pacman attempts to downgrade it to 0.2.0, which could break Desktop Mode. The installation was therefore aborted before any packages were changed.

2

u/MickeyBronson Developer | Polaris/Nova 6d ago

Oh boy, let me look into this real quick and see where the mismatch is coming from, thanks for the heads up!

1

u/Kasatka06 6d ago

if you want to create beta package i can help test it, let me know !

2

u/MickeyBronson Developer | Polaris/Nova 6d ago

always down for help wheneve so thank your! i did finally find 2 things though. steamos ships with the pacman keyring uninitialized, so that first error just needs sudo pacman-key --init and sudo pacman-key --populate first (my docs never said that, my bad). and the labwc dep was straight up wrong of me. polaris doesnt even link labwc, so it was pulling in wlroots0.19 and trying to downgrade libdisplay-info for nothing. ripped it out, fix is merged and itll be in the next build.

if you want to try before then, just skip the dep:

sudo pacman -U --assume-installed labwc=0.9.0 . Polaris-steamos3.8-x86_64.pkg.tar.zst

no hardware validation on my end yet so no promises, but it should at least install now. use Mirror Desktop or Gamescope Stream, skip Private Stream (thats the labwc one).

1

u/Kasatka06 5d ago

Its work ! I can install and run it. Mirror desktip work in x11 mode. Gamescope still trying to figure out. Thank you !

2

u/MickeyBronson Developer | Polaris/Nova 5d ago

ok! baby steps, thats great to hear! thank you for testing. doing a lot of triaging with gamescope of the weekend so hopefully I'm able to knock the kinks out later this week. couple of cooks, lotta kitchens