Waterfall is a cascaded, decentralised SFU. The intention is to be a implementation of Matrix's MSC3898: Native Matrix VoIP signalling for cascaded foci (SFUs, MCUs...). This example is self contained and doesn't require any external software. The project was informed by the following goals.
SFU <-> SFU
are higher quality then public hops.This project is at an early stage and implements the MSC only roughly - given the current experimental nature of this projects, it deviates in certain areas from the MSC.
cp config.sample.yaml config.yaml
config.yaml
./scripts/run.sh
./scripts/profile.sh
./scripts/build.sh
./dist/bin
In order to build a docker image, run the following in the root directory:
$ docker build . -t matrix/waterfall
Just use docker-compose up
and you're good to go.
Or docker-compose up -d
if you're running it on a server in a detached state.
You can then find your container ID by checking docker container ls
.
Which could then be used to e.g. check the container logs with docker container logs <ID>
.
If you're developing locally, you can replace the path to the image with your own image tag, e.g. matrix/waterfall
.
To run the image from the current directory assuming that there is a config.yaml
:
docker run \
-v $(pwd)/config.yaml:/config.yaml \
--network host \
-it --rm matrix/waterfall \
sfu --config config.yaml
You can find an example for a local VoIP setup with Element Call and SFU here: local environment setup