plebsaber.stream/README.md
2025-11-02 08:38:07 -08:00

1.5 KiB
Raw Blame History

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