# Plebsaber.stream BeatLeader‑powered tools for Beat Saber. ## BeatLeader OAuth setup Set these environment variables (e.g. in your process manager or `.env` when using adapter‑node): ``` 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 server‑side 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: ```sh 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. ```js 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. ```js 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. ```sh nix flake lock --update-input plebsaber-stream nixos-rebuild test .#webserver ```