Harmony server implemented in Rust.
It uses hyper for serving HTTP via hrpc-rs, and currently supports sled
and sqlite
as a database backend.
Note: the CI builds are currently compiled with sled
DB backend.
With docker (or podman):
docker pull yusdacra/scherzo:latest
docker run -d -p 2289:2289 -v db:/srv/scherzo/db -v media:/srv/scherzo/media yusdacra/scherzo:latest
One liner to start the latest master CI artifact:
mkdir scherzo && cd scherzo && curl -L https://github.com/harmony-development/scherzo/releases/download/continuous/scherzo > scherzo && chmod +x scherzo && ./scherzo
See the example config for a commented config file with all options available.
- Auth service: (implemented)
- dynamic auth is implemented (login and register by email)
- Chat service: (implemented)
- Mediaproxy service: (implemented)
- Voice service: (implemented)
- Rest APIs: (implemented)
- Federation: (implemented)
- Clone this repo
- Make sure you have the toolchain described in
rust-toolchain.toml
installed- This will be installed automatically for you if you have rustup setup!
- Make sure you have
mold
,clang
andprotoc
installed - Run
cargo build
If you have Nix, you can just do:
- Flakes:
nix build
to build,nix develop
for development shell - Non-flakes:
nix-build
to build,nix-shell shell.nix
for development shell
You can also get an executable binary from the latest Continous build
release.