317 Commits

Author SHA1 Message Date
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