- Go 65%
- Nix 15.6%
- HTML 12.9%
- JavaScript 3.7%
- CSS 2.8%
| assets | ||
| cmd/bnuuyears | ||
| config | ||
| LICENSES | ||
| nix | ||
| services | ||
| templates | ||
| utils/fiberutils | ||
| .air.toml | ||
| .env | ||
| .envrc | ||
| .gitignore | ||
| .prettierignore | ||
| default.nix | ||
| flake.lock | ||
| flake.nix | ||
| go.mod | ||
| go.sum | ||
| README.md | ||
| REUSE.toml | ||
bnuuyears
bnuuyears is a WebRTC SFU designed around single-user, low-latency livestreams similar to OwnCast.
roadmap
- WHIP ingestion from OBS or ffmpeg
- RTMP ingestion
- WHEP/WebRTC video stream (lowest latency)
- simulcast (OBS layers)
- WARP ingestion (even faster)
- HLS video stream (highest latency, best compatibility)
- WebIRC chat (no web browser required)
- local chat (no IRC server required)
- chat emotes
- activitypub outgoing notifications
- shared browser (like rabb.it)
- maybe some webxr bullshit (like bigscreen)
developing
nix is our best friend
# start the server
nix run
# use live-reload
# CAVEAT: do not use when developing webrtc.
nix run .#dev
# just run go
go run ./cmd/bnnuyears
# build it (prod assets)
nix build
# build it (dev assets)
go build ./cmd/bnuuyears
# test it
go test ./...
# lint it
nix fmt
deploying on nixos
(sorry for the crudeness please adapt its instructions)
with flakes
{
inputs = {
bnuuyears.url = "https://git.gay/41666/bnuuyears/archive/main.tar.gz";
};
outputs = inputs: {
# ....
imports = [
inputs.bnuuyears.nixosModules.default
];
services.bnuuyears = {
enable = true;
};
};
}
deploying a container
use the image: git.gay/41666/bnuuyears:latest
streaming to it
this is temporary and will change. pay attention,
with OBS,
- Settings
- Stream
- Service set to "WHIP"
- Server set to
http://your-ip:8073/webrtc/whip - Bearer Token left blank
- Total layers set to
1(we'll support more later)
contributing
agree that trans rights are human rights
all code must be organically grown. synthetically generated carrots are NOT permitted.
if skill is an issue, try opening an issue instead. maintainers will get to it when they can.
license
all code licensed under AGPL-3.0 only, unless otherwise tagged (such as pion example code)
bnuuyears branding images are licensed under CC BY-NC-SA 4.0 by 41666.
this project is REUSE 3.3 compliant. files MUST include license information or be annotated via REUSE.toml.
licenses texts are available in ./LICENSES