Shig Instance
!!Attention!!
I'm currently doing a refactoring to make the code more readable.
The Main branch is currently broken.
The latest (running) version is available in branch: https://github.com/shigde/sfu/tree/running-main-v1
Shig is a federated service designed to distribute and replicate live streams among Fediverse instances.
It's built upon the WHIP/WHEP approach for both inbound and outbound streams.
Through an ActivityPub integration, Shig can follow other Fediverse services and receive updates on live stream activities.
![](https://github.com/shigde/sfu/raw/7d1d8e6fe877/docs/img/shig-stream-exchange.jpeg)
Features
Feature |
|
Develop State |
Release |
Endpoints |
|
|
|
|
WHIP/WHEP (Lobby) |
finish |
|
|
WHIP/WHEP (Instances) |
testing |
|
|
WHIP/WHEP (Static Files) |
develop |
|
|
Mute/Unmute |
testing |
|
|
WebRTC to RTMP |
develop |
|
|
WebRTC to HLS |
planned |
|
Bandwidth Estimation |
|
|
|
|
Receiver/Sender Reports |
planned |
|
|
Simulcast |
planned |
|
|
FEC |
planned |
|
Activity Pub |
|
|
|
|
Fallow PeerTube |
finish |
|
|
Fallow Channel |
finish |
|
|
Fallow Shig Instance |
planned |
|
|
Fallow Remote PeerTube |
testing |
|
|
OAuth between Services |
planned |
|
Deployment |
|
|
|
|
Docker |
planned |
|
Develop States: planed | develop | testing | finish
Documentaion
Quick Start
Run Shig Instance
make run
Run with some Data
Normally, the SFU (Shig instance) listens for data from other Fediverse instances.
However, to facilitate development, you could start the SFU with an included SQLite database.
Run inside the SFU project
mv shig-dev.db shig.db
Now you can start the SFU with some data.
Build
make build
Build Docker Container for Shig Instance
make build-container
Build with Docker
make docker-build
Build Docker Container for Shig Instance
make docker-build-container
Build Shig CLT
export DOCKER_DEFAULT_PLATFORM=linux/amd64
docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp shig-builder make build-clt-linux
Monitoring
Requirement
please install grafana loki docker plugin
docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions
Start Develop Monitoring
make monitor
Funded by