SkillAgentSearch skills...

Stoatchat

The software powering Stoat

Install / Use

/learn @stoatchat/Stoatchat
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<div align="center"> <h1> Stoat Backend

Stars Forks Pull Requests Issues Contributors License

</h1> The services and libraries that power the Stoat service.<br/> <br/>

| Crate | Path | Description | | | ------------------ | -------------------------------------------------- | ----------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | core/config | crates/core/config | Core: Configuration | Crates.io Version Crates.io Version Crates.io Version Crates.io License | | core/database | crates/core/database | Core: Database Implementation | Crates.io Version Crates.io Version Crates.io Version Crates.io License | | core/files | crates/core/files | Core: S3 and encryption subroutines | Crates.io Version Crates.io Version Crates.io Version Crates.io License | | core/models | crates/core/models | Core: API Models | Crates.io Version Crates.io Version Crates.io Version Crates.io License | | core/permissions | crates/core/permissions | Core: Permission Logic | Crates.io Version Crates.io Version Crates.io Version Crates.io License | | core/presence | crates/core/presence | Core: User Presence | Crates.io Version Crates.io Version Crates.io Version Crates.io License | | core/result | crates/core/result | Core: Result and Error types | Crates.io Version Crates.io Version Crates.io Version Crates.io License | | core/coalesced | crates/core/coalesced | Core: Coalescion service | Crates.io Version Crates.io Version Crates.io Version Crates.io License | | delta | crates/delta | REST API server | License | | bonfire | crates/bonfire | WebSocket events server | License | | services/january | crates/services/january | Proxy server | License | | services/gifbox | crates/services/gifbox | Tenor proxy server | License | | services/autumn | crates/services/autumn | File server | License | | daemons/crond | crates/daemons/crond | Timed data clean up daemon server | License | | daemons/pushd | crates/daemons/pushd | Push notification daemon server | License |

</div> <br/>

Minimum Supported Rust Version

Rust 1.86.0 or higher.

Development Guide

Before contributing, make yourself familiar with our contribution guidelines and the technical documentation for this project.

Before getting started, you'll want to install:

  • mise
  • Docker
  • Git
  • mold (optional, faster compilation)

A default.nix is available for Nix users! Run nix-shell to activate mise.

As a heads-up, the development environment uses the following ports:

| Service | Port | | ------------------------- | :------------: | | MongoDB | 27017 | | Redis | 6379 | | MinIO | 14009 | | Maildev | 14025<br>14080 | | Revolt Web App | 14701 | | RabbitMQ | 5672<br>15672 | | crates/delta | 14702 | | crates/bonfire | 14703 | | crates/services/autumn | 14704 | | crates/services/january | 14705 | | crates/services/gifbox | 14706 |

Now you can clone and build the project:

git clone https://github.com/stoatchat/stoatchat stoat-backend
cd stoat-backend
mise build

A default configuration Revolt.toml is present in this project that is suited for development.

If you'd like to change anything, create a Revolt.overrides.toml file and specify relevant variables.

[!TIP] Use Sentry to catch unexpected service errors:

# Revolt.overrides.toml
[sentry]
api = "https://abc@your.sentry/1"
events = "https://abc@your.sentry/1"
files = "https://abc@your.sentry/1"
proxy = "https://abc@your.sentry/1"

[!TIP] If you have port conflicts on common services, you can

View on GitHub
GitHub Stars2.9k
CategoryDevelopment
Updated1h ago
Forks334

Languages

Rust

Security Score

85/100

Audited on Mar 26, 2026

No findings