Commit Graph
100 Commits
Author SHA1 Message Date
Wanjohi 4c33d7fe00 🐜 fix(runner): Fix Pacman failing to install packages on Amazon Linux 2 (#167)
CachyOS v3 fails to run pacman while on Amazon Linux 2... causing issues
with running our hosted version on ECS

Exact errors:
```bash
[root@2b6cbba9d746 /]# sudo pacman -Syu vim
error: failed to initialize alpm library:
(root: /, dbpath: /var/lib/pacman/)
could not find or read directory
```
2025-01-27 07:14:21 +03:00
Wanjohi bec5ba7c99 ⭐ feat(runner): Add ludusavi backups (#166)
This lets us do game backups with this command
`STEAMAPPID=730 ludusavi wrap --infer steam --force
"steam://yourcommandhere"`
2025-01-26 10:19:10 +03:00
Wanjohi 9b8d187887 ⭐feat(www): Add api docs (#161) 2025-01-21 03:38:22 +03:00
Wanjohi f480ced756 ⭐ feat: Connect the frontend to the API (#160) 2025-01-18 07:12:47 +03:00
Wanjohi 3be481e260 ⭐ feat(www): Finish up on the UI components (#158) 2025-01-14 03:24:53 +03:00
Wanjohi 4df031d1bb ⭐ feat(www): Add the home page UI (#155) 2025-01-10 01:22:45 +03:00
Wanjohi f6287ef586 ⭐feat(auth): Update the authentication UI (#153)
We added a new Auth UI, with all the business logic to handle profiles and such... it works alright
2025-01-07 23:58:27 +03:00
Wanjohi 56b877fa27 ⭐feat: Add a websocket party (#152)
This adds functionality to connect to remote server thru the party
2025-01-05 23:45:41 +03:00
Wanjohi b47448255f ⭐feat: Add more API endpoints (#150) 2025-01-05 01:06:34 +03:00
Wanjohi fc5a755408 ✨ feat: Add auth flow (#146)
This adds a simple way to incorporate a centralized authentication flow.

The idea is to have the user, API and SSH (for machine authentication)
all in one place using `openauthjs` + `SST`

We also have a database now :)

> We are using InstantDB as it allows us to authenticate a use with just
the email. Plus it is super simple simple to use _of course after the
initial fumbles trying to design the db and relationships_
2025-01-04 00:02:28 +03:00
Wanjohi 33895974a7 🐜 fix(ci): Fix scheduled runners not working (#149) 2025-01-03 23:59:38 +03:00
Wanjohi 137b60edb8 ⭐ feat(runner): Add steam (#148)
Nothing much- This just adds Steam to the image
2025-01-03 23:32:28 +03:00
Wanjohi 0d36acb983 ✨ feat: Minor changes to the frontend (#145)
This PR does a facelift to the `/` and `/pricing` pages
2024-12-26 22:27:27 +03:00
Wanjohi a85c10a281 🐛 fix: Cache the runner image to reduce build time (#143) 2024-12-10 18:41:34 +03:00
Wanjohi 8d6b7f744b ✨ feat: Add CI for container (#141)
This creates a CI job for building `containers/runner.Containerfile` on
PR or on merge to main.

This helps in checking whether it can build and work as expected
2024-12-09 20:20:41 +03:00
379db1c87b ✨ feat: Add streaming support (#125)
This adds:
- [x] Keyboard and mouse handling on the frontend
- [x] Video and audio streaming from the backend to the frontend
- [x] Input server that works with Websockets

Update - 17/11
- [ ] Master docker container to run this
- [ ] Steam runtime
- [ ] Entrypoint.sh

---------

Co-authored-by: Kristian Ollikainen <14197772+DatCaptainHorse@users.noreply.github.com>
Co-authored-by: Kristian Ollikainen <DatCaptainHorse@users.noreply.github.com>
2024-12-08 14:54:56 +03:00
Wanjohi 86be67ad12 docs: Update README (#122)
Update the README
2024-10-27 01:40:57 +03:00
Wanjohi 7b29d68aed ✨ feat: Add package docker-to-rootfs (#121)
This package will handle creating the rootfs needed by CrosVM

> More info incoming
2024-10-10 14:42:16 +03:00
Wanjohi bae089e223 ✨ feat: Host a relay on Hetzner (#114)
We are hosting a [MoQ](https://quic.video) relay on a remote (bare
metal) server on Hetzner

With a lot of help from @victorpahuus
2024-09-26 21:34:42 +03:00
Wanjohi c4a6895726 🐛 fix: Remove problematic script 2024-09-24 22:15:56 +03:00
Wanjohi efe95a7c8d ✨ feat: Add sys design 2024-09-23 20:15:49 +03:00
Wanjohi e322693b70 🐛 fix: Move project structure to CONTRIBUTING.md 2024-09-20 15:10:50 +03:00
Wanjohi 1693fef708 ✨ feat: Add the Project Structure section to the Contributing.md 2024-09-20 14:43:09 +03:00
Wanjohi 41dbaf1b21 ✨ feat: Add CODE_OF_CONDICT.md and CONTRIBUTING.md 2024-09-20 14:32:05 +03:00
Wanjohi 9665549d0c ✨feat: Onboarding 2024-09-20 11:37:30 +03:00
Wanjohi 6b422ca290 🐛 fix: Remove unused vars 2024-09-17 22:00:55 +03:00
Wanjohi f2f3386bdb ✨ feat: Onboarding 2024-09-16 21:10:33 +03:00
Wanjohi 58e93b28e9 ✨ feat: Add donate page 2024-09-16 15:43:57 +03:00
Wanjohi 3088b050ed 🐛 fix: Add extra info to the hero section 2024-09-15 12:52:44 +03:00
Wanjohi 7663e17644 🐛 fix: Fix Portal on Safari 2024-09-15 01:27:06 +03:00
Wanjohi 5b713521a1 🐛 fix: Fix absolute game cover on Safari 2024-09-15 01:21:26 +03:00
Wanjohi b1f35c9953 🐛 fix: Fix loading animation for images 2024-09-15 01:02:42 +03:00
Wanjohi 0696c9fc60 🐛 fix: Fix overflow on mobile 2024-09-14 20:44:51 +03:00
Wanjohi abb4874749 ✨ feat: Add open-source feature 2024-09-13 23:41:17 +03:00
Wanjohi 0d4f0bce11 🐛 fix: Fix hover state on game cards 2024-09-13 21:52:25 +03:00
Wanjohi c641d413a9 ✨ feat: Add game modals to homepage 2024-09-13 20:51:03 +03:00
Wanjohi cac927196a 🐛 fix: Fix footer styling arrangement 2024-09-13 18:46:27 +03:00
Wanjohi c30673f5a1 ✨ feat: Add /home (#111) 2024-09-13 17:41:34 +03:00
Wanjohi 1b1bedff36 ✨ feat: Add api (#112)
Add the api route -> https://nexus.nestri.workers.dev/
2024-09-10 22:38:35 +03:00
Wanjohi df9f1cfe95 🐛 fix: Align the footer components 2024-09-08 23:03:12 +03:00
Wanjohi b347115eae ✨ feat: Clean up after the blog 2024-09-08 21:28:36 +03:00
Wanjohi 5b4ea64b94 ✨ feat: Add markdown support plus /blog (#107)
Adds `/blog` page with support for `.md` and `.mdx` files.

What we learnt in setting this up will be packages in a package `@nestri/mdx` and used to set up the `/docs` and the `/terms` and `/privacy` routes
2024-09-08 20:16:56 +03:00
Wanjohi 8cc5a8b9e6 🐛 fix: Fix the hover event on footer links 2024-09-06 23:21:33 +03:00
Wanjohi d66248cb97 🐛 fix: Use mute card colors 2024-09-05 21:30:30 +03:00
Wanjohi 1555dd7ab2 ♻ refactor: Remove apps/docs 2024-09-05 19:27:33 +03:00
Wanjohi 168be939a6 🐛 fix: Change theme color for Safari 2024-09-05 18:07:24 +03:00
Wanjohi 2e26ed08a1 ✨ fix: Change up the /404 page 2024-09-05 17:33:46 +03:00
Wanjohiand--global e2e5497c62 ✨ feat: Add www to cloudflare pages (#105)
Co-authored-by: --global <--global>

Add our website to cloudflare pages
2024-09-03 06:55:51 +03:00
Wanjohi 62b7a841ed ✨ feat: Add home 2024-09-02 15:46:28 +03:00
Wanjohi 2b6a048ccd 🐛 fix: Use a lower contrast color for as background color 2024-09-01 02:13:16 +03:00
Wanjohi ba15f30bbf ✨ feat: Add game card with better colors 2024-09-01 01:19:15 +03:00
Wanjohi 8b42688bd4 ✨ feat: Game card 2024-09-01 00:34:50 +03:00
Wanjohi 1f9d3be2a6 🐛 fix: Use better contrast for selection 2024-08-31 22:00:09 +03:00
Wanjohi 22d43411b1 ✨ feat: Add support for MDX (#104)
This is an attempt to create our docs and blogs website
2024-08-31 21:37:45 +03:00
Wanjohi a90fe4ba7a 🐛 fix: Remove unnecessary packages 2024-08-31 04:59:32 +03:00
Wanjohi 9a17df391a 🐛 fix: Remove Steam id generator 2024-08-31 04:56:19 +03:00
Wanjohi e0b7e46c76 ✨ feat: Add a makeshift 404 page 2024-08-30 17:30:59 +03:00
Wanjohi dc5a36b9d6 ✨ feat: Add 404 page 2024-08-30 16:57:08 +03:00
Wanjohi 73cec51728 ✨ feat: Add qwik-react (#103)
This adds the following pages:

The landing page (/)
The pricing page (/pricing)
The contact page (/contact)
The changelog page (/changelog)
Terms Of Service page (/terms)
Privacy Policy (/privacy)
2024-08-30 16:19:58 +03:00
Wanjohi d13d3dc5d8 ✨ feat: Add nav-progress bad 2024-08-30 11:08:58 +03:00
Wanjohi 666aabeda2 🐛 fix: Change path to banner image 2024-08-30 10:38:57 +03:00
Wanjohi 5520883f00 ✨ feat: Add SEO stuff 2024-08-30 10:35:24 +03:00
Wanjohi 1cef08ebdf ✨ feat: Add eslint 2024-08-30 10:26:36 +03:00
Wanjohi fd16947e14 ✨ feat: Add tailwind and cloudflare support 2024-08-30 10:22:10 +03:00
Wanjohi 19923845c0 ✨ feat: [MAJOR] Rebrand (#101)
## Description

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

1. Netris has been renamed and rebranded to Nestri.
2. New Logo and colors, plus a new Philosophy and mission(more on that
later)
3. We are moving all different repos into this one - which means API,
Docker, Website, Docs etc will be moved here
2024-08-20 15:12:00 +03:00
Wanjohi b12b26223c ✨ feat: Add nestri cli (#79)
## Description

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


We are adding an option to start the Nestri server (omg almost called it
Netris :) using a cli

The idea is to reduce the friction of starting up the service and
running it, this includes:
1. Installing and configuring the Windows executables for the game
2. Running the game on a linux machine
3. Preparing the host system i.e configuring Docker, Nvidia
{Drivers,CUDA} etc etc
2024-06-28 03:26:11 +03:00
Wanjohi e729e1c57e 🐛 fix(labeler): Use remote config (#89)
## Description

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

PR labeler does not work on PR forks, still... I dunno why
2024-06-18 02:39:13 +03:00
Wanjohi 04a277dede 🐛 fix(autolabeller): Use GITHUB_TOKEN for adding labels too (#88)
## Description

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

Well, we figured out the first part(PR TITLE) and forgot about the
labelling part. 😅 Consult #87 for more info
2024-06-18 01:56:20 +03:00
Wanjohi 51366d3b4b 🐛 fix(autolabeller): Use GITHUB_TOKEN for autolabelling (#87)
## Description

**What issue are you solving (or what feature are you adding) and how
are you doing it?**
We are using my personal account key to do autolabelling. This used to
work when the project was under my personal, but now it breaks whenever
some 3rd party tries to open a PR
2024-06-18 01:48:39 +03:00
Wanjohi fd4f575b46 🐛 fix: Delete .scripts/supervisord.d directory (#81) 2024-06-06 21:08:18 +03:00
Wanjohi 3991027587 🐛 fix(server): Replace netris with nestri in supervisord.conf (#80)
## Description

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

Supervisord fails to run as user `netris` no longer exists. So we are
renaming all occurrences of old username with new username `nestri`
2024-06-06 19:10:24 +03:00
Wanjohi 5c9cb8e563 🐛 fix: Rename netris to nestri (#78)
## 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.
2024-06-06 00:27:40 +03:00
Wanjohi 3fed8605fa 📝 docs(readme): Add manual setup and game launch instructions (#69)
## Description

**What issue are you solving (or what feature are you adding) and how
are you doing it?**
Update the README to show how to how to run Netris.
2024-05-30 03:22:16 +03:00
Wanjohi 674124e819 🐛 fix(server): Final touches (#66)
## Description

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

This is a catch all PR that tries to smooth out the creases found while
playing using Netris.
What i have found so far:
1. Change `NAME` environment to `SESSION_ID` for warp server.
2. Run `entrypoint.sh` and `warp-input` as user `netris`
3. Netris-proton is broken, it quits prematurely. I think it has to be a
problem with a missing wine installation
2024-05-30 01:53:07 +03:00
Wanjohi 9a11f459cb 🐛 fix(input): Retry when namespace doesn't exist (#65)
## Description

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

`Warp-input` server errors out when the namespace or `session_id` has
not yet been created on our relay.
This is a problem, as we do not know when the user will start playing.
The idea is to have the bin/input run both a server and a client at the
same time. Which can be used to then transmit bidirectional information.
2024-05-27 01:08:56 +03:00
Wanjohi 46fe87a715 ✨ feat(server): Add warp-input server (#64)
## Description

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

We need to remove the inputtino server, and replace it with `warp-input`
server, which is developed in-house and it works.
2024-05-25 00:52:46 +03:00
Wanjohi 204730450c ✨ 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
2024-05-25 00:24:45 +03:00
Wanjohi e6fa6ea6e1 🐛 fix(server): Support the Open Kernel Module (#62)
## Description

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

Currently, the container fails when trying to download drivers for a
container running non-proprietary Nvidia drivers. So, this is a fix
which searches for numbers rather than a fixed point in the string.
2024-05-25 00:07:27 +03:00
Wanjohi ea157b4898 ✨ feat(server): Rename /netris/proton to netris-proton (#61)
## Description

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

With help from @djpremier, rename `/usr/bin/netris/proton` as "the
script cannot be found in bash `(eg.: $ proton -r /games/AlanWake.exe)`
if it is in the subdirectory of /usr/bin, probably because it is found
in a subdir inside `/usr/bin` "
2024-05-25 00:02:36 +03:00
Wanjohi df332b66bc 🐛 fix(git): Build warp-input on push to main (#57)
## Description

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

There is a bug whereby `netris/warp-input` does not build and deploy a
new nightly docker image when a pr is merged. This happens when there
are changes in `bin/input/**` directory, and this is not the expected
behaviour. So i added the directory back into the `warp-input.yml`
workflow file.
2024-05-21 03:24:37 +03:00
Wanjohi 8304ca08a4 🐛 fix(input): Append input to server's session ID for now (#56)
## Description

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

I am having issues trying to append `input` to the session_id using
bash. Most probably because supervisord is using the ENV variables
already available in the container. So, here we append the `input` part
inside the rust binary instead. This is much cleaner and it works.
2024-05-21 03:13:52 +03:00
Wanjohi 9bb194091d 🐛 fix(git): Release warp* docker images too (#46)
## Description

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

`warp-input.yml` workflow was not getting invoked on push. So, I change
the `Github Token` which has broader permissions.
2024-05-19 05:06:54 +03:00
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