71 lines
1.5 KiB
Markdown
71 lines
1.5 KiB
Markdown
# 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
|
||
```
|