Skip to content

Kopano Web Meetings Server implements the signaling/channelling server for Kopano Web Meetings

License

Notifications You must be signed in to change notification settings

Kopano-dev/kwmserver

Repository files navigation

Kopano Web Meetings Server (kwmserver)

This project implements the signaling/channelling server for Kopano Web Meetings.

Technologies

  • Go
  • WebSockets
  • WebRTC
  • JSON

Quickstart

Either download a KWM Server binary release from https://download.kopano.io/community/kwmserver:/ or use the Docker image from https://hub.docker.com/r/kopano/kwmserverd/ to run Kopano Webmeetings Server. For details see below.

Build dependencies

Make sure you have Go 1.13 or later installed. This project uses Go Modules.

When building, third party dependencies will tried to be fetched from the Internet if not there already.

Building from source

git clone <THIS-PROJECT> kwmserver
cd kwmserver
make

Running KWM Server

bin/kwmserverd serve --listen=127.0.0.1:8778

Kopano Webmeetings server should be exposed with TLS. Usually a frontend HTTP proxy like Nginx is suitable. For an example take a look at the Caddyfile.example in the root of this project.

Run with Docker

Kopano Web Meetings Server supports Docker to easily be run inside a container. Running with Docker supports all features and can make use of Docker Secrets to manage sensitive data like keys.

Kopano provides official Docker images for KWM Server.

docker pull kopano/kwmserverd

Run KWM Server with Docker Swarm

Setup the Docker container in swarm mode like this:

openssl rand 32 | docker secret create kwmserverd_admin_tokens_key -
docker service create \
	--read-only \
	--secret kwmserverd_admin_tokens_key \
	--publish published=8778,target=8778,mode=host \
	--name=kwmserverd \
	kopano/kwmserverd

Running from Docker image

openssl rand -out /etc/kopano/kwm-admin-tokens.key 32
docker run --rm=true --name=kwmserverd \
	--read-only \
	--volume /etc/kopano/kwm-admin-tokens.key:/run/secrets/kwmserverd_admin_tokens_key:ro \
	--publish 127.0.0.1:8778:8778 \
	 kopano/kwmserverd

Of course modify the paths and ports according to your requirements.

Build Docker image

This project includes a Dockerfile which can be used to build a Docker container from the locally build version. Similarly the Dockerfile.release builds the Docker image locally from the latest release download.

docker build -t kopano/kwmserverd .
docker build -f Dockerfile.release -t kopano/kwmserverd .

Run unit tests

cd ~/go/src/stash.kopano.io/kwm/kwmserver
make test-short

API documentation

See the docs folder. KWM server uses the OpenAPI standard and the ReDoc document generator for rich HTML API documentation.

Start kwmserverd with the --enable-docs parameter to make the ./docs folder available at /docs URL for easy access to documentation.

Integration

Kopano Webmeetings can be integrated into other services to provide audio and video calls via WebRTC.

Mattermost

To integrate Kopano Webmeetings with Mattermost, a Mattermost plugin for Kopano Webmeetings can be used to enable Audio/Video calling within Mattermost.

Usage survey

By default, any running kwmserverd regularly transmits usage data to a Kopano user survey service at https://stats.kopano.io . To disable participation, set the environment variable KOPANO_SURVEYCLIENT_AUTOSURVEY to no.

The survey data includes system and platform information and the following usage metrics:

  • rtm_distinct_users_connected_max
  • rtm_group_channels_created_max
  • rtm_channels_created_max
  • rtm_connections_connected_max
  • guest_http_logon_success_total

See here for further documentation and customization possibilities.

License

See LICENSE.txt for licensing information of this project.

About

Kopano Web Meetings Server implements the signaling/channelling server for Kopano Web Meetings

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published