Skip to content

harmony-development/scherzo

Folders and files

NameName
Last commit message
Last commit date
Jan 1, 2022
Mar 5, 2022
Jan 29, 2022
Jan 1, 2022
Jan 29, 2022
Feb 11, 2022
Dec 11, 2021
Jan 29, 2022
Dec 31, 2021
Feb 18, 2022
Feb 18, 2022
Aug 19, 2021
Feb 27, 2021
Jan 2, 2022
Jan 29, 2022
Jun 4, 2021
Jan 30, 2022
Jan 2, 2022
Jan 22, 2022
Jan 17, 2022
Jan 22, 2022
Jan 1, 2022
Jun 4, 2021

Repository files navigation

scherzo

Harmony server implemented in Rust.

It uses hyper for serving HTTP via hrpc-rs, and currently supports sled and sqlite as a database backend.

Deploy

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

Configuration

See the example config for a commented config file with all options available.

Roadmap

  • 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)

Build

  • 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 and protoc 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.