Free Cloud Gaming at Home: Sunshine, Moonlight Setup in 13 Steps [2026]

Every major cloud gaming service now gates its best features behind a subscription: GeForce NOW wants $19.99 a month for RTX 5080 power, Xbox Cloud Gaming needs a $29.99 Game Pass Ultimate plan, and Amazon Luna Premium runs $9.99 a month on top of Prime. Each does dangle a free tier as a taste of the paid tier — as of October 2026, GeForce NOW’s Free plan caps sessions at one hour, tops out at 1080p and 60 FPS, and unlocks a library of 2,000-plus supported games, which is enough to sample the service but not enough to replace a real gaming habit. There’s a fourth path that none of those price tags, or those one-hour clocks, touch: turning the gaming PC already sitting under your desk into your own private cloud gaming server, reachable from a phone, laptop, Steam Deck, or smart TV anywhere in the world, for exactly $0 a month in software costs and with no session timer at all.

This tutorial builds that setup using three free, open-source tools: Sunshine (the self-hosted streaming host from the LizardByte project), Moonlight (its companion client), and Tailscale’s free Personal plan (a mesh VPN that eliminates the router port-forwarding headache). No cloud GPU rental, no monthly subscription, no data caps imposed by a third party. You already own the hardware. By the end of the 13 steps below, you’ll have a private, always-available cloud gaming node that streams your own game library to any device with a screen and an internet connection.

Google · Preferred Sources

Don't miss new tech stories on Google

Add Tech Insider once in the Google app and our stories appear in your news suggestions.

Add Now

Why Build Your Own Free Cloud Gaming Server Instead of Renting One

Commercial cloud gaming works by renting you time on someone else’s GPU, and it’s a business that’s growing fast: Grand View Research valued the global cloud gaming market at $3.4 billion in 2025 and forecasts it climbing to roughly $4.9 billion in 2026 as more services chase subscribers. That’s convenient when you don’t own a gaming PC, but if you already have one, you’re paying twice: once for your own hardware, and again for a subscription to access games you could stream from that hardware directly. Self-hosted cloud gaming through Sunshine and Moonlight flips that math. Your PC does the rendering and encoding it was already capable of, Moonlight decodes the stream on whatever device you’re holding, and Tailscale carries the traffic between them over an encrypted, direct peer-to-peer tunnel whenever possible.

The trade-off is setup time instead of a monthly bill. You are the sysadmin. That means you control encoder settings, resolution, bitrate, and which games are installed, but it also means driver updates, security patches, and network troubleshooting land on you rather than a cloud provider’s support desk. For anyone who already owns a capable desktop and wants free cloud gaming rather than free-tier cloud gaming, that trade is usually worth it.

This is a fundamentally different setup from renting a cloud GPU instance and running the same Sunshine and Moonlight stack on someone else’s hardware, which still bills by the hour. Here, the only recurring cost is the electricity your PC already uses when it’s turned on, and your existing internet bill.

Prerequisites: What You Need Before You Start

Gather these before Step 1 so you’re not pausing mid-setup to go find a cable or create an account.

  • A Windows 10/11 or Linux PC with a dedicated GPU (NVIDIA GTX 10-series or newer, AMD RX 400-series or newer, or Intel Arc) that will act as the host. Integrated graphics can work for light titles but will struggle with modern AAA games at 1080p60 or above.
  • A wired Ethernet connection on the host PC. Wi-Fi works but adds latency variance that shows up as stutter during fast camera movement.
  • Sunshine, the latest release from the LizardByte GitHub releases page (v2026.929.125923 was the newest build as of late September 2026, with a high-severity Linux security patch shipped September 14, 2026 in v2026.914.233613 — always grab whatever is newest on the releases page rather than an old cached installer).
  • Moonlight client for your playback device — still free and open source as of October 2026, with official builds for Windows, macOS, Linux, Android, iOS, tvOS, and Linux-based handhelds like the Steam Deck. The Qt-based desktop client (Moonlight v6.1.0) covers PC/Mac/Linux, while Moonlight Android v12.2 covers phones and Android TV.
  • A free Tailscale account (Personal plan, currently supporting up to six users in one tailnet according to Tailscale’s own pricing page, up from three users under the previous version of that plan).
  • Your Steam, Epic, GOG, or Battle.net library already installed on the host PC — Sunshine streams whatever is already on the machine, it doesn’t manage your game library.
  • 15-20 minutes of uninterrupted time, plus a phone or second device to test the connection from outside your home network.

Hardware Compatibility: What Actually Works as a Host

Sunshine’s encoding quality and reliability depend almost entirely on the host GPU’s hardware video encoder, not its raw gaming performance. A card that’s mediocre for new AAA releases can still be an excellent streaming host if its encoder block is solid, because encoding and rendering are handled by separate silicon on modern GPUs.

GPU FamilyHardware EncoderAV1 SupportStreaming Suitability
NVIDIA RTX 40/50-seriesNVENC (8th/9th gen)YesExcellent — dedicated encoder barely touches gaming performance
NVIDIA GTX 10-series to RTX 30-seriesNVENC (6th/7th gen)RTX 40+ onlyVery good for H.264/HEVC; no AV1 on GTX 10/16-series or RTX 20/30
AMD RX 7000/9000-seriesAMF (VCN 4.0+)YesGood, HEVC and AV1 both supported on recent cards
AMD RX 5000/6000-seriesAMF (VCN 2.0/3.0)NoSolid for H.264/HEVC, skip AV1 on these generations
Intel Arc (Alchemist/Battlemage)QuickSyncYesGood, Intel’s encoder has historically been efficient and underrated
Integrated graphics (Iris Xe, AMD APU)VariesLimitedUsable for older or 2D titles; struggles with demanding 3D games at 1080p60+

CPU matters less than GPU for this setup since the hardware encoder does the heavy lifting, but a CPU that’s already a bottleneck in your games will still bottleneck them when streamed. If your PC runs a given title at a stable frame rate locally, it will generally stream that same title at a comparable frame rate, assuming the network side is configured correctly.

Step 1-2: Install and Launch Sunshine on Your Host PC

Download the installer that matches your host OS from the Sunshine GitHub releases page. On Windows, Sunshine moved away from the older NSIS-based .exe installer in its September 6, 2026 release; you now want the WiX-based .msi package, and the portable build is labeled lite.zip instead of the old portable.zip naming. On Linux, Sunshine ships as a .deb, .rpm, AppImage, or Flatpak depending on your distribution.

# Windows (after downloading the .msi from GitHub releases)
msiexec /i sunshine-windows-installer.msi

# Linux (Debian/Ubuntu-based)
sudo apt install ./sunshine-ubuntu-*.deb
sudo systemctl enable --now sunshine

After installation, Sunshine runs as a background service that’s managed entirely through a local web UI rather than a desktop app window. Open a browser on the host PC itself and navigate to https://localhost:47990/. Your browser will flag the self-signed certificate as untrusted — that’s expected for a locally hosted service; proceed past the warning. The first run asks you to create a Sunshine account (admin username and password) to secure that configuration interface — this login protects the web UI and pairing process, not your individual games.

Step 3: Configure Your Encoder and Application List

Inside the Sunshine web UI, open the Configuration tab. Under Audio/Video, pick the hardware encoder matching your GPU: NVENC for NVIDIA, AMF for AMD, or QuickSync for Intel. Sunshine’s September 14, 2026 update improved AV1 and HEVC capability detection and moved to FFmpeg 9 under the hood, so newer GPUs will now correctly expose AV1 as an option where the hardware supports it — useful for reducing bandwidth at the same visual quality, though every client device in the chain (Moonlight app and its playback hardware) also needs to support decoding whichever codec you pick.

Next, open the Applications tab and add entries for each game or launcher you want to stream — typically one entry for your Steam Big Picture mode and separate entries for standalone launchers like Epic Games or Battle.net. Each entry can specify a “do” command that launches automatically when you select it from the Moonlight client.

{
  "name": "Steam Big Picture",
  "cmd": "C:\\Program Files (x86)\\Steam\\steam.exe -tenfoot -bigpicture",
  "image-path": "steam.png"
}

Step 4-5: Install Tailscale on the Host and Skip Port Forwarding Entirely

This is where the self-hosted approach differs most from renting a cloud GPU instance with a public IP address. Without Tailscale, streaming to your PC from outside your home network means configuring port forwarding on your router for Sunshine’s host ports — as of October 2026 still TCP 47984, 47989, and 48010 plus UDP 47998, 47999, 48000, 48002, and 48010 — which exposes those ports to the open internet and can be a non-starter if your ISP uses carrier-grade NAT (CGNAT), which many mobile and some fixed-line ISPs now do by default.

Tailscale sidesteps both problems. Sign up for a free Personal plan account, then install the Tailscale client on the host PC and log in with the same account.

# Windows: download the installer from tailscale.com/download, then
tailscale up

# Linux
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up

Once authenticated, run tailscale ip -4 on the host to get its Tailscale IP address, something in the 100.x.x.x range. That address is what your Moonlight client will connect to from anywhere, instead of your home’s public IP or local LAN address. Tailscale builds a direct, encrypted peer-to-peer connection between devices whenever the network allows it, and falls back to its DERP relay network only when a direct path can’t be established — a fallback that adds latency but keeps the connection working even behind strict CGNAT.

Step 6-7: Install Moonlight and Pair With Your Host

Install Tailscale on every device you plan to stream to as well — phone, laptop, tablet, Steam Deck, or a Moonlight-compatible smart TV app — and sign in with the same Tailscale account. Then install Moonlight on those same devices: Moonlight Android v12.2 for phones and Android TV boxes, Moonlight v6.1.0 (the Qt client) for Windows, macOS, and Linux desktops, or the native iOS and tvOS apps if you’re pairing an iPhone, iPad, or Apple TV.

Open Moonlight and manually add your host using its Tailscale IP address rather than relying on auto-discovery, since mDNS discovery typically doesn’t cross a Tailscale tunnel the way it does on a local LAN.

# In Moonlight, choose "Add Host Manually" and enter:
100.x.x.x   (your Sunshine PC's Tailscale IP)

Moonlight will display a four-digit PIN. Sunshine’s web UI has a matching PIN entry field on the host PC — type the code there to complete the pairing. Once paired, Moonlight remembers the host and the games you added in Step 3 should populate automatically.

Step 8-9: Tune Resolution, Bitrate, and Frame Rate for Your Network

Before launching a game, open Moonlight’s settings and set resolution, frame rate, and bitrate to match both your display and your connection quality. On the same local network, 1080p at 60fps with a bitrate around 20-30 Mbps is comfortable for most home Wi-Fi or Ethernet. Streaming over the internet through Tailscale changes the math — you’re now constrained by your home’s upload speed, not just the local network.

ScenarioTypical LatencyRecommended BitrateNotes
Same LAN, wired host10-30 ms end-to-end20-50 MbpsDepends on encoder, display refresh rate, and controller input path
Same LAN, Wi-Fi client20-45 ms15-30 Mbps5GHz Wi-Fi recommended over 2.4GHz for stability
Remote via Tailscale, direct P2P40-100+ ms10-25 MbpsMostly governed by physical distance and ISP routing, not Tailscale overhead
Remote via Tailscale DERP relay fallbackHigher, variableLower, capped by relayKicks in only when a direct peer-to-peer path can’t be established (strict CGNAT, symmetric NAT)

These figures are typical engineering ranges for this kind of streaming stack rather than a guaranteed benchmark from Sunshine or Moonlight’s developers, since actual results depend heavily on your specific hardware, distance to your home network, and ISP routing. Start conservative — 1080p60 at 20 Mbps — and increase only after confirming a stable connection.

Step 10: Set Up a Tailscale Exit Node (Optional) for Devices Behind Restrictive Networks

An exit node routes a device’s general internet traffic through another device on your tailnet. It isn’t required for Sunshine streaming itself — direct Tailscale connectivity to the host is what actually carries the game stream — but it becomes useful in edge cases, such as needing your phone to appear to be on your home network for other reasons while you’re also streaming games. Enabling it adds a small amount of extra latency for traffic routed through it, so leave it off unless you have a specific reason to turn it on.

Step 11: Lock Down Security on the Host

Because Tailscale replaces open port forwarding with a private mesh network, your Sunshine ports are never exposed to the public internet in the first place — only devices you’ve explicitly added to your tailnet can reach the host. Still, treat the setup with the same care as any machine accessible over a network: keep Windows or your Linux distribution fully patched, keep Sunshine itself updated (the September 14, 2026 release specifically patched a high-severity Linux vulnerability, a reminder that self-hosted software needs the same update discipline as anything else on your network), and use a strong, unique Sunshine web UI password separate from your Windows or Tailscale account password.

Step 12: Automate Sunshine to Start With Windows or Linux

For a setup you can reach at any time, configure Sunshine to launch automatically at boot rather than requiring you to manually start it before every session. On Windows, Sunshine installs as a service by default and starts with the system. On Linux, enable the systemd service so it survives a reboot.

# Linux: confirm Sunshine starts on boot
sudo systemctl is-enabled sunshine
sudo systemctl enable sunshine   # if not already enabled

Also confirm your PC’s power settings don’t let it sleep when idle, since a sleeping host can’t accept an incoming Moonlight connection. On Windows, set “Sleep” to Never under Power & Battery settings while the PC is plugged in; on Linux, disable suspend targets or adjust your desktop environment’s power profile.

Step 13: Test From Outside Your Home Network

The real test isn’t streaming from your couch over Wi-Fi — it’s connecting from a cellular network or a friend’s Wi-Fi, confirming the whole point of the build: free cloud gaming from anywhere, not just from inside your house. Disconnect your test device from home Wi-Fi, switch to mobile data, and open Moonlight. It should find your host by its Tailscale IP and connect without any router configuration on your end, since Tailscale handles NAT traversal automatically.

Setting Up Moonlight on Smart TVs, Android TV Boxes, and Handhelds

The phone and laptop setup covers most people, but the same host works just as well for a living-room TV or a handheld gaming PC. On an Android TV box or a TV with the Android TV OS built in, install Moonlight directly from the Google Play Store, then install Tailscale from the same store and sign in with your tailnet account. Pair the TV with your host exactly as you would a phone, using the host’s Tailscale IP and PIN. Apple TV is covered too — Moonlight publishes a native tvOS app, and iPhone or iPad owners get the same native iOS app, both pairing against your host the same PIN-based way as any other Moonlight client.

For Windows-based handhelds like the ROG Ally or Legion Go, and for the Steam Deck in desktop mode, install both Tailscale and Moonlight as desktop applications rather than mobile apps. These devices benefit the most from wired Ethernet-to-Wi-Fi bridging or a strong 5GHz connection, since their smaller batteries and thermal limits make them more sensitive to decode overhead from a poorly tuned bitrate than a plugged-in desktop client would be.

Smart TVs running Tizen (Samsung) or webOS (LG) have historically lacked official Moonlight apps, unlike the dedicated cloud gaming portals those platforms ship natively. The practical workaround is casting from a phone or using an Android TV box or Chromecast-with-Google-TV device connected to the TV’s HDMI input, which does run a full Moonlight client.

Building a Second Host Profile for Guests and Family Members

If more than one person in your household wants to stream from the same PC without interfering with each other’s sessions, Sunshine supports multiple paired clients, but only one can actively stream at a time on a single-GPU host, since there’s only one display output to capture. What you can do is create separate Sunshine “do” command profiles for each family member’s preferred launcher or game library folder, so each person’s Moonlight session boots straight into their own setup rather than a shared desktop.

For genuinely simultaneous multi-user streaming, you’d need either a second GPU passed through to a virtual machine running its own Sunshine instance, or a second physical PC entirely — both of which move well outside the scope of a free, zero-cost setup and start to resemble the kind of infrastructure a rented multi-GPU cloud gaming service actually operates.

Common Pitfalls When Setting Up Free Self-Hosted Cloud Gaming

  • Relying on Wi-Fi for the host PC. Wireless connections introduce jitter that shows up as micro-stutters during streaming, even if raw bandwidth looks fine. Run an Ethernet cable to the host whenever possible.
  • Forgetting to update the Virtual HID driver on Windows. Sunshine’s September 14, 2026 release required Windows hosts using its Virtual HID Driver to update to version 2026.914.1218.10 or newer; older driver versions are no longer supported and will break controller input.
  • Letting the host PC sleep. If Windows or Linux puts the machine to sleep after a period of inactivity, Moonlight simply can’t reach it. Disable sleep for the host while it’s plugged in.
  • Skipping the Tailscale install on the client device. Moonlight alone can’t reach your host remotely — both the host and every client device need Tailscale running and signed into the same account.
  • Setting bitrate too high for the actual connection. A bitrate that exceeds your home’s real upload speed causes buffering and dropped frames rather than better quality. Test at a conservative setting first.
  • Assuming HDR will “just work.” HDR support is hardware-, OS-, and client-dependent across this stack. Test it specifically on your intended playback device and fall back to SDR if it doesn’t display correctly.
  • Using an outdated Sunshine installer downloaded from a mirror months ago. Because Sunshine ships frequent releases, including security patches, always grab the current build from the official GitHub releases page rather than reusing an old installer.
  • Not testing from an actual outside network before relying on the setup. A connection that only works on the home LAN hasn’t actually been validated as “cloud gaming” yet — confirm it from cellular data or a different Wi-Fi network before counting on it.

Troubleshooting Free Cloud Gaming Connection Issues

  • Moonlight can’t find the host at all. Confirm both devices show as connected in the Tailscale admin console, and add the host manually by its Tailscale IP rather than relying on auto-discovery.
  • Pairing PIN doesn’t match or times out. Restart the Sunshine service on the host and try pairing again; stale pairing sessions occasionally get stuck in the web UI.
  • Stream connects but shows a black screen. This is often a GPU driver issue — update your NVIDIA, AMD, or Intel graphics driver to the latest version and confirm the correct GPU is selected as the capture source in Sunshine’s configuration.
  • Controller input lags behind video. Try switching to a wired controller connection on the client device, and confirm the Virtual HID driver (Windows) or equivalent (Linux) is current.
  • Connection works on Wi-Fi but drops on cellular data. Some mobile carriers apply aggressive CGNAT or traffic shaping; Tailscale’s DERP relay should still maintain a connection, just at reduced quality — lower your bitrate setting when on cellular.
  • Audio and video fall out of sync. Lower the resolution or bitrate slightly to reduce decode load on the client device, particularly on older phones or low-power Android TV boxes.
  • Sunshine won’t start after a Windows update. Reinstall using the current .msi installer from GitHub releases, since Windows updates occasionally reset driver associations the Virtual HID Driver depends on.
  • Stream quality degrades badly after a few minutes. Check the host PC isn’t throttling due to heat — sustained encoding plus gaming workloads pushes both GPU and CPU harder than gaming alone, and a dusty cooler can cause thermal throttling that shows up first as dropped frames.

Bandwidth and Data Usage: What Streaming to Yourself Actually Costs

Because you’re both the host and the viewer, self-hosted streaming has an unusual bandwidth profile: your home internet connection’s upload speed governs remote sessions, not your download speed, which is the opposite of what most home connections are optimized for. A 20 Mbps stream running for two hours uses roughly 18 GB of upload data from your home connection, and roughly the same amount of download data on the client’s mobile or Wi-Fi connection.

BitrateData per HourMinimum Recommended Upload Speed
10 Mbps~4.5 GB15 Mbps upload
20 Mbps~9 GB25 Mbps upload
30 Mbps~13.5 GB40 Mbps upload
50 Mbps~22.5 GB65 Mbps upload

Check your ISP plan’s upload speed specifically, not just the advertised download number, before committing to a high bitrate for remote play. Most residential fiber plans handle this comfortably; many cable and DSL plans have upload speeds far lower than their download speeds and will need a more conservative bitrate to avoid buffering.

Cost Comparison: Self-Hosted vs. Subscription Cloud Gaming Services

OptionMonthly CostHardware You NeedGame Library
Self-hosted Sunshine + Moonlight + Tailscale$0 software, your existing electricity costA gaming PC you already ownYour own library, unlimited titles
GeForce NOW free tier$0, capped session length and queue priorityNone, but you must already own the gamesGames you own on supported storefronts
Xbox Cloud Gaming (Game Pass Ultimate)$29.99NoneRotating Game Pass catalog
Amazon Luna Standard (with Prime)Included in Prime, or $9.99 for Luna PremiumNoneRotating monthly selection
Renting a cloud GPU instance to run Sunshine yourselfVariable, billed hourly by the cloud providerNone, but you pay for every hour the instance runsWhatever you install, but you’re billed for idle GPU time too

The self-hosted route wins decisively on ongoing cost for anyone who already owns a gaming PC, since the marginal cost of an extra hour of streaming is just electricity. It loses on convenience if you don’t already own suitable hardware, in which case a subscription service or a rented cloud GPU instance removes the upfront cost of building or owning a gaming PC entirely.

Sunshine vs. Other Self-Hosted Streaming Options

Sunshine isn’t the only free option for hosting your own stream, and it’s worth knowing where it sits relative to the alternatives you’ll encounter while researching this setup. Apollo is a community fork of Sunshine aimed at virtual-display and single-app streaming scenarios, useful if you want to stream to a headless PC without a monitor attached, but it trails Sunshine’s mainline release cadence and broader platform support. Steam’s built-in Remote Play Together handles a narrower case well — inviting friends into a co-op session without them owning the game — but it doesn’t give you the encoder tuning, application list, or remote-anywhere access that pairing Sunshine with Tailscale provides.

Parsec is the closest commercial equivalent to this stack conceptually, offering a similar host-and-client streaming model, but its free tier limits simultaneous connections and pushes business features behind a paid plan, whereas Sunshine and Moonlight place no functional restrictions on a personal setup since both are fully open source with no tiered feature gates.

Choosing Between Tailscale, ZeroTier, and NetBird for This Setup

Tailscale is the recommendation throughout this guide because its setup friction is the lowest of the three, its NAT traversal success rate is strong, and its free Personal plan comfortably covers a single household. ZeroTier takes a more manual approach to network configuration, giving more control at the cost of a steeper learning curve, and its free tier caps the number of network members rather than focusing on a per-user model the way Tailscale does. NetBird is the newest of the three and builds on WireGuard similarly to Tailscale, with its own free tier aimed at small personal deployments.

For this specific use case — one household streaming to a handful of personal devices — the practical difference between the three usually comes down to which one’s setup flow you find least confusing, since all three can establish the peer-to-peer tunnel Moonlight needs. If Tailscale’s DERP relay consistently underperforms on your specific ISP, trying ZeroTier or NetBird as an alternative is a reasonable troubleshooting step before assuming the whole self-hosted approach won’t work for your connection.

Advanced Tips: Getting More Out of Your Free Cloud Gaming Server

Once the basic setup is stable, a few refinements make a meaningful difference. Enable AV1 encoding if both your host GPU and client device support decoding it — Sunshine’s FFmpeg 9 update improved AV1 capability detection specifically, and AV1 typically delivers equivalent visual quality at a lower bitrate than H.264, which matters most when you’re streaming over a slower mobile connection through Tailscale’s relay.

Consider setting up a second Sunshine application entry specifically for emulator front-ends if you also run retro game emulators, since Sunshine streams any application you point it at, not just modern storefronts. If multiple people in your household want to stream independently, remember Tailscale’s free Personal plan currently supports up to six users sharing one tailnet, which is enough for a small household to each pair their own devices to the same host without paying for a team plan.

Finally, if your ISP assigns a genuinely hostile network (strict symmetric NAT with CGNAT on top), expect Tailscale to lean on its DERP relay more often, which adds latency. There isn’t a free workaround for that specific combination beyond testing whether a mobile hotspot from a different carrier behaves better, since carrier-level NAT policy is outside Tailscale’s control.

The Complete Working Project, Start to Finish

Pulling the full build together: install Sunshine on your gaming PC and confirm it launches on boot; install Tailscale on that same PC and every device you’ll stream to, signed into one shared account; configure Sunshine’s encoder and application list for your games; install Moonlight on your phone, laptop, or Steam Deck and pair it using the host’s Tailscale IP and PIN code; tune resolution and bitrate starting conservative and raising only after confirming stability; disable sleep on the host; and test the whole chain from an actual outside network before calling it done.

The result is a private cloud gaming service with no subscription, no session caps set by someone else, and no queue to wait in during peak hours — the only constraints are the ones you set yourself, and the ones your home internet connection imposes.

Keeping the Setup Running Smoothly Long-Term

A self-hosted setup needs a little periodic maintenance that a subscription service handles invisibly on your behalf. Check the Sunshine GitHub releases page every month or two for new versions, particularly security patches like the high-severity Linux fix shipped in September 2026 — self-hosted software doesn’t auto-update the way a commercial cloud gaming client typically does. Keep GPU drivers current as well, since both NVIDIA and AMD periodically ship encoder improvements alongside their regular gaming performance updates.

It’s also worth revisiting your Tailscale admin console occasionally to remove devices you no longer use from the tailnet, both for security hygiene and to stay comfortably under the Personal plan’s user limit if your household’s device list grows over time. None of this maintenance is heavy, but treating it as a five-minute monthly check rather than a one-time setup keeps the whole stack reliable for the long run.

Self-Hosted Cloud Gaming vs. Subscribing to a Commercial Free Tier

It’s worth being direct about when this guide is the wrong fit. If you don’t already own a capable gaming PC, building one specifically to self-host cloud gaming will usually cost more upfront than a year or two of a subscription service, even at GeForce NOW’s or Xbox Cloud Gaming’s full price — and the free alternatives aren’t really a substitute either, since Microsoft’s own trial of a $0 ad-supported Xbox Cloud Gaming tier, which it began testing on July 23, 2026, still caps each session at one hour, the same ceiling GeForce NOW’s free plan imposes. The self-hosted route makes the most financial sense for the large number of people who already own a gaming desktop that sits idle for large stretches of the day while they’re at work, at school, or traveling. For that specific situation, turning idle hardware into a personal cloud gaming node costs nothing extra, runs for as long as you actually want to play, and unlocks access from anywhere your existing hardware couldn’t previously reach.

It’s also not an either-or choice. Plenty of people run this Sunshine and Moonlight setup for their own library while keeping a free-tier GeForce NOW or Xbox Cloud Gaming account active for the rotating catalog titles they don’t personally own — using each option for what it’s actually good at rather than picking one exclusively.

Frequently Asked Questions

Is this setup actually free, or are there hidden costs?

Sunshine, Moonlight, and Tailscale’s Personal plan are all free with no trial period or feature paywall for this use case. The only real cost is the electricity your gaming PC draws while it’s powered on and streaming, plus whatever internet plan you already pay for.

Do I need a static IP address or to configure my router?

No. Tailscale specifically removes that requirement by building a private mesh network between your devices and handling NAT traversal automatically, including in many cases where your ISP uses carrier-grade NAT.

How many devices can I connect for free with Tailscale?

Tailscale’s Personal plan currently supports up to six users sharing one tailnet, according to Tailscale’s own pricing documentation. Exact device limits tied to that plan should be checked directly on Tailscale’s current pricing page before you rely on a specific number, since plan details can change.

Can I use this to stream to a Steam Deck?

Yes. Install Tailscale and Moonlight on the Steam Deck through its desktop mode, sign in with the same Tailscale account used on your host PC, and pair it exactly as you would any other Moonlight client.

What happens if my host PC’s internet goes down while I’m traveling?

The stream simply won’t connect until your home internet and PC are back online, since the host has to be reachable for Moonlight to find it. This is the main trade-off versus a commercial cloud gaming service, where the infrastructure lives in a data center with redundant connectivity rather than your home network.

Is Sunshine legal to use with games I own on Steam or Epic?

Sunshine streams your own screen output to your own devices, similar in concept to Steam’s built-in Remote Play feature, and doesn’t circumvent DRM or redistribute game files. It’s an open-source project maintained by the LizardByte community on GitHub.

Does this work on macOS as both host and client?

Sunshine has macOS support, including gamepad support added through the libvirtualhid project in recent 2026 updates, though Windows and Linux remain the primary documented host platforms with the widest hardware encoder support. Moonlight’s Qt-based client runs natively on macOS as well, making Mac a solid choice for a client device even if less common as a host.

Does Moonlight work on iPhone, iPad, or Apple TV?

Yes. As of October 2026, Moonlight ships native iOS and tvOS apps alongside its Windows, macOS, Linux, and Android clients, so iPhone, iPad, and Apple TV are all valid playback devices for this setup. Install Tailscale (or your chosen mesh VPN) on the Apple device first, then add your host inside Moonlight by its Tailscale IP and pair it with the same PIN-based process used on every other client.

How does latency compare to a paid service like GeForce NOW?

On the same local network, a self-hosted Sunshine and Moonlight setup can match or beat commercial services since there’s no queue and no shared data-center GPU contention — and unlike GeForce NOW’s free tier, which as of October 2026 is capped at 1080p/60 FPS and a one-hour session even though it opens the door to 2,000-plus games, your own hardware has no resolution ceiling or session timer built in beyond whatever your GPU can actually push. Streaming remotely over Tailscale, latency depends heavily on the physical distance between your client device and your home network, and can be higher than a commercial service with data centers spread across many regions if you’re traveling far from home.

What’s an alternative to Tailscale if I want to compare free tiers?

ZeroTier and NetBird are both reasonable free-tier alternatives to Tailscale for the same mesh-VPN role in this setup. Exact free-tier device and user limits for each should be checked against their current pricing pages before you commit, since those limits move over time just as Tailscale’s Personal plan recently did when it expanded from three to six users.

Elias Virtanen

Elias Virtanen

Cybersecurity Analyst

Elias Virtanen is the Cybersecurity Analyst at Tech Insider, bringing hands-on expertise from his background in penetration testing and security consulting. He previously worked as a security researcher at F-Secure in Helsinki, where he focused on threat intelligence and vulnerability disclosure. Elias covers ransomware trends, zero-trust architecture, and the evolving regulatory landscape including NIS2 and the EU Cyber Resilience Act. He holds a CISSP certification and an MSc in Information Security from Aalto University.

View all articles