Steps to install
-
cd janus change the config with auth (passwords eg)
docker-compose build (optional - this will setup janus locally) the dockerfile is mostly from https://github.com/atyenoria/janus-webrtc-gateway-docker you will also need to setup https - later on this on your development machine you can use a solution like dinghy (https://github.com/codekitchen/dinghy) which has a http gateway out-of-the-box or can use something like https://github.com/nginx-proxy/nginx-proxy
change the secrets in janus/etc/janus/janus.jcfg
-
token_auth_secret = "secret"
-
admin_secret = "janusoverlord"
-
set admin_key = "secret" #use the same password as #1 (token_auth_secret) API server assumes this in the following files janus/etc/janus/janus.plugin.videoroom.jcfg janus/etc/janus/janus.plugin.textroom.jcfg janus/etc/janus/janus.plugin.audiobridge.jcfg
docker-compose up -d -> janus should be up test by hitting /janus/info
-
-
in the main project directory
create .env file with the following JANUS_ADMIN_SECRET=janusoverlord JANUS_TOKEN_SECRET=secret JANUS_ADMIN_URL=https://janusadmin.my.docker/admin/ JANUS_URL=wss://janus.my.docker/ Note: the url corresponds to the janus server(step 1) reachable over https
docker-compose build
docker-compose up -d
this should bring up the node server to communicate with janus
- cd react-web-ui/ run yarn run yarn start to play around with the UI components
Features:
- Janus API that implements janus protocol for the following plugins a. audiobrige b. videoroom - publishers and subscribers c. textroom
- Added Functionality like chat, polls, whiteboard on top of textroom
Plan:
- Create a separate node app to factor out a shared room state which can act as a point of sync for all participants
- Use websockets for data sync instead of datachannels (easier)
- Better default styling for the components
- reconnect on failure
- Mobile support via React Native of all web components