From 5c9cb8e56307c93847fbeead52efe52e0b1e964f Mon Sep 17 00:00:00 2001 From: Wanjohi <71614375+wanjohiryan@users.noreply.github.com> Date: Thu, 6 Jun 2024 00:27:40 +0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix:=20Rename=20`netris`=20to=20?= =?UTF-8?q?`nestri`=20(#78)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Description **What issue are you solving (or what feature are you adding) and how are you doing it?** This PR is the first in a series of PRs trying to solve the issue #48 by renaming `Netris` to `Nestri` to avoid Trademark legal issues. --- .github/workflows/base.yml | 2 +- .github/workflows/server.yml | 2 +- .github/workflows/warp-input.yml | 2 +- .github/workflows/warp.yml | 2 +- .scripts/entrypoint.sh | 12 +++++----- README.md | 40 ++++++++++++++++---------------- base.Dockerfile | 14 +++++------ moq-server | 2 +- server.Dockerfile | 16 ++++++------- 9 files changed, 46 insertions(+), 46 deletions(-) diff --git a/.github/workflows/base.yml b/.github/workflows/base.yml index fd944ed9..472907d2 100644 --- a/.github/workflows/base.yml +++ b/.github/workflows/base.yml @@ -25,7 +25,7 @@ on: env: REGISTRY: ghcr.io - IMAGE_NAME: netrisdotme/netris + IMAGE_NAME: nestriness/nestri BASE_TAG_PREFIX: base jobs: diff --git a/.github/workflows/server.yml b/.github/workflows/server.yml index ef2dfc09..03df7aaf 100644 --- a/.github/workflows/server.yml +++ b/.github/workflows/server.yml @@ -23,7 +23,7 @@ on: env: REGISTRY: ghcr.io - IMAGE_NAME: netrisdotme/netris + IMAGE_NAME: nestriness/nestri BASE_TAG_PREFIX: server # concurrency: diff --git a/.github/workflows/warp-input.yml b/.github/workflows/warp-input.yml index f2910e14..2ea94d98 100644 --- a/.github/workflows/warp-input.yml +++ b/.github/workflows/warp-input.yml @@ -24,7 +24,7 @@ on: env: REGISTRY: ghcr.io - IMAGE_NAME: netrisdotme/netris + IMAGE_NAME: nestriness/nestri BASE_TAG_PREFIX: warp-input # concurrency: diff --git a/.github/workflows/warp.yml b/.github/workflows/warp.yml index 27c5a7a3..513344fe 100644 --- a/.github/workflows/warp.yml +++ b/.github/workflows/warp.yml @@ -22,7 +22,7 @@ on: env: REGISTRY: ghcr.io - IMAGE_NAME: netrisdotme/netris + IMAGE_NAME: nestriness/nestri BASE_TAG_PREFIX: warp # concurrency: diff --git a/.scripts/entrypoint.sh b/.scripts/entrypoint.sh index 7a3aef62..121313c3 100644 --- a/.scripts/entrypoint.sh +++ b/.scripts/entrypoint.sh @@ -2,11 +2,11 @@ trap "echo TRAPed signal" HUP INT QUIT TERM # Create and modify permissions of XDG_RUNTIME_DIR -sudo -u netris mkdir -pm700 /tmp/runtime-1000 -sudo chown netris:netris /tmp/runtime-1000 -sudo -u netris chmod 700 /tmp/runtime-1000 +sudo -u nestri mkdir -pm700 /tmp/runtime-1000 +sudo chown nestri:nestri /tmp/runtime-1000 +sudo -u nestri chmod 700 /tmp/runtime-1000 # Make user directory owned by the user in case it is not -sudo chown netris:netris /home/netris || sudo chown netris:netris /home/netris/* || { echo "$(date +"[%Y-%m-%d %H:%M:%S]") Failed to change user directory permissions. There may be permission issues."; } +sudo chown nestri:nestri /home/nestri || sudo chown nestri:nestri /home/nestri/* || { echo "$(date +"[%Y-%m-%d %H:%M:%S]") Failed to change user directory permissions. There may be permission issues."; } #Input devices ownable by our default user export REQUIRED_DEVICES=${REQUIRED_DEVICES:-/dev/uinput /dev/input/event*} @@ -19,7 +19,7 @@ for dev in $REQUIRED_DEVICES; do dev_gid=$(stat -c "%g" "$dev") if [ "$dev_group" = "UNKNOWN" ]; then - new_name="netris-gid-$dev_gid" + new_name="nestri-gid-$dev_gid" # We only have a GID for this group; create a named group for it # this isn't 100% necessary but it prevents some useless noise in the console sudo groupadd -g "$dev_gid" "$new_name" @@ -61,7 +61,7 @@ sudo ln -snf /dev/ptmx /dev/tty7 sudo /etc/init.d/dbus start # Install Proton-GE for this user -netris-proton -i +nestri-proton -i # Install NVIDIA userspace driver components including X graphic libraries if ! command -v nvidia-xconfig &> /dev/null; then diff --git a/README.md b/README.md index f8981a00..349a0bf8 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@
- + @@ -12,11 +12,11 @@

- + - netris logo name + nestri logo name @@ -40,7 +40,7 @@ An open-source cloud gaming platform built for you to play together with your fr [![][github-license-shield]][github-license-link] [![][github-stars-shield]][github-stars-link] -**Share the Netris Repository on Social Media** +**Share the Nestri Repository on Social Media** [![][share-x-shield]][share-x-link] [![][share-reddit-shield]][share-reddit-link] @@ -57,13 +57,13 @@ An open-source cloud gaming platform built for you to play together with your fr ## Features 🌟 -As Netris navigates through its _experimental_ phase, we're in the process of crafting and testing a variety of features for you: +As Nestri navigates through its _experimental_ phase, we're in the process of crafting and testing a variety of features for you: 1. **🎮 Proton-GE Compatibility:** We utilize Proton-GE for running games, offering extensive game compatibility and ensuring you can play a wide variety of titles. 2. **⚡ QUIC Protocol:** For input and video/audio transmission, we use QUIC via [MoQ][moq-github-url] to significantly reduce latency on variable networks, ensuring crisp visuals without sacrificing data or increasing latency. -3. **🔗 Session IDs:** With a `SESSION_ID`, we seamlessly tie your game progress, achievements, and devices without the need for logging into [netris.me][website-link]. 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! +3. **🔗 Session IDs:** With a `SESSION_ID`, we seamlessly tie your game progress, achievements, and devices without the need for logging into [nestri.io][website-link]. 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! 4. **🔄 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. @@ -87,22 +87,22 @@ This platform is in an _experimental_ phase, and we're actively working on addin ## Getting Started 🎮 -Whether you're looking to self-host Netris 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: +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][website-link] | | :---------------------------------------- | :----------------------------------------------------------------------------------------------------------------- | -| If you're interested in self-hosting Netris, 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 Netris](#self-hosting) | +| 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](#self-hosting) | > \[!TIP] > -> Remember, flexibility is key with Netris. You're free to switch between self-hosting and using `netris.me` whenever you like, without losing your game progress. \~ 💡 +> Remember, flexibility is key with Nestri. You're free to switch between self-hosting and using `nestri.io` whenever you like, without losing your game progress. \~ 💡 -### Self-Hosting Netris 🔨 +### Self-Hosting Nestri 🔨 -For those interested in self-hosting, here are is what you need to get your own Netris server up and running: +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. @@ -122,7 +122,7 @@ For those interested in self-hosting, here are is what you need to get your own ### Step-by-Step Guide -Follow these steps to get Netris up and running on your system. +Follow these steps to get Nestri up and running on your system. > \[!IMPORTANT] > @@ -152,12 +152,12 @@ 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 Netris Server +#### Step 3: Launch the Nestri Server -With your SESSION_ID ready, insert it into the command below, replacing `` with your actual session ID. Then, run the command to start the Netris server: +With your SESSION_ID ready, insert it into the command below, replacing `` with your actual session ID. Then, run the command to start the Nestri server: ``` -docker run --gpus all --device=/dev/dri --name netris -it --entrypoint /bin/bash -e SESSION_ID= -v "$(pwd)":/game -p 8080:8080/udp --cap-add=SYS_NICE --cap-add=SYS_ADMIN ghcr.io/netrisdotme/netris/server:nightly +docker run --gpus all --device=/dev/dri --name nestri -it --entrypoint /bin/bash -e SESSION_ID= -v "$(pwd)":/game -p 8080:8080/udp --cap-add=SYS_NICE --cap-add=SYS_ADMIN ghcr.io/nestriness/nestri/server:nightly ``` > \[!TIP] @@ -166,7 +166,7 @@ docker run --gpus all --device=/dev/dri --name netris -it --entrypoint /bin/bash #### Step 4: Configure the Game within the Container -After executing the previous command, you'll be in a new shell within the container (example: `netris@3f199ee68c01:~$`). Perform the following checks: +After executing the previous command, you'll be in a new shell within the container (example: `nestri@3f199ee68c01:~$`). Perform the following checks: 1. 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. 2. Then, start the Netris server by running `/etc/startup.sh > /dev/null &`. @@ -175,15 +175,15 @@ After executing the previous command, you'll be in a new shell within the contai 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: `netris-proton -pr .exe` -- With Wine: `netris-proton -wr .exe` +- With Proton-GE: `nestri-proton -pr .exe` +- With Wine: `nestri-proton -wr .exe` #### Step 6: Begin Playing Finally, construct the play URL with your session ID: ``` -echo "https://netris.me/play/$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! @@ -202,7 +202,7 @@ Navigate to this URL in your browser, click on the page to capture your mouse po [share-reddit-shield]: https://img.shields.io/badge/-share%20on%20reddit-black?labelColor=black&logo=reddit&logoColor=white&style=flat-square [share-reddit-link]: https://www.reddit.com/submit?title=Hey%2C%20check%20out%20this%20Github%20repository.%20It%20is%20an%20open-source%20self-hosted%20Geforce%20Now%20alternative.&url=https%3A%2F%2Fgithub.com%2Fwanjohiryan%2Fnetris [image-overview]: assets/banner.png -[website-link]: https://netris.me +[website-link]: https://nestri.io [neko-url]: https://github.com/m1k1o/neko [image-star]: assets/star-us.png [moq-github-url]: https://quic.video diff --git a/base.Dockerfile b/base.Dockerfile index 1e8ffb3f..2917ef21 100644 --- a/base.Dockerfile +++ b/base.Dockerfile @@ -256,13 +256,13 @@ RUN apt-get update -y \ && chmod +x ./build.sh ./install.sh \ && ./install.sh -#Try building shadow-cast -RUN git clone https://github.com/gmbeard/shadow-cast && cd shadow-cast \ - && mkdir ./build && cd ./build \ - && cmake -DCMAKE_CXX_FLAGS="-Wno-error=unused-result" -DCMAKE_C_FLAGS="-Wno-error=unused-result" .. \ - && cmake --build . -- -j$(nproc) \ - && chmod +x ./install-helper.sh \ - && ./install-helper.sh +# #Try building shadow-cast +# RUN git clone https://github.com/gmbeard/shadow-cast && cd shadow-cast \ +# && mkdir ./build && cd ./build \ +# && cmake -DCMAKE_CXX_FLAGS="-Wno-error=unused-result" -DCMAKE_C_FLAGS="-Wno-error=unused-result" .. \ +# && cmake --build . -- -j$(nproc) \ +# && chmod +x ./install-helper.sh \ +# && ./install-helper.sh RUN apt-get update -y; \ apt-get upgrade -y; \ diff --git a/moq-server b/moq-server index 1230cd6d..a6b1d2b6 160000 --- a/moq-server +++ b/moq-server @@ -1 +1 @@ -Subproject commit 1230cd6d6728e0de077bde4ca5e7b21a652a0c63 +Subproject commit a6b1d2b63ad79f6f318c72a0e50d3175ed8d5739 diff --git a/server.Dockerfile b/server.Dockerfile index d07e3305..b2fcad14 100644 --- a/server.Dockerfile +++ b/server.Dockerfile @@ -1,6 +1,6 @@ #This contains all the necessary libs for the server to work. #NOTE: KEEP THIS IMAGE AS LEAN AS POSSIBLE. -FROM ghcr.io/wanjohiryan/netris/base:nightly +FROM ghcr.io/nestriness/nestri/base:nightly ENV TZ=UTC \ SIZEW=1920 \ @@ -32,15 +32,15 @@ RUN apt-get update -y \ # && chmod 755 /usr/bin/winetricks \ # && curl -fsSL -o /usr/share/bash-completion/completions/winetricks "https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.bash-completion" -#Install Proton -COPY .scripts/proton /usr/bin/netris-proton -RUN chmod 755 /usr/bin/netris-proton +#Install Proton +COPY .scripts/proton /usr/bin/nestri-proton +RUN chmod 755 /usr/bin/nestri-proton -ARG USERNAME=netris \ +ARG USERNAME=nestri \ PUID=1000 \ PGID=1000 \ UMASK=000 \ - HOME="/home/netris" + HOME="/home/nestri" ENV XDG_RUNTIME_DIR=/tmp/runtime-1000 @@ -68,8 +68,8 @@ RUN apt-get update && apt-get install --no-install-recommends -y \ && echo "${USERNAME} ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers \ && ln -snf "/usr/share/zoneinfo/$TZ" /etc/localtime && echo "$TZ" > /etc/timezone -COPY --from=ghcr.io/wanjohiryan/netris/warp:nightly /usr/bin/warp /usr/bin/ -COPY --from=ghcr.io/netrisdotme/netris/warp-input:nightly /usr/bin/warp-input /usr/bin/warp-input +COPY --from=ghcr.io/nestriness/nestri/warp:nightly /usr/bin/warp /usr/bin/ +COPY --from=ghcr.io/nestriness/nestri/warp-input:nightly /usr/bin/warp-input /usr/bin/warp-input RUN chmod +x /usr/bin/warp /usr/bin/warp-input COPY .scripts /etc/ RUN chmod 755 /etc/supervisord.conf /etc/entrypoint.sh /etc/startup.sh