📖 docs: Update README.md (#189)

## Description
Update the readme file

## Related Issues
none

## Type of Change

- [ ] Bug fix (non-breaking change)
- [ ] New feature (non-breaking change)
- [ ] Breaking change (fix or feature that changes existing
functionality)
- [x] Documentation update
- [ ] Other (please describe):

## Checklist

- [x] I have updated relevant documentation
- [x] My code follows the project's coding style
- [x] My changes generate no new warnings/errors

## Notes for Reviewers
none

## Screenshots/Demo
none

## Additional Context
none

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Documentation**
- Major overhaul of documentation structure and content for improved
clarity, modern presentation, and ease of navigation.
- Updated and expanded guides for installation, setup, architecture, and
command-line interfaces.
- Enhanced FAQ and troubleshooting sections with more comprehensive
answers and technical details.
- Added new guides for self-hosting with reverse proxy examples (Caddy,
Traefik) and developer notes.
- Improved theming, styling, and home page layout for the documentation
site.
  - Simplified main README to a minimalistic project header and tagline.
- Added new documentation files for Nestri Relay introduction and
container CLI parameters.
- Removed outdated or redundant documentation files and components to
streamline content.

- **Chores**
- Updated, reorganized, or removed configuration files for dependencies,
linting, and environment setup.
- Switched to a new documentation theme and updated related project
dependencies.
- Removed Renovate configuration and ESLint config specific to docs app.
- Adjusted TypeScript and package configurations for better
compatibility.

- **Style**
- Improved dark mode support and visual consistency across documentation
and components.
- Introduced new Tailwind CSS theming and animation support for the
documentation site.

- **New Features**
- Added example configuration files for deploying Nestri Relay with
Caddy and Traefik reverse proxies.
- Introduced new Tailwind CSS theming and animation support for the
documentation site.
- Added a new logo component supporting light/dark mode and optional
title display.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Victor Pahuus Petersen <49293748+victorpahuus@users.noreply.github.com>
Co-authored-by: Wanjohi <elviswanjohi47@gmail.com>
Co-authored-by: DatCaptainHorse <DatCaptainHorse@users.noreply.github.com>
This commit is contained in:
Philipp Neumann
2025-07-01 02:34:53 +02:00
committed by GitHub
parent 77f47a0306
commit 191c59d230
56 changed files with 39925 additions and 10859 deletions

View File

@@ -1,101 +1,72 @@
# Getting Started
---
title: Getting Started
description: Follow this guide to set up and run your own Nestri Node for cloud gaming.
icon: 'lucide:message-circle-question'
---
::alert{type="danger"}
Nestri is in a **very early-beta phase**, so errors and bugs may occur.
Nestri is in a **very early phase**, so errors and bugs may occur.
::
### Step 0: Construct Your Docker Image
Checkout your branch with the latest version of nestri and build the image `<your-nestri-image>` within git root folder:
```bash
docker buildx build -t <your-nestri-image>:latest -f Containerfile.runner .
```
::alert{type="info"}
You can right now also pull the docker image from DatHorse GitHub Containter Registry with:
```bash
docker pull ghcr.io/datcaptainhorse/nestri-cachyos:latest
You can pull the docker image from GitHub Container Registry with:
```bash [pull image command]
podman pull ghcr.io/nestrilabs/nestri/runner:nightly
```
::
### Step 1: Navigate to Your Game Directory
First, change your directory to the location of your `.exe` file. For Steam games, this typically means:
```bash
cd $HOME/.steam/steam/steamapps
ls -la .
### Step 1: Create a home directory for your Nestri Node
This will be the directory where Steam, games and other persistent files will be saved.
You may use any directory you like, but for simplicity, we will use `~/nestri` as the home directory in this guide.
```bash [create home directory command]
mkdir -p ~/nestri
sudo chmod 777 ~/nestri
```
### Step 2: Generate a Session ID
Create a unique session ID using the following command:
```bash
echo "$(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 `<your_session_id>` with your actual session ID, also replace `<relay_url>` with your relay URL and `<your-nestri-image>` with your build nestri image or nestri remote image. Then run the command to start the Nestri server:
The above will create a directory called `nestri` in your home directory and set the permissions to allow read, write, and execute for all users.
This is important for the Nestri Node to function properly.
### Step 2: Launch the Nestri Runner
With your home directory ready, insert it into the command below, replacing `<relay_url>` with the relay's URL you want to use.
You will also need to replace `<room_name>` with an unique name for the room you will be using to play your games.
```bash
docker run --rm -it --shm-size=1g --gpus all -e NVIDIA_DRIVER_CAPABILITIES=all --runtime=nvidia -e RELAY_URL='<relay_url>' -e NESTRI_ROOM=<your_session_id> -e RESOLUTION=1920x1080 -e FRAMERATE=60 -e NESTRI_PARAMS='--verbose=true --video-codec=h264 --video-bitrate=4000 --video-bitrate-max=6000'--name nestri -d -v "$(pwd)":/mnt/game/ <your-nestri-image>:latest
```bash [run container (nvidia)]
podman run --replace -d --name=nestri --shm-size=6g --cap-add=SYS_NICE --device /dev/dri/ -e RELAY_URL='<relay_url>' -e NESTRI_ROOM='<room_name>' -e RESOLUTION=1920x1080 -e FRAMERATE=60 -e NESTRI_PARAMS='--verbose=true --dma-buf=true --audio-rate-control=cbr --video-codec=h264 --video-rate-control=cbr --video-bitrate=8000' -v ~/nestri:/home/nestri --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl --device /dev/nvidia0 --device /dev/nvidia-modeset ghcr.io/nestrilabs/nestri/runner:nightly
```
### Step 4: Get Into your container
Get into your container to start your game:
```bash
sudo docker exec -it nestri bash
```
### Step 5: Installing a Launcher
For most games that are not DRM free you need a launcher. In this case use the umu launcher and optional mangohud:
```bash
pacman -S --overwrite="*" umu-launcher mangohud
```bash [run container (amd/intel)]
podman run --replace -d --name=nestri --shm-size=6g --cap-add=SYS_NICE --device /dev/dri/ -e RELAY_URL='<relay_url>' -e NESTRI_ROOM='<room_name>' -e RESOLUTION=1920x1080 -e FRAMERATE=60 -e NESTRI_PARAMS='--verbose=true --dma-buf=true --audio-rate-control=cbr --video-codec=h264 --video-rate-control=cbr --video-bitrate=8000' -v ~/nestri:/home/nestri ghcr.io/nestrilabs/nestri/runner:nightly
```
### Step 5: Running Your Game
You have to execute your game now with nestri user. If you have a linux game just execute it with the nestri user
```bash
su nestri
source /etc/nestri/envs.sh
GAMEID=0 PROTONPATH=GE-Proton mangohud umu-run /mnt/game/<your-game.exe>
### Step 3: Begin Playing
Finally, construct the play URL with your room name and relay URL:
`https://nestri.io/play/<room_name>?peerURL=<relay_url>`
Navigate to this URL in your browser, click on the button to capture your mouse pointer and keyboard, and start playing!
### Stop the Nestri Container
If you want to stop the Nestri container, you can use the following command:
```bash [stop container command]
podman stop nestri
```
### Step 6: Begin Playing
Finally, construct the play URL with your session ID:
`https://nestri.io/play/<your_session_id>`
Navigate to this URL in your browser, click on the page to capture your mouse pointer, and start playing!
::alert{type="info"}
You can also use other relays/frontends depending on your choosen `<relay_url>`
For testing you can use DatHorse Relay and Frontend:
| **Placeholder** | **URL** |
| ---------------------------- | ---------- |
| `<relay_url>` | `https://relay.dathorse.com/` |
| `<frontend_url>` | `https://nestritest.dathorse.com/play/<your_session_id>` |
::
<!--
Nestri Node is easy to install using the provided installation script. Follow the steps below to get started.
## Installation
1. Download the installation script using `wget`:
```bash
wget https://github.com/nestriness/nestri/nestri-node-install.sh
### Start the Nestri Container
If you want to start the Nestri container after stopping it, you can use the following command:
```bash [start container command]
podman start nestri
```
2. Make the script executable:
```bash
chmod +x nestri-node-install.sh
### Remove the Nestri Container
To remove the container, you can use the following command:
```bash [remove container command]
podman rm nestri
```
3. Run the script to start the installation process:
```bash
./nestri-node-install.sh
### Update Nestri Container
To update the Nestri container, you can use the following command:
```bash [update container command]
podman pull ghcr.io/nestrilabs/nestri/runner:nightly
```
::-->
After which, you can recreate the container with the latest image using the same command you used in Step 2.