-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
3bfcda7
commit c3e475e
Showing
1 changed file
with
18 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,29 @@ | ||
# Harmony | ||
|
||
## Description | ||
Harmony aims to provide secure, robust, and open source encrypted communication with high call quality. It is designed for individuals, communities, as well as enterprises with a space and channel structure. In addition to providing a secure communication platform, developers may build upon the platform much easier than other platforms. | ||
Harmony aims to provide secure, robust, and open source encrypted communication with high call quality. It is designed for individuals, communities, as well as organizations with a space and channel structure. In addition to providing a secure communication platform, developers may build upon the platform much easier than other platforms. | ||
|
||
This repository includes the core server software. It's free to self-host or use any hosted instance. Enterprise customers will have the option to purchase support services and hosted instances. Authentication is meant to be used with the [Nextania account services](https://github.com/nextania/account). OAuth2 will be supported in the future. | ||
|
||
The Harmony client currently only exists for browsers. Other clients will be developed in the future. | ||
The [Harmony client](https://github.com/nextania/harmony-client) currently only exists for browsers. Other clients will be developed in the future. | ||
|
||
Note: Harmony is not a federated service for the sake of simplicity. It is a centralized service that can be self-hosted. | ||
|
||
## How to run | ||
You will need Rust, MongoDB, and Redis before running the server. | ||
The following environment variables need to be set: | ||
`MONGODB_URI` - The URI to the MongoDB database. | ||
`MONGODB_DATABASE` - The name of the MongoDB database. | ||
`REDIS_URI` - The URI to the Redis database. | ||
`JWT_SECRET` - The secret used for JWTs. | ||
To run the server, you can use `cargo run --bin harmony`. | ||
|
||
In addition, if you would like to run the WebRTC voice node, you will need to set the following environment variables: | ||
`REDIS_URI` - The URI to the Redis database. | ||
`REGION` - The region of the voice node. | ||
To run the voice node, you can use `cargo run --bin pulse`. | ||
|
||
The voice node needs to be run using a server with a public IP address for WebRTC to function properly. Additionally, a sizeable amount of bandwidth is required. | ||
|
||
## License | ||
This project is licensed under the [GNU Affero General Public License v3.0](https://github.com/nextania/harmony/blob/main/LICENSE). |