2025-11-03 15:28:57 -08:00
2025-09-28 23:18:09 -07:00
2025-09-28 23:18:09 -07:00
2025-11-03 15:28:57 -08:00
2025-10-29 13:05:43 -07:00
2025-10-29 13:05:43 -07:00
2025-08-09 00:16:28 -07:00
2025-10-30 09:54:16 -07:00
2025-10-30 09:54:16 -07:00
2025-10-29 11:54:00 -07:00
2025-11-02 08:39:48 -08:00

Plebsaber.stream

BeatLeaderpowered tools for Beat Saber.

BeatLeader OAuth setup

Set these environment variables (e.g. in your process manager or .env when using adapternode):

BL_CLIENT_ID=your_client_id
BL_CLIENT_SECRET=your_client_secret

Then start the dev server and visit /auth/beatleader/login to authenticate. Tokens are stored in httpOnly cookies and attached to all serverside BeatLeader API calls.

Developing

Once you've created a project and installed dependencies with npm install (or pnpm install or yarn), start a development server:

npm run dev

# or start the server and open the app in a new browser tab
npm run dev -- --open

Nix Deployment

I use Caddy for TLS.

plebsaber.stream {
  reverse_proxy http://127.0.0.1:8037
}

I use sops-nix to deploy the flake with OAuth secrets.

sops = {
  defaultSopsFile = ./sops.yaml;
  secrets = {
    "plebsaber-stream.env" = {
    sopsFile = ../_sops/plebsaber-stream.env;
    format = "dotenv";
    restartUnits = [ "plebsaber-stream.service" ];
    };
  }
};
services.plebsaber-stream = {
  enable = true;
  environmentFile = config.sops.secrets."plebsaber-stream.env".path;
};

Then add the flake from this repository into your flake inputs.

inputs.plebsaber-stream = {
  url = "git+https://git.plebsaber.stream/pleb/plebsaber.stream.git";
  inputs.nixpkgs.follows = "nixpkgs";
};

For updates, push commits to a repository and then update your flake.

nix flake lock --update-input plebsaber-stream
nixos-rebuild test .#webserver
Description
Helper tools and such for Beat Saber players
https://plebsaber.stream
Readme 2.8 MiB
Languages
Svelte 53.4%
TypeScript 44.1%
Nix 1.1%
CSS 0.8%
JavaScript 0.4%
Other 0.2%