feat(server): Add startup script (#63)

## Description

**What issue are you solving (or what feature are you adding) and how
are you doing it?**

We start the container using supervisord, which is limiting as the user
has no way of telling the container what game to run. So, the idea is to
run like so: `docker run... ghcr.io/netrisdotme/netris/server:<tag>
netris-proton /game/yourgame.exe`


Co-authored by @djpremier
This commit is contained in:
Wanjohi
2024-05-25 00:24:45 +03:00
committed by GitHub
parent e6fa6ea6e1
commit 204730450c
8 changed files with 54 additions and 2 deletions

3
dev/build.sh Normal file
View File

@@ -0,0 +1,3 @@
#!/bin/bash -e
docker build -t server -f server.Dockerfile .

3
dev/run-input.sh Normal file
View File

@@ -0,0 +1,3 @@
#!/bin/bash -e
cargo run -- --namespace $SESSION_ID --bind "[::]:8080" https://fst.so:4443

5
dev/run.sh Normal file
View File

@@ -0,0 +1,5 @@
#!/bin/bash -e
NAME="${NAME:-$(head /dev/urandom | LC_ALL=C tr -dc 'a-zA-Z0-9' | head -c 16)}"
# docker run --gpus all --device=/dev/dri --rm -it --entrypoint /bin/bash -e SESSION_ID=G4r06Kc8vDmwIXPG -v "$(pwd)":/game -p 8080:8080/udp --cap-add=SYS_NICE --cap-add=SYS_ADMIN server
docker run --gpus all --device=/dev/dri --rm -it --entrypoint /bin/bash -e SESSION_ID=$NAME -v "$(pwd)":/game -p 8080:8080/udp --cap-add=SYS_NICE --cap-add=SYS_ADMIN server

20
dev/script.sh Normal file
View File

@@ -0,0 +1,20 @@
#This fixes the error where x11-apps in docker cannot seem to access the hosts DISPLAY server
# Error: No protocol specified
# Error: Can't open display: :10.0
#https://askubuntu.com/a/1470341 //Run it on host OS
xhost +Local:*
xhost
#Fun fact Weston won't run if you do not have Wayland running on the host (i have yet to try running with Xwayland inside the container)
#Run weston using your host's X11 display server
weston --backend=x11-backend.so
#Run inside the terminal of the weston you just created... cool right?
weston --backend=wayland-backend.so
#Run
docker run --gpus all --entrypoint /bin/bash --rm -it -v $(pwd):/games -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY --cap-add=SYS_NICE --cap-add=SYS_ADMIN recorder
docker run --gpus all --entrypoint /bin/bash --device=/dev/dri --rm -it -v $(pwd):/game --cap-add=SYS_NICE --cap-add=SYS_ADMIN ghcr.io/wanjohiryan/netris/server:nightly
ffmpeg -hide_banner -v quiet -stream_loop -1 -re -i /game/test.mp4 -an -f mp4 -movflags empty_moov+frag_every_frame+separate_moof+omit_tfhd_offset - | RUST_LOG=moq_pub=info warp --name "netris" https://fst.so:4443