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
- A Beefy gaming PC (to act as server)
- A phone or tablet or TV or another PC (to act as client)
- 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)




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)


Click Next.


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


Customize the folder if you want, then click Next.


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


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.


You’re done with the install! Move onto the next, the actual setup.
Apollo 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.


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


Then scroll down to Downloads, you will see this :


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.


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!


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.


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




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.


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.


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


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.


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


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


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.


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




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


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).


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.


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.




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


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.


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.


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




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:


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




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.


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




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.






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


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


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.


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


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


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.


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.


- 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!
Pingback: Create Your Own VPN using Zerotier - Hitechpilot English