Build Your Own Cloud Gaming Solution with Apollo (Sunshine) and Artemis (Moonlight)

You ever wanted to do an XBOX Games Pass Ultimate or Geforce Now but felt that it’s too expensive? Mainly because you already have powerful gaming PC? In this guide you will learn how to build your own cloud gaming solution using Apollo (or Sunshine) and Artemis (or Moonlight).

People searching for these keywords can use this guide too. It’s basically the same.

  • Sunshine setup
  • Apollo setup
  • Local gamestream
  • NVidia Gamestream alternative
  • Artemis Setup
  • Moonlight setup
  • Couch gaming with PC 2025
  • Nvidia Shield alternative 2025
  • Zerotier Remote Desktop
  • Zerotier vs Tailscale

Requirements

  1. A Beefy gaming PC (to act as server)
  2. A phone or tablet or TV or another PC (to act as client)
  3. Good internet, both for local and to the Internet Service Provider

First, you need to get Apollo from https://github.com/ClassicOldSong/Apollo. If you’ve never opened Github, click on the latest Release (see picture below)

Apollo main Github Repo page
Apollo main Github Repo page
Apollo Releases page
Apollo Releases page

Then just click on Apollo.exe to download. When done, open the .exe.

Apollo Installation

If you don’t need your hands held during installation, just install like you would, then skip to Apollo Setup (next step)

Apollo Installation Step 1
Apollo Installation Step 1

Click Next.

Apollo Installation Step 2
Apollo Installation Step 2

Read through the License if you want, then click I Agree.

Apollo Installation Step 3
Apollo Installation Step 3

Customize the folder if you want, then click Next.

Apollo Installation Step 4
Apollo Installation Step 4

Customize the Start Menu folder if you want, or if you don’t want clutter, click on “do not create shortcuts”. Then click Next.

Apollo Installation Step 5
Apollo Installation Step 5

Select the options you want. Particularly the “Launch on startup”. Untick if you want to use Apollo only occassionally. For my setup with 64GB of RAM, no problem with having it in the background constantly.

Apollo Installation Step 6
Apollo Installation Step 6

You’re done with the install! Move onto the next, the actual setup.

Apollo Setup

Apollo first time setup
Apollo first time setup

You should be presented with the Web UI at https://localhost:47990/. If not, then just search for Apollo in the start menu, and open it. It should request a prompt if you have UAC enabled, then open this in your default web browser.

Here you will be asked to setup the username and password for the dashboard. Next, you will be asked to login using the credentials you have set.

Apollo Login
Apollo Login

If ever you forget your credentials, go to Appendix -> I forgot my password!

After you login, you will be taken to the main dashboard. You can go download Artemis from the Android button in the dashboard, or just go to the Github : https://github.com/ClassicOldSong/moonlight-android

Apollo main dashboard
Apollo main dashboard

Then scroll down to Downloads, you will see this :

Artemis download options
Artemis download options

I use Obtainium, but you can just download the APK directly and install it like a normal APK. But, if you have trust issues, go use Moonlight instead. It’s on the Play Store.

After you’re done, open the app (Artemis or Moonlight) then you’ll see the server (Sunshine or Apollo) that you’ve setup. Note that I’ve changed my PC name, and the default wouldn’t be this. But it should be the only device visible in this screen.

Moonlight / Artemis Device Selection Page
Moonlight / Artemis Device Selection Page

If your Sunshine / Apollo instance is not visible, try adding the IP manually. If that also doesn’t work then there might be a trouble with your network. Not connected to the same network perhaps. Note that you can use an ethernet connection too!

Sunshine / Apollo Configuration : General
Sunshine / Apollo Configuration : General

You can change the Sunshine / Apollo name here.

Ok, back to the steps. After clicking / tapping on the server icon, you will be presented with a popup like below, containing the pairing PIN.

This image has an empty alt attribute; its file name is image-17-1024x425.png
Moonlight / Artemis pairing PIN
Moonlight / Artemis pairing PIN

You must enter this pin in the Sunshine / Apollo dashboard. Click PIN (check picture below)

This image has an empty alt attribute; its file name is image-15.png
Apollo / Sunshine device pairing step 1
Apollo / Sunshine device pairing step 1
Apollo / Sunshine device pairing step 2
Apollo / Sunshine device pairing step 2

Then it will show like the picture above. Despite the code being a One Time Code, pick “PIN pairing” not “OTP Pairing” then type the PIN and the device name, so it’s easier to identify if you have multiple clients.

After that press “Send”. Then a popup message like below will appear.

Successfully paired message
Successfully paired message

Note that by default all permissions are enabled. You can set permissions like below, but is not necessary if you’re the only one in the house / office, using this solution.

After pairing permissions
After pairing permissions

Then after successfully pairing, the Moonlight / Artemis screen will display these three options. Pick Desktop to get going.

Apollo / Artemis screen after pairing
Apollo / Artemis screen after pairing

Aand you’re done! These are the general steps to pair a Moonlight / Artemis instance to an Apollo / Sunshine instance. BUT! This article is about making your own cloud gaming solution, right? So you have to make this available outside your home as well, not just local. Continue reading.

Making Your PC Accessible Outside Your Home

Using Tailscale

Download Tailscale from https://tailscale.com/, both for your phone and your Sunshine/Apollo server(PC)

Create an account if you don’t have one, then login to both Tailscale apps.

Then, turn the connection on (on your Moonlight/Artemis device). For the first time, Tailscale will request your permission to make a VPN connection, like the screenshot below. Just click OK.

Tailscale VPN Request
Tailscale VPN Request

Then, your devices will immediately show in the list like below

Tailscale devices list
Tailscale devices list

Click on your PC (Sunshine/Apollo) in the list, and the screen will turn into the one below:

Tailscale device details
Tailscale device details

Then, click the IPV4 to copy. The whole row is clickable, no need to click/tap on the IP address nor the copy button precisely.

If you’ve setup a Moonlight-Sunshine / Artemis-Apollo connection before in your local network, the screen may show that the computer is not found, like the picture below. If this happens, then just re-add the PC by pasting the IP you’ve copied from Tailscale.

Sunshine / Apollo instance not found (failure type 1)

If you never added one, then add a new device by pressing on the Add (plus) sign on the left.

Sunshine / Apollo instance not found
Sunshine / Apollo instance not found (failure type 2)
Moonlight / Artemis Manual IP setup. Insert the IP here
Moonlight / Artemis Manual IP setup. Insert the IP here

Then insert your Tailscale device IP (for the host PC). Just paste it in.

Finished adding the IP manually
Finished adding the IP manually

Authorize the device like before, pressing on the icon and then moving back to Sunshine/Apollo and using the PIN.

You are DONE! Your very own cloud gaming setup. Try connecting via mobile data now, it should work. Or connect to another ISP’s wifi.

Tailscale vs. Zerotier

A lot of people said that Tailscale is easier to setup than Zerotier. I agree with them. However, Tailscale only allows one network per user (May 2025), either I don’t know how or it’s really not allowed.

Zerotier allows multiple networks creation. So you can self-host a Minecraft or a Satisfactory private server for example, and then bind your friends to one network, and use the other virtual network to access your PC remotely.
But for the case of making a cloud gaming pc, one network is enough, and hence, Tailscale is enough.

When I made my account, ZT allows for 25 unique devices. But has since reduced their free tier to 10 devices. TS has more. Per reddit user Vudu_doodoo6’s comment, he/she says that TS is 100 devices.

Performance is quite similar. So take your pick.

Using ZeroTier

My solution is using Zerotier. It makes a private VPN, basically. But you don’t have to understand what that means. It’s basically a way for you to create your own network. These steps are the same with https://en.hitechpilot.net/create-your-own-vpn-using-zerotier/, modified a little to add steps to add your Moonlight / Artemis instance (client).

Sunshine / Apollo instance not found
Sunshine / Apollo instance not found

When you go outside, even when you have your Sunshine / Apollo instance paired, your pc will be gone from the list. This is because you’re not on the same network. To solve this, install Zerotier from https://www.zerotier.com/download/

Installation is pretty straightforward, just open the .exe and click install. Then, it will live on the up arrow / chevron near the clock, volume, etc. when started. Note that this is only the UI, and the service is already running in the background even when you close the UI.

Zerotier running
Zerotier running

Then you go to Zerotier Central (https://my.zerotier.com/) to create your network, like below. Create an account, and login, and then press “Create A Network”. It will give you a Network ID and a network name, and click on it.

Zerotier Central first page
Zerotier Central first page
Network details
Network details

After clicking, this page will show up. Click the Copy button next to the network ID. This will be used for the next step.

Zerotier UI Context Menu
Zerotier UI Context Menu

Right click on the Zerotier UI to bring up the context menu. Then, click on “Join New Network”. The window like the picture below will popup.

Join new network dialog
Join new network dialog

Paste (or type, up to you) the Network ID, then press on Join. Then, on the Network Details on your browser, refresh the page. You will now see one device that you just added.

Network details after adding device
Network details after adding device

After that, click on the square next to the device (producing the picture below) to select the device, and then Authorize the device.

New device selected
New device selected
New device Authorized
New device Authorized

Your Sunshine / Apollo instance is now added to your Zerotier network. Now, to add your client (Moonlight / Artemis) device to the network. Same steps, different UI. Download the Zerotier One app from Google Play Store (https://play.google.com/store/apps/details?id=com.zerotier.one), then open it. It should look like the picture below:

Zerotier One Initial Screen
Zerotier One Initial Screen

Click Add Network. Then, insert the same network ID as before. Then press Add.

Zerotier One Add Network Dialog
Zerotier One Add Network Dialog

When you’re done, turn the network ON. There should be a prompt like below :

“ZeroTier One wants to setup a VPN connection…” or something similar. Just press OK, and a key icon will be shown in your statusbar.

But then, a message showing that you’re not authorized. Just authorize in Zerotier central like we did before.

Zerotier One Not Authorized Notification
Zerotier One Not Authorized Notification

When you’re done, both devices should be green (authorized)

Both devices authorized in Zerotier Central
Both devices authorized in Zerotier Central
Moonlight / Artemis Manual IP setup. Insert the IP here
Moonlight / Artemis Manual IP setup. Insert the IP here

Then, go back to Moonlight / Artemis, and press on the Add (plus) sign on the left. Then insert your Zerotier IP, either by using the “Managed IPs” in Zerotier Central, or by the Zerotier UI, see pictures below: Right click, then hover on the network name, then hover on Managed Addresses. There you will find the IP.

Checking IP from Zerotier UI, step 1.
Checking IP from Zerotier UI, step 1.
Checking IP from Zerotier UI, step 2.
Checking IP from Zerotier UI, step 2.
Finished adding the IP manually
Finished adding the IP manually

Authorize the device like before, pressing on the icon and then moving back to Sunshine/Apollo and using the PIN.

You are DONE! Your very own cloud gaming setup. Try connecting via mobile data now, it should work. Or connect to another ISP’s wifi.

Appendix

Note that Apollo is a fork of Sunshine, so there’s still a lot of Sunshine in this project.

Settings to change

Apollo Configuration -> Audio/Video
Configuration -> Audio/Video

Advanced Display Device options is in Configuration -> Audio / Video in the Web UI. Check picture above.

Display Device Configuration (Sunshine / Apollo dashboard -> Configuration -> Audio / Video)
Display Device Configuration (Sunshine / Apollo dashboard -> Configuration -> Audio / Video)

Play with this setting to adjust your original monitor’s behavior when connecting a client. Either you leave it on, or turn it off when you connect, or make it as primary while your client is an additional display, go try. Also go try Headless Mode, scroll a ‘lil bit down.

Advanced Display Device Options -> HDR
Advanced Display Device Options -> HDR

HDR… Set to DO NOT CHANGE HDR SETTINGS, because when it switches HDR settings, some games’ colours could be messed up (like Warframe)

Artemis / Moonlight resolution settings
Artemis / Moonlight resolution settings

Me, I like my mirrored screen to be fullscreen in my Tablet. But this could mean that it’s a stretched version of the original Desktop, or something else. Again, experiment these and the display device settings.

I forgot my password!

Method 1 : Go to the Apollo folder, then open a cmd window there. Then, run

sunshine.exe --creds new_username new_password
Or, for Powershell and Windows Terminal:
.\sunshine.exe --creds new_username new_password

Or, method 2 : Open your Apollo folder, then Config. Then delete the sunshine_state.json

Apollo / Sunshine Config Folder contents
Apollo / Sunshine Config Folder contents

BUT:

If you already closed the first time Sunshine you can delete sunshine_state.json (but this also removes all your paired clients) or you can run Sunshine with sunshine --creds new_username new_password to set a new pair of credentials

From https://github.com/loki-47-6F-64/sunshine/issues/130

Moonlight? Sunshine? Apollo? Artemis?

Well Apollo is a fork of Sunshine, and Artemis is a fork of Moonlight. Per this article’s writing (May 2025) Android’s version of Moonlight haven’t been developed for quite a bit, and issues remain open. Therefore, developer ClassicOldSong (https://github.com/ClassicOldSong) created Apollo and Artemis in good faith for the open source community. Thanks!

Fork??? Where’s the spoon?

I understood what a Fork is, but too lazy to explain. So I asked ChatGPT:

A fork in Git is a personal copy of someone else’s repository on your GitHub (or similar) account. It lets you freely experiment with changes without affecting the original project. Commonly used to propose changes via pull requests.

and ELI5, also by ChatGPT

Imagine a Git repo is a recipe book. Forking it is like making your own copy so you can tweak the recipes without messing up the original. Want to add chili to grandma’s lasagna? Fork it first 🙂

A variant, if you will.

Git repo for Artemis
Git repo for Artemis

Apollo vs Sunshine difference

Not HUGE, but to enjoy the additional features in Artemis you gotta have Apollo, not Sunshine. But these are the other noticeable things:

  • “Headless mode” is not available in Sunshine
  • Virtual display drivers needs to be installed separately
  • “External display mode” which is just gamepad mode. Use your phone as a gamepad.

Artemis vs Moonlight difference

  • Touch and Pen Passthrough : Artemis passes full stylus (I use a Tab S9+ with an S-Pen) and touch input, turning your tablet into a Surface. Moonlight only emulates touch. That is, it moves the cursor where you touch. Of course, this means no multitouch. BUT, Reddit user Cool-Currency-4687 pointed out that this is not the case. Might be other variables affecting this issue. If you got it working with Moonlight, tell us! And not only that, you can select the trackpad mode. Just see the picture I attached.
Artemis touchscreen modes selection
  • Startup/Shutdown scripts for automation
  • PLETHORA of other options that I’m too lazy to write.

Caveats

  • Electricity cost : your PC must be on when you access it. Of course. You can invest in a remote Wake On Lan setup, but eh. More cost.
  • Network latency and bandwidth, both by your client and by your server instance.
  • Up front cost. But this is zero if you already have a gaming PC.

I mentioned this post on https://www.reddit.com/r/MoonlightStreaming/comments/1kmy3u3/i_made_a_basic_guide_on_sunshineapollo_streaming/

Hope this guide helps! If you still find difficulties, or if you have suggestions, comment below!

Other Posts

Create Your Own VPN using Zerotier

Create Your Own VPN using Zerotier

the-hitechpilotMay 13, 2025

This is just a copy paste from https://en.hitechpilot.net/build-your-own-cloud-gaming-pc/ but separated…

Basic ATC Communications Guide for Vatsim Newbies

Basic ATC Communications Guide for Vatsim Newbies

the-hitechpilotFeb 23, 2025

So you want to learn Air Traffic Control comms and…

opentrack logo

Opentrack : Frugal TrackIR

the-hitechpilotFeb 23, 2025

Man, Virtual Reality is so expensive isn’t it? And don’t…

The Freedoms of the Air: Understanding International Aviation Rights

The Freedoms of the Air: Understanding International Aviation Rights

the-hitechpilotFeb 21, 2025

Learn about the “Freedoms of the Air,” the international aviation…

10 Reasons Why Taking Notes Digitally is Superior to Pen and Paper

10 Reasons Why Taking Notes Digitally is Superior to Pen and Paper

the-hitechpilotNov 5, 2024

Taking notes digitally is a hassle, right? Managing batteries, opening…

War Thunder EasyAntiCheat Low FPS Fix

War Thunder EasyAntiCheat Low FPS Fix

the-hitechpilotAug 31, 2024

Have you played War Thunder with EAC on, oh for…

1 thought on “Build Your Own Cloud Gaming Solution with Apollo (Sunshine) and Artemis (Moonlight)”

  1. Pingback: Create Your Own VPN using Zerotier - Hitechpilot English

Leave a Reply

Scroll to Top