Git Product home page Git Product logo

rivet's Introduction

Rivet

License Apache-2.0 GitHub commit activity GitHub closed issues GitHub closed issues

Features

๐ŸŽฎ Dedicated Game Servers

Deploy game servers in minutes across multiple regions & clouds providers.

  • Optimize for performance or cost, servers starting at $2.85/mo
  • Auto-scales 90% faster than AWS GameLift
  • No-downtime deploys & instant rollbacks
  • Monitoring & crash reporting

Documentation

๐Ÿ›ก๏ธ DDoS Mitigation

  • No added latency
  • Supports UDP & TCP & WebSockets & WebRTC
  • Automatic SSL for game servers (WebSockets & TCP+TLS)

Documentation

๐ŸŒ CDN

Asset delivery, game downloads, & website hosting

  • Custom domains
  • Instant rollbacks
  • Automatic SSL

Documentation

๐Ÿงฉ Backend Modules

Write server-side logic using TypeScript (or use your own API server)

  • Modules include matchmaking, parties, authentication, & more
  • Postgres database included for persistence
  • Powered by Open Game Backend

Documentation

๐Ÿš€ Getting Started

Self-hosting & development

See the setup guide to develop & deploy Rivet yourself.

Rivet Cloud

Rivet Cloud is the fastest and most affordable way to get your game up and running. Sign up at rivet.gg.

๐Ÿ’ฌ Community & Support

Discord

Invite

  • Lounge The Rivet team is remote and does most of their work in public Discord voice chat. Come drop by if you have questions or want to hang!
  • #support Ask questions about getting your game runnin on Rivet
  • #open-source-dev Ask questions about the open source repo
  • #showcase Show off your game, get feedback

Releases

Stay up to date on the latest releases on X.

Technical release notes can be subscribed to by watcing this repository.

Bugs & Feature Requests

Bugs and feature requests can be submitted as a GitHub Issue.

Roadmap

We create public issues for most items on our roadmpa.

Subscribe to issues to get notified when they're updated. Add a ๐Ÿ‘ reaction to issues to get them prioritized faster

๐Ÿ“ Architecture

We maintain a detailed architecture diagram here.

Architecture

๐Ÿ“– Documentation

Game developers

Visit our documentation for game developers here.

Internal documentation

License

Apache 2.0

Trust no-one, own your backend

rivet's People

Contributors

amckinney avatar angelonfira avatar blckbrry-pi avatar dsinghvi avatar eltociear avatar github-actions[bot] avatar graphite-app[bot] avatar luisfonsivevo avatar masterptato avatar maxcwhitehead avatar mendymm avatar nathanflurry avatar yusufsallam64 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rivet's Issues

[SVC-2367] Remove salt-key for deleted servers

  • When we delete a server, salt apply fails because the server is no longer reachable
  • Add a null_resource with a shell script in pools that calls salt-key -D on any servers not present in Terraform
    • Use triggers to automatically calls this when the servers change

From SyncLinear.com | SVC-2367

[SVC-2478] Speed up creating standalone server

We need to analyze what chunks take up the most time.

Off the top of my head, the big ticket items:

  • Generating Nix config
  • Building bolt
  • Building services

We should be able to use tools like Flax or Cachix for Nix & sscache for Bolt & services. Potentially Cachix can solve the Bolt issue too if we build it with the shell.

From SyncLinear.com | SVC-2478

[SVC-2663] Allow for using domain-based authentication from domains not hosted on Rivet's CDN

Description

Allow for adding valid domains to each namespace for where requests can originate from.

Motivation

Developers should be able to authenticate requests using domain-based authentication from their own custom file servers

Workaround

Developers doing this right now need to use their own public namespace token.

Context

https://discord.com/channels/822914074136018994/1126154788455858288/1126404094014275634

From SyncLinear.com | SVC-2663

[SVC-2479] Send cluster events to PostHog

  • Needs to consent on bolt init
  • Add a property no_analytics on namespace TOML
  • Need some way of storing persistence
    • Maybe include a "cluster id" in the namespace toml?
  • Need to figure out what to send
  • Want periodic usage of server resources, lobbies, games, players, etc once every hour
  • Need to send setup events
  • Need to send the configs in use

From SyncLinear.com | SVC-2479

[SVC-2479] Send cluster events to PostHog

  • Needs to consent on bolt init
  • Add a property no_analytics on namespace TOML
  • Need some way of storing persistence
    • Maybe include a "cluster id" in the namespace toml?
  • Need to figure out what to send
  • Want periodic usage of server resources, lobbies, games, players, etc once every hour
  • Need to send setup events
  • Need to send the configs in use

From SyncLinear.com | SVC-2479

[SVC-2590] Write standalone production setup guide

Motivation

We need to document how to deploy a production instance of Rivet for self-hosted. At the moment, we only document how to set up a dev server.

Questions

  • Should we document just standalone servers or clusters too?
  • How much does this differ from local development?
  • Should we look at using prebuilt images?

From SyncLinear.com | SVC-2590

[SVC-1666] Prewarm ATS cache when deploying a new version

Motivation

Booting new lobbies right after deploying a new version requires a long wait time because the node has to download the image directly from S3.

Prewarming the cache will save the image to the cache before trying to boot any lobbies.

This is blocked by using consistent_hash in ATS because this will also change the ATS architecture.

Implementation

  • List all ATS nodes from Consul for the version's regions
  • Make a request for the asset
  • Wait for it to complete & handle failure gracefully

From SyncLinear.com | SVC-1666

[SVC-2589] Add ability to BYO job server without using Terraform

Motivation

It's common for developers to either bring in custom hardware, non-standard hardware (e.g. OVH's non-standard configurations), or use on-prem hardware.

MVP

  • Create an install script to run on the machine
  • Add a way in the namespace config to register the machine

Challenges

  • Issuing Nebula certs
  • Negotiating salt-key approval

From SyncLinear.com | SVC-2589

[SVC-2583] Investigate best way to boot hub for development

Requirements

  • Make getting backend & hub up and running as quickly as possible
  • Allow running hub independently without the backend

Options

  • What we do now: run webpack for the other repo and manually set BASE_URL
  • Automatically deploy to Cloudflare Pages from backend Terraform
  • Serve the repo through Traefik with a local-built copy
  • Serve the repo through Traefik with a webpack hot reload server

Other notes

  • Need to find a simple way to merge hub_origin_regex and hub_origin

From SyncLinear.com | SVC-2583

[SVC-824] Configure ATS parent caches using `consistent_hash` to improve cache hits

Motivation

Our current caching system doesn't scale since each Traffic Server node will have to cache a large chunk of the requests individually.

If we can consistently route our requests to the correct ATS nodes based on the hash of the request, we'll be able to get consistent cache hits.

Potential Problems

  • We still need redundancy, so we'll still need to have a fallback node for each hash unless ATS allows us to have a fallback if the parent is down
  • We need to have a consistent number of buckets. Changing the number of buckets is potentially error prone.

Links

From SyncLinear.com | SVC-824

[SVC-2552] Re-enable regional ATS caching for matchmaker images & CDN

Motivation

ATS caching was disabled because of a sporadic bug that would cause it to return an empty response under load.

This was likely caused by an underlying issue with B2 that we've seen elsewhere returning invalid results.

When this is enabled again, this will speed up image pulls & reduce S3 fees significantly.

Implementation

  • Switch to S3
  • Add back regional ATS node

From SyncLinear.com | SVC-2552

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.