Voice and text communications platform powered by WebRTC
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.4 KiB

This document covers how to host a harmony server.



Clients may simultaneously transmit and receive up to four audio streams at a rate of 64 kilobits/second.

  • Average: 64 kilobits/second * Number of users voice chatting
  • Maximum: 256 kilobits/second * Number of users voice chatting


A web client is hosted from the server using insecure HTTP. Do not expose the web client directly to the Internet. Place it behind a HTTP daemon such as Caddy, nginx or Apache via reverse proxy instead.

Caddy example

Launch harmony-server with the following configuration option:

webaddress: localhost:19000

Add the following to the relevant site directive in your Caddyfile:

proxy /w http://localhost:19000 {

proxy / http://localhost:19000


There are two ways to install harmony-server:


Download harmony-server


Download and install the Go compiler, then install harmony-server with the following command:

GO111MODULE=on go get code.rocketnine.space/tslocum/harmony/...

This command will also update the server when ran again.

Execute harmony-server with the -help flag for more information:

harmony-server -help

If the command was not found, add ~/go/bin to your PATH variable.


The path to a configuration file may be specified with --config, or the default path of ~/.config/harmony-server/config.yaml may be used.

Example configuration:

webaddress: localhost:19000
webpath: /
    type: text
    topic: Example text channel
    type: voice
    topic: Example voice channel
    type: voice
    topic: Another voice channel

Hosting the web client on a different path

The web client expects to be hosted at the root of the domain, /.

To host the web client on a different path, such as /chat/, set the webpath configuration option:

webpath: /chat/

Hosting the web client on multiple addresses

Multiple address may be specified:

webaddress: localhost:19000,