Update HOSTING.md

This commit is contained in:
Trevor Slocum 2019-12-10 08:25:13 -08:00
parent 9af2fd6f69
commit 85baf8c82f
2 changed files with 63 additions and 4 deletions

View File

@ -2,4 +2,60 @@ This document covers how to host a harmony server.
# Requirements
- WIP
## Bandwidth
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
## HTTPS
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](https://github.com/mholt/caddy), [nginx](https://www.nginx.com)
or [Apache](https://httpd.apache.org/) via
[reverse proxy](https://en.wikipedia.org/wiki/Reverse_proxy) instead.
### Caddy example
Launch harmony-server with the following flag:
```-web-address=localhost:19000```
Add the following to the relevant site directive in your Caddyfile:
```
proxy /w http://localhost:19000 {
websocket
}
proxy / http://localhost:19000
```
# Installation
## Download
Download and install the [Go compiler](https://golang.org/doc/install), then
install harmony-server with the following command:
```GO111MODULE=on go get git.sr.ht/~tslocum/harmony/...@latest```
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](https://en.wikipedia.org/wiki/PATH_%28variable%29).
## 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, use the ```-web-path``` flag:
```harmony-server -web-path=/chat/```

View File

@ -12,13 +12,16 @@ Voice and text communications platform
## Web client
The only client currently implemented is a web interface (located in pkg/web) hosted by the server.
The only client currently implemented is a web interface (located in pkg/web)
hosted by the server.
## harmony-server
The server (located in cmd/harmony-server) passes voice and text communications between clients.
The server (located in cmd/harmony-server) passes voice and text communications
between clients.
See [HOSTING.md](https://man.sr.ht/~tslocum/harmony/HOSTING.md) for more information on hosting a server.
See [HOSTING.md](https://man.sr.ht/~tslocum/harmony/HOSTING.md) for information
on hosting a server.
## Support