east

Self-Hosted Remote-Desktop

Why even self-host?

There are a myriad of remote-desktop software options;
Parsec, RustDesk, Steam Remote Play, and many others.

None of these options worked particularly well for me, which made me look for a better solution.

Moonlight (and Sunshine)

Moonlight is an open-source implementation of NVIDIA’s GameStream protocol;
Moonlight, paired with Sunshine, allows for low-latency remote desktop.
(Sunshine is a host used to interface with Moonlight)

So why use Moonlight & Sunshine?

While being initially limited to LAN, it can be used remotely via a local VPN with something like WireGuard or port forwarding.
(Outside of this article’s scope currently)

It lacks some features from more developed alternatives, but personally, the merits outweigh its drawbacks.

Utility

It allows me to utilize older hardware I wouldn’t normally be able to use with very little latency.
I use it to stream games from my desktop to my laptop for portability, but it could also be used on consoles, Steam Deck, Phones (Android and IOS), Smart TVs, etc.

Installation and Setup

Download Moonlight and Sunlight using your respective package manager, If you’re using Windows just install via installer.

On my system it’s :
emerge net-misc/sunshine net-misc/moonlight
(Appimages also exist for both Moonlight and Sunlight)

Firewall

If you’re experiencing issues you may need to create exceptions for the following ports on your local firewall (I use firewall-config)

TCP : 47984, 47989, 48010
UDP : 5353, 47998, 47999, 48000, 48002, 48010
(Moonlight’s firewall setup documentation)