netris
netris copied to clipboard
[Experimental] Open-source GeForce NOW alternative with Stadia's social features
An open-source cloud gaming platform built for you to play together with your friends.
A GeForce NOW alternative that can be self-hosted.
Features 🌟
As Nestri navigates through its experimental phase, we're in the process of crafting and testing a variety of features for you:
-
🎮 Proton-GE Compatibility: We utilize Proton-GE for running games, offering extensive game compatibility and ensuring you can play a wide variety of titles.
-
⚡ QUIC Protocol: For input and video/audio transmission, we use QUIC via MoQ to significantly reduce latency on variable networks, ensuring crisp visuals without sacrificing data or increasing latency.
-
🔗 Session IDs: With a
SESSION_ID, we seamlessly tie your game progress, achievements, and devices without the need for logging into nestri.io. Our public CDNs, currently located in Europe (eu-north-1) and the US (us-east-1), further reduce latency for friends playing together from afar. More locations are on the way! -
🔄 Automatic Game Progress Sync: Like Stadia's state share, we automatically sync your game progress based on the *.exe file you're running, allowing you to share your progress with friends via a link.
-
👫 Co-op Gameplay: Play co-op with up to 8 people, or play single player by sharing mouse and keyboard inputs seamlessly (similar to neko).
-
🌐 Cross-Platform Play: Our platform is accessible on any device that can run a Chrome-based browser, including Edge, Chrome, Brave, and Arc. And you do not have to set up anything, it's all done and maintained for you.
-
📊 Bandwidth Optimization: Experience hardware-accelerated
VMAFfor optimized bandwidth, ensuring the best possible video quality. Learn More -
🌟 ...and more: Stay tuned as we continue to add features sometimes inspired by platforms like Stadia, to give you the best and most customizable gaming experience.
This platform is in an experimental phase, and we're actively working on adding new features. Your feedback and support is very much appreciated.
[!IMPORTANT]
If you're excited about what we're doing and want to support our journey, consider giving us a star ⭐ on our repository. Your support fuels our progress!. ~ ✨
Getting Started 🎮
Whether you're looking to self-host Nestri or simply want to try it out without the need for your own GPU, we've got you covered. Choose the path that best suits your needs:
| If you don't have a Nvidia GPU or prefer not to self-host, you can visit our website. No installation or set up required ! This is the perfect option for gamers looking to dive straight into the action without any setup. |
👉🏽 Get Access |
|---|---|
| If you're interested in self-hosting Nestri, continue reading for detailed instructions on how to get started. This option is ideal if you have your own Nvidia GPU and are comfortable with setting up and managing your own server. |
🛠️ Self Host Nestri |
[!TIP]
Remember, flexibility is key with Nestri. You're free to switch between self-hosting and using
nestri.iowhenever you like, without losing your game progress. ~ 💡
Self-Hosting Nestri 🔨
For those interested in self-hosting, here are is what you need to get your own Nestri server up and running:
-
Nvidia GPU: Unfortunately, this setup is exclusive to Nvidia GPUs. If you don't own one, consider renting from cloud services like AWS, GCP, or Vast.ai. We highly recommend this approach.
-
CUDA: For GPU acceleration, CUDA version
12.0or newer is required. Verify your CUDA installation by runningnvcc --version. -
Docker: Ensure you have
dockerandnvidia-dockerare up to date to avoid compatibility issues with CUDA. You can check your Docker version by runningdocker --versionin your terminal. -
GPU Driver: Ensure your GPU drivers are up to date to avoid compatibility issues with CUDA. Nvidia driver version
520.56.06or newer is required. -
Xorg Display: Your Nvidia GPU should not be attached to a running X display server. You can confirm this by running
nvidia-smi. -
Nvidia-DRM: Make sure that the
nvidia-drmmodule has been loaded and that the module is loaded with the flagmodeset=1. Confirm this by runningsudo cat /sys/module/nvidia_drm/parameters/modeset
[!TIP]
Typically, if your setup meets the necessary CUDA requirements, the
nvidia-drmmodule will already be loaded, particularly in AWS G4dn instances. ~ 💡
Step-by-Step Guide
Follow these steps to get Nestri up and running on your system.
[!IMPORTANT]
This is our pilot, there is a lot we haven't figured out yet. Please file an issue if anything comes up. ~ 🫂
[!TIP]
The setup process will become much simpler with the launch of our CLI tool, so stay tuned for that! In the meantime, you'll need to follow these manual steps.
Step 1: Navigate to Your Game Directory
First, change your directory to the location of your .exe file. For Steam games, this typically means:
cd $HOME/.steam/steam/steamapps
ls -la .
Step 2: Generate a Session ID
Create a unique session ID using the following command:
head /dev/urandom | LC_ALL=C tr -dc 'a-zA-Z0-9' | head -c 16
This command generates a random 16-character string. Be sure to note this string carefully, as you'll need it for the next step.
Step 3: Launch the Nestri Server
With your SESSION_ID ready, insert it into the command below, replacing <copy here> with your actual session ID. Then, run the command to start the Nestri server:
docker run --gpus all --device=/dev/dri --name nestri -it --entrypoint /bin/bash -e SESSION_ID=<copy here> -v "$(pwd)":/game -p 8080:8080/udp --cap-add=SYS_NICE --cap-add=SYS_ADMIN ghcr.io/nestriness/nestri/server:nightly
[!TIP]
Ensure UDP port 8080 is accessible from the internet. Use
ufw allow 8080/udpor adjust your cloud provider's security group settings accordingly.
Step 4: Configure the Game within the Container
After executing the previous command, you'll be in a new shell within the container (example: nestri@3f199ee68c01:~$). Perform the following checks:
- Verify the game is mounted by executing
ls -la /game. If not, exit and ensure you've correctly mounted the game directory as a volume. - Then, start the Netris server by running
/etc/startup.sh > /dev/null &.
Step 5: Running Your Game
Wait for the .X11-unix directory to appear in /tmp (check with ls -la /tmp). Once it appears, you're ready to launch your game.
- With Proton-GE:
nestri-proton -pr <game>.exe - With Wine:
nestri-proton -wr <game>.exe
Step 6: Begin Playing
Finally, construct the play URL with your session ID:
echo "https://nestri.io/play/$SESSION_ID"
Navigate to this URL in your browser, click on the page to capture your mouse pointer, and start playing!

