Commit Graph

227 Commits

Author SHA1 Message Date
Wanjohi
c7cb295628 feat(server): Add keyboard and mouse input (#27)
## Description

**What(what issue does this code solve/what feature does it add):**
We need to support feedback for mouse and keyboard.

**How(how does it solve it):**

## Required Checklist:

- [ ] I have added any necessary documentation and comments in my code
(where appropriate)
- [ ] I have added tests to make sure my code runs in all contexts

## Further comments
2024-04-22 12:53:46 +03:00
Wanjohi
408a627c08 feat: Capture screen and send with warp (#26)
## Description

**What(what issue does this code solve/what feature does it add):**

**How(how does it solve it):**

## Required Checklist:

- [ ] I have added any necessary documentation and comments in my code
(where appropriate)
- [ ] I have added tests to make sure my code runs in all contexts

## Further comments
2024-04-20 01:23:05 +03:00
Wanjohi
4c6bc98bdc feat(server): Copy warp from docker (#24)
## Description

**What(what issue does this code solve/what feature does it add):**

**How(how does it solve it):**

## Required Checklist:

- [ ] I have added any necessary documentation and comments in my code
(where appropriate)
- [ ] I have added tests to make sure my code runs in all contexts

## Further comments
2024-04-16 05:04:00 +03:00
Wanjohi
85db990699 🐛 fix(.github): remove references to warp 2024-04-16 04:53:41 +03:00
Wanjohi
039cc96f3d feat: Add a separate image to build warp (#23)
## Description

**What(what issue does this code solve/what feature does it add):**
Build times for netris:server are way too long. so the idea is to move
warp into it's own container then build from there.
Later on first release we might drop this for a better solution.
**How(how does it solve it):**
1. Added the very own netris:warp

## Required Checklist:

- [x] I have added any necessary documentation and comments in my code
(where appropriate)
- [x] I have added tests to make sure my code runs in all contexts

## Further comments
2024-04-16 04:48:31 +03:00
Wanjohi
993d8238a3 🐛 fix(scripts): fix entrypoint.sh crashes 2024-04-16 03:50:03 +03:00
Wanjohi
2fc7d24fee 🐛 fix(base): Add xcvt 2024-04-16 03:16:39 +03:00
Wanjohi
cffbf46639 🐛 fix(server): Clean up the supervisord.conf and COPY supervisord.conf to /etc (#22)
## Description

**What(what issue does this code solve/what feature does it add):**
Docker build server fails because `supervisord.conf` is getting copied
to a different directory other than `/etc`
**How(how does it solve it):**

## Required Checklist:

- [ ] I have added any necessary documentation and comments in my code
(where appropriate)
- [ ] I have added tests to make sure my code runs in all contexts

## Further comments
2024-04-16 02:39:27 +03:00
Wanjohi
c2c3590b0c 🐛 fix: Change default user to ubuntu 2024-04-16 02:13:12 +03:00
Wanjohi
66f7ba200f 🐛 fix(server): Test out in the wild (#20)
## Description

**What(what issue does this code solve/what feature does it add):**

**How(how does it solve it):**

## Required Checklist:

- [ ] I have added any necessary documentation and comments in my code
(where appropriate)
- [ ] I have added tests to make sure my code runs in all contexts

## Further comments
2024-04-16 01:49:06 +03:00
Wanjohi
e7f5666d7a feat: Merge recorder and ffmpeg to base (#21)
## Description

**What(what issue does this code solve/what feature does it add):**
We do not need the ffmpeg and recorder all sitting differently, as this
will increase our docker image size
**How(how does it solve it):**

## Required Checklist:

- [ ] I have added any necessary documentation and comments in my code
(where appropriate)
- [ ] I have added tests to make sure my code runs in all contexts

## Further comments
2024-04-15 10:40:03 +03:00
Wanjohi
5d3d4acde7 feat(server): Integrate ffmpeg and warp into the server 2024-04-04 04:17:33 +03:00
Wanjohi
4897a20ed0 feat: Add warp (moq-pub) (#15)
## Description

**What(what issue does this code solve/what feature does it add):**
`Warp` will be used to "trasmit" the video and audio from the container
to the user/viewer wherever they are.

**How(how does it solve it):**
1. Add a Github worker that builds warp on pr, and one that builds and
pushes on release

## Required Checklist:

- [ ] I have added any necessary documentation and comments in my code
(where appropriate)
- [ ] I have added tests to make sure my code runs in all contexts

## Further comments
2024-04-04 03:57:14 +03:00
Wanjohi
9e9f52353b feat: Add ffmpeg (#12)
## Description

**What(what issue does this code solve/what feature does it add):**

**How(how does it solve it):**

## Required Checklist:

- [ ] I have added any necessary documentation and comments in my code
(where appropriate)
- [ ] I have added tests to make sure my code runs in all contexts

## Further comments
2024-04-04 02:53:53 +03:00
Wanjohi
1d714b5019 🐛 fix(server): Add CAP_SYS* capabilities to the gpu-screen-recorder (#13)
## Description

**What(what issue does this code solve/what feature does it add):**

**How(how does it solve it):**

## Required Checklist:

- [ ] I have added any necessary documentation and comments in my code
(where appropriate)
- [ ] I have added tests to make sure my code runs in all contexts

## Further comments
2024-04-04 01:26:14 +03:00
Wanjohi
c56a0f636e 🔧 chore(github): Add labels for ffmpeg and recorder (#14)
## Description

**What(what issue does this code solve/what feature does it add):**

**How(how does it solve it):**

## Required Checklist:

- [ ] I have added any necessary documentation and comments in my code
(where appropriate)
- [ ] I have added tests to make sure my code runs in all contexts

## Further comments
2024-04-04 01:22:23 +03:00
Wanjohi
9131344d30 feat(server): Integrate gpu-screen-recorder into the server (#11)
## Description

**What(what issue does this code solve/what feature does it add):**

We succesfully built the gpu-screen-recorder in a separate container...
now we need to add it into the main container

**How(how does it solve it):**
1. Copy the relevant user/bin files from the separate docker image
2. 
## Required Checklist:

- [x] I have added any necessary documentation and comments in my code
(where appropriate)
- [ ] I have added tests to make sure my code runs in all contexts

## Further comments
2024-04-04 00:58:29 +03:00
Wanjohi
b381e44b96 feat(server): Add pulseaudio to capture sound (#10)
## Description

**What(what issue does this code solve/what feature does it add):**
We do not have a way to capture sound inside the container.
**How(how does it solve it):**
1. Install pulseaudio inside the container
2. Add an entrypoint.sh where we start the pulseaudio
## Required Checklist:

- [ ] I have added any necessary documentation and comments in my code
(where appropriate)
- [ ] I have added tests to make sure my code runs in all contexts

## Further comments
2024-04-04 00:32:17 +03:00
Wanjohi
5492f2201f feat(server): Add gpu-screen-recorder (#9)
## Description

**What(what issue does this code solve/what feature does it add):**

So, we have our simple compositor (`gamescope`), now we need a way to
capture audio and video.
And i have found this "performant" **_citation needed_ ** and minimal
screen recorder, which has the capability to even capture 30 second
screen snippets.

**How(how does it solve it):**
1. Add a minimal step inside the DockerFile to build and install the
gpu-screen-recorder

## Required Checklist:

- [ ] I have added any necessary documentation and comments in my code
(where appropriate)
- [ ] I have added tests to make sure my code runs in all contexts

## Further comments
2024-04-03 04:53:16 +03:00
Wanjohi
198ba6593d feat(server): Add mangohud, gamescope and gamemode (#8)
## Description

**What(what issue does this code solve/what feature does it add):**

We are adding mangohud (to show GPU usage), gamemode (for optimisations)
and gamescope (as our compositor)

**How(how does it solve it):**

1. Apt install mangohud
2. Install gamescope from flatpak
3. And then build gamemode

## Required Checklist:

- [ ] I have added any necessary documentation and comments in my code
(where appropriate)
- [ ] I have added tests to make sure my code runs in all contexts

## Further comments
2024-04-02 23:38:08 +03:00
Wanjohi
17d497eb7c feat(server): Add Vulkan and Xwayland support (#6)
## Description

**What(what issue does this code solve/what feature does it add):**

We have no display server inside the container, nor Vulkan which will
later be required by dxvk/d3d11/d3d12 in order to play games using
Proton.

**How(how does it solve it):**

1. We added vulkan and Xwayland packages into `server.Dockerfile` , then
tested with running `vkcube` and `vulkaninfo` after running an
interactive bash shell inside the container.

## Required Checklist:

- [ ] I have added any necessary documentation and comments in my code
(where appropriate)
- [ ] I have added tests to make sure my code runs in all contexts

## Further comments
2024-04-01 22:33:06 +03:00
Wanjohi
bf403fb8de feat(server): Add nvidia gpu passthrough support (#5)
## Description

**What(what issue does this code solve/what feature does it add):**
Currently on `docker run --gpus 1 netris:server` and run `nvidia-smi`
you get an error.

**How(how does it solve it):**
We add the relevant NVIDIA_* env variables to allow for gpu passthrough.

## Required Checklist:

- [ ] I have added any necessary documentation and comments in my code
(where appropriate)
- [ ] I have added tests to make sure my code runs in all contexts

## Further comments

Co-authored-by: Wanjohi <71614375+wanjohiryan@usersnoreply.github.com>
2024-04-01 03:42:26 +03:00
Wanjohi
e68e1018c3 feat: Add dev website (#4)
## Description

**What(what issue does this code solve/what feature does it add):**

Add a qwik project where we can add API(s) and a frontend which will be
used to review and deploy to AWS our docker containers for testing.

**How(how does it solve it):**

1. Initialise a qwik project at `apps/www` 

## Required Checklist:

- [ ] I have added any necessary documentation and comments in my code
(where appropriate)
- [ ] I have added tests to make sure my code runs in all contexts

## Further comments
2024-03-29 22:54:17 +03:00
Wanjohi
41350edf3e feat(server): Add Nvidia gpu configuration script (#3)
## Description

**What(what issue does this code solve/what feature does it add):**

Add a way to configure the Nvidia GPU, by installing the necessary
packages for Proton to work.

**How(how does it solve it):**

We made a script `.scripts/gpu` when called like `gpu -c` it will
install Vulkan and proprietry nvidia drivers.

## Required Checklist:

- [ ] I have added any necessary documentation and comments in my code
(where appropriate)
- [ ] I have added tests to make sure my code runs in all contexts

## Further comments
2024-03-29 18:02:18 +03:00
Wanjohi
c4f5e2296c feat: Add server Dockerfile (#2)
## Description

**What(what issue does this code solve/what feature does it add):**

We are adding the `Dockerfile` with all the scripts and programs to run
our games in.

**How(how does it solve it):**

1. Add `serverDockerfile` which contains all the docker code.
2. Add `.scripts` folder where we will store all the scripts; for
example in our case, where proton installation script will reside.

## Required Checklist:

- [ ] I have added any necessary documentation and comments in my code
(where appropriate)
- [ ] I have added tests to make sure my code runs in all contexts

## Further comments
2024-03-29 10:03:31 +03:00
Wanjohi
7d5d8be14b feat: Add relay docker image (#1)
## Description

**What(what issue does this code solve/what feature does it add):**

We are adding the `Dockerfile` to build a moq-relay

**How(how does it solve it):**

1. Added `relay.Dockerfile` with all the docker code to build
kixelated's moq-relay.
2. Added `relay.yml` in workflows for building and publishing the docker
image

## Required Checklist:

- [ ] I have added any necessary documentation and comments in my code
(where appropriate)
- [ ] I have added tests to make sure my code runs in all contexts

## Further comments
2024-03-29 09:40:29 +03:00
Wanjohi
601c268a39 feat: initial commit 2024-03-29 08:55:02 +03:00