This project implements the signaling/channelling server for Kopano Web Meetings.
- Go
- WebSockets
- WebRTC
- JSON
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.
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.
git clone <THIS-PROJECT> kwmserver
cd kwmserver
make
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.
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
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
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.
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 .
cd ~/go/src/stash.kopano.io/kwm/kwmserver
make test-short
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.
Kopano Webmeetings can be integrated into other services to provide audio and video calls via WebRTC.
To integrate Kopano Webmeetings with Mattermost, a Mattermost plugin for Kopano Webmeetings can be used to enable Audio/Video calling within Mattermost.
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.
See LICENSE.txt
for licensing information of this project.