Media guide

Game streaming with Moonlight Web

Play from your gaming PC in any browser, from anywhere, with Sunshine and Moonlight Web.

About 20 minutes·Works on the free plan

You'll need

  • Sunshine and Moonlight Web running on your gaming PC or server
  • Docker
  • A free Seawise.io account

Step by step

Everything happens in your browser except step 1.

1

Run the Seawise.io container

Run this on the machine where Moonlight Web runs. The container connects out to Seawise.io, so you don't open any ports on your router.

On Docker Desktop for Mac or Windows, replace --network host with -p 8082:8082.

your server
$ docker run -d --name seawise \
  --restart unless-stopped \
  --network host \
  -v seawise-data:/config \
  ghcr.io/seawise-io/seawise-client:latest

✓ Container started

2

Set a password

On a computer at home, open http://your-server-ip:8082 and create a password for the container's page.

Do this straight after starting the container. Whoever opens this page first sets the password.
3

Connect it to your account

Give the server a name, click Connect, and approve it in the seawise.io tab that opens. Sign up for free there if you haven't yet.

4

Add Moonlight Web

Fill in the name, the address and the port Moonlight Web uses (8080 by default), then click Add.

Which address? With --network host, use localhost. On Docker Desktop, use host.docker.internal. If Moonlight Web runs on another machine, use its local IP, like 192.168.1.20.
5

Open it from anywhere

Moonlight Web now shows on your Servers page at seawise.io. Click it from any browser, on any network, and you're in.

6

Share it

Go to Portals, create one (say, Family), and add Moonlight Web to it. Then open its sharing settings and add the email of everyone who should get in.

Skip this step if Moonlight Web is just for you.

7

What they see

Send them the portal link. They sign in with the email you added, using Google, GitHub or an email link, and tap Moonlight Web. Nothing to install, on any phone, tablet or laptop.

Set up Moonlight Web and Sunshine

01

Create the admin account first

The first user to log in to Moonlight Web becomes the admin. Do that yourself on your local network before anyone else can reach it through Seawise.io.

02

Pair with Sunshine

Add a PC with the address localhost (or the gaming PC's LAN IP if Moonlight Web runs elsewhere) and click it to pair. Enter the code on the PIN page of Sunshine's web UI at https://localhost:47990.

03

Add a TURN server for tough networks

The built-in STUN servers handle most home connections. If streams fail behind CGNAT or a strict firewall, add a TURN server such as coturn to ice_servers in config.json, or set WEBRTC_ICE_SERVER_0_URL, _USERNAME and _CREDENTIAL in Docker.

If something's not working

Moonlight Web shows as offline+

Seawise.io can't reach the web server. Run curl http://localhost:8080 on the server, and check bind_address (BIND_ADDRESS in Docker) if you changed it.

The page loads but the stream never starts+

The page comes through Seawise.io, but video needs a direct WebRTC connection. In Docker, make sure WEBRTC_PORT_RANGE matches the UDP ports you mapped and WEBRTC_NAT_1TO1_HOST is the host's LAN IP; behind CGNAT, add a TURN server.

WebRTC won't connect at all+

As a fallback, set the Data Transport option to Web Sockets. Video then travels through Seawise.io instead of peer to peer, so it counts toward your bandwidth.

Pairing fails+

If Moonlight Web runs in Docker bridge mode, localhost points at the container, not Sunshine. Add the PC by its LAN IP instead.

Good to know

Controllers need HTTPS

Gamepads and keyboard lock only work in a secure context. Your Seawise.io address is HTTPS, so they work there even though they don't on http://server-ip:8080.

Try it on your own server.

Free plan, no card needed.