Commit Graph
37 Commits
Author SHA1 Message Date
Wanjohi ad210f2b75 🐛 fix(git): Fix release (#45)
## Description

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

Well, I tried doing a release and it did not go as expected, due to some
issues with the git_token plus concurrency. So, i have fixed that... let
us do a re-release.
2024-05-19 04:42:14 +03:00
Wanjohi a0956eccc0 📝 docs: Add README.md (#42)
## Description

**What issue are you solving (or what feature are you adding) and how
are you doing it?**
So, we need a README.md at the root of the project, to at least welcome
anyone who might be interested in the project.

It should have:
- [ ] link to the `/play` endpoint to get a `session_id` for starting up
the server.
 - [ ] (basic) info about how it works
 - [ ] features
 - [ ] images and/or gifs showcasing the project
2024-05-19 04:08:17 +03:00
Wanjohi b91b8bba33 🐛 fix(git): Add docs/** branch (#44)
## Description

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

There seems to be a problem with auto-labeler labelling `type:docs`. So
i am adding to check on the `docs/**` branch too and label that
accordingly.
2024-05-19 01:50:42 +03:00
Wanjohi c0f573599f ✨ feat(input): Migrate to moq for input transmission (#38)
## Description

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

We cannot use golang for our input binary as we will be redoing the
Webtransport stack, plus we will have to use CGO in-order to hook into
X11. Like what [neko](https://github.com/m1k1o/neko) does.

However, we could go down the Rust route, where X11 mouse/keyboard
drivers are in pretty, and moq-rs (the MoQ library using Webtransport)
works really well. So, that is what am trying to do here; implement
input using rust.
2024-05-18 01:51:35 +03:00
Wanjohi 3222d3b4e5 ✨ feat: Add input server (#37)
## Description

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

Doing some ground work for the input server, here I am initializing a go
project. That's all
2024-05-01 03:27:36 +03:00
Wanjohi cea6cc5340 🐛 fix(github): Add build type to auto-labeller for dependabot (#36)
## Description

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

Dependabot does not have a `build` semver type and it keeps triggering
the autolabeller. So, i added that in there, plus slimmed down the
pull_request_template as it required too much info, which made it too
cumbersome filling it
2024-05-01 02:24:57 +03:00
Wanjohi 34ed8f90be ✨ feat(server): Install winetricks (#31)
## 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-22 21:26:45 +03:00
Wanjohi 593ab09195 🐛 fix(server): Run input-server as root to get permissions to create … (#30)
…devices

## Description

**What(what issue does this code solve/what feature does it add):**
Currently we get a permission error when trying to create a mouse.

On further investigation, we realise that we have to run
`/inputtino/input-server` as sudo/root.

**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 17:28:09 +03:00
Wanjohi d2cf25b752 ✨ feat(moq-server): Add audio 2024-04-22 13:23:40 +03:00
Wanjohi da9e2b7207 🔧 chore: Use dependabot to maintain and update moq-server (#28)
## Description

**What(what issue does this code solve/what feature does it add):**
Update the moq-server submodule to support audio

**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 13:20:36 +03:00
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
WanjohiandWanjohi 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