Commit Graph

60 Commits

Author SHA1 Message Date
Kristian Ollikainen
6e82eff9e2 feat: Migrate from WebSocket to libp2p for peer-to-peer connectivity (#286)
## Description
Whew, some stuff is still not re-implemented, but it's working!

Rabbit's gonna explode with the amount of changes I reckon 😅



<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced a peer-to-peer relay system using libp2p with enhanced
stream forwarding, room state synchronization, and mDNS peer discovery.
- Added decentralized room and participant management, metrics
publishing, and safe, size-limited, concurrent message streaming with
robust framing and callback dispatching.
- Implemented asynchronous, callback-driven message handling over custom
libp2p streams replacing WebSocket signaling.
- **Improvements**
- Migrated signaling and stream protocols from WebSocket to libp2p,
improving reliability and scalability.
- Simplified configuration and environment variables, removing
deprecated flags and adding persistent data support.
- Enhanced logging, error handling, and connection management for better
observability and robustness.
- Refined RTP header extension registration and NAT IP handling for
improved WebRTC performance.
- **Bug Fixes**
- Improved ICE candidate buffering and SDP negotiation in WebRTC
connections.
  - Fixed NAT IP and UDP port range configuration issues.
- **Refactor**
- Modularized codebase, reorganized relay and server logic, and removed
deprecated WebSocket-based components.
- Streamlined message structures, removed obsolete enums and message
types, and simplified SafeMap concurrency.
- Replaced WebSocket signaling with libp2p stream protocols in server
and relay components.
- **Chores**
- Updated and cleaned dependencies across Go, Rust, and JavaScript
packages.
  - Added `.gitignore` for persistent data directory in relay package.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: DatCaptainHorse <DatCaptainHorse@users.noreply.github.com>
Co-authored-by: Philipp Neumann <3daquawolf@gmail.com>
2025-06-06 16:48:49 +03:00
Wanjohi
6092c4e4f8 🐜 fix(www): Change CTA for now (#223)
## Description
Change the CTA for the landing page
2025-04-03 18:29:21 +03:00
Wanjohi
a23ae8025b 🐜 fix(www): Fix GPU lines on iOS (#183)
## Description
I am trying to fix a bug where the `Bring your own GPU` landing page
feature is broken on iOS

## Related Issues
<!-- List any related issues (e.g., "Closes #123", "Fixes #456") -->

## Type of Change

- [x] Bug fix (non-breaking change)
- [ ] New feature (non-breaking change)
- [ ] Breaking change (fix or feature that changes existing
functionality)
- [ ] Documentation update
- [ ] Other (please describe):

## Checklist

- [x] I have updated relevant documentation
- [x] My code follows the project's coding style
- [x] My changes generate no new warnings/errors

## Notes for Reviewers
<!-- Point out areas you'd like reviewers to focus on, questions you
have, or decisions that need discussion -->

## Screenshots/Demo
<!-- If applicable, add screenshots or a GIF demo of your changes
(especially for UI changes) -->
![IMG_1805
webp](https://github.com/user-attachments/assets/6b268737-243d-4a6d-920e-f86781b53ded)

## Additional Context
<!-- Add any other context about the pull request here -->
2025-02-11 13:59:12 +03:00
Wanjohi
060718d8b0 feat: Update website, API, and infra (#164)
>Adds `maitred` in charge of handling automated game installs, updates,
and even execution.

>Not only that, we have the hosted stuff here
>- [x] AWS Task on ECS GPUs
>- [ ] Add a service to listen for game starts and stops
(docker-compose.yml)
>- [x] Add a queue for requesting a game to start
>- [x] Fix up the play/watch UI 

>TODO:
>- Add a README
>- Add an SST docs

Edit:

- This adds a new landing page, updates the homepage etc etc
>I forgot what the rest of the updated stuff are 😅
2025-02-11 12:26:35 +03:00
Wanjohi
c2363b0bce feat: Add protobuf (#171)
This is a second attempt to add protobuf to Nestri, after the first one
failed

---------

Co-authored-by: Philipp Neumann <3daquawolf@gmail.com>
Co-authored-by: DatCaptainHorse <DatCaptainHorse@users.noreply.github.com>
2025-01-29 04:16:27 +03:00
Kristian Ollikainen
fb77dc9572 🐜 fix(runner): dbus directory and mesa install (#163)
should fix the missing dbus runtime directory issue, using mesa-git as
it's less cumbersome to deal with package wise than normal mesa

---------

Co-authored-by: DatCaptainHorse <DatCaptainHorse@users.noreply.github.com>
Co-authored-by: Wanjohi <elviswanjohi47@gmail.com>
2025-01-23 02:16:33 +03:00
Wanjohi
9b8d187887 feat(www): Add api docs (#161) 2025-01-21 03:38:22 +03:00
Wanjohi
4a27f54e80 🐜 fix(www): Fix the marquee 2025-01-21 01:12:58 +03:00
Wanjohi
0d0b1f4b14 🐜 fix(www): Fix posthog 2025-01-18 07:50:36 +03:00
Wanjohi
f480ced756 feat: Connect the frontend to the API (#160) 2025-01-18 07:12:47 +03:00
Wanjohi
dfe37a6cec 🐜 fix(www): Fix pricing button sound 2025-01-14 03:49:05 +03:00
Wanjohi
3be481e260 feat(www): Finish up on the UI components (#158) 2025-01-14 03:24:53 +03:00
Wanjohi
a3ff8bff9f 🐜 fix(www): Fix the random avatars 2025-01-10 23:23:18 +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
dede878c3c 🐜 fix(www): Fix a typo 2025-01-04 23:19:42 +03:00
Wanjohi
83908122bf 🐜 fix(www): Move the features around 2025-01-04 05:40:20 +03:00
Wanjohi
2c27420126 🐜 fix(www): Fix some typos 2025-01-04 05:35:58 +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
7d6a7542e2 🐛 fix(www): Fix a typo 2024-12-30 02:17:50 +03:00
Wanjohi
8c808bafcb 🐛 fix(www): Remove dead code 2024-12-27 13:06:35 +03:00
Wanjohi
08f2643dcd feat: Use howlerJS for audio 2024-12-27 13:01:13 +03:00
Wanjohi
82c1a3baea feat: Add even more features 2024-12-27 12:18:46 +03:00
Wanjohi
9fd7c6ff47 feat: Add more features 2024-12-27 12:01:11 +03:00
Wanjohi
c6c7b6a36d 🐛 fix: Change up FREE tier CTA 2024-12-27 02:10:22 +03:00
Wanjohi
c39866a019 🐛 fix: Fix a typo in pricing page 2024-12-26 22:46:13 +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
Kristian Ollikainen
b6196b1c69 feat: Custom gst webrtc signaller, runtime GPU driver package install and more (#140)
🔥 🔥

Yes lots of commits because rebasing and all.. thankfully I know Git
just enough to have backups 😅

---------

Co-authored-by: Wanjohi <elviswanjohi47@gmail.com>
Co-authored-by: Kristian Ollikainen <DatCaptainHorse@users.noreply.github.com>
Co-authored-by: Wanjohi <71614375+wanjohiryan@users.noreply.github.com>
Co-authored-by: AquaWolf <3daquawolf@gmail.com>
2024-12-08 16:37:36 +03:00
Wanjohi
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
be17ba026b feat: Add a new blog post 2024-10-27 05:12:05 +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
efe95a7c8d feat: Add sys design 2024-09-23 20:15:49 +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
b1f35c9953 🐛 fix: Fix loading animation for images 2024-09-15 01:02:42 +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
c30673f5a1 feat: Add /home (#111) 2024-09-13 17:41:34 +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
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
Wanjohi
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