Revoltchat Delta Save

Monorepo for Revolt backend services.

Project README

Revolt Backend

This is a monorepo for the Revolt backend.

Crate Path Description
core/config crates/core/config Core: Configuration
core/database crates/core/database Core: Database Implementation
core/models crates/core/models Core: API Models
core/permissions crates/core/permissions Core: Permission Logic
core/presence crates/core/presence Core: User Presence
core/result crates/core/result Core: Result and Error types
delta crates/delta REST API server
bonfire crates/bonfire WebSocket events server

Note: january, autumn, and vortex are yet to be moved into this monorepo.

Minimum Supported Rust Version

Rust 1.70 or higher.

Development Guide

Before getting started, you'll want to install:

  • Rust toolchain (rustup recommended)
  • Docker
  • Git
  • mold (optional, faster compilation)

A default.nix is available for Nix users! Just run nix-shell and continue.

Now you can clone and build the project:

git clone https://github.com/revoltchat/backend revolt-backend
cd revolt-backend
cargo build

If you want to run the API and event servers:

# create environment file (will be deprecated in future)
cp .env.example .env

# (optionally) copy the default configuration file
cp crates/core/config/Revolt.toml Revolt.toml
# configure as necessary...

# start other necessary services
docker compose up -d

# run the API server
cargo run --bin revolt-delta
# run the events server
cargo run --bin revolt-bonfire

# hint:
# mold -run <cargo build, cargo run, etc...>

You can start a web client by doing the following:

# if you do not have yarn yet and have a modern Node.js:
corepack enable

# clone the web client and run it:
git clone --recursive https://github.com/revoltchat/revite
cd revite
yarn
yarn build:deps
yarn dev --port 3001

Then go to https://local.revolt.chat:3001

Deployment Guide

Cutting new crate releases

Begin by bumping crate versions:

just patch # 0.0.X
just minor # 0.X.0
just major # X.0.0

Then commit the changes to package files.

Proceed to publish all the new crates:

just publish

Cutting new binary releases

Tag and push a new release by running:

just release

License

The Revolt backend is generally licensed under the GNU Affero General Public License v3.0.

Individual crates may supply their own licenses!

Open Source Agenda is not affiliated with "Revoltchat Delta" Project. README Source: revoltchat/backend
Stars
1,056
Open Issues
69
Last Commit
1 week ago
Repository
License

Open Source Agenda Badge

Open Source Agenda Rating