Revolt 后端
这是 Revolt 后端的单一代码库。
包 | 路径 | 描述 |
---|---|---|
core/config | crates/core/config | 核心:配置 |
core/database | crates/core/database | 核心:数据库实现 |
core/models | crates/core/models | 核心:API 模型 |
core/permissions | crates/core/permissions | 核心:权限逻辑 |
core/presence | crates/core/presence | 核心:用户在线状态 |
core/result | crates/core/result | 核心:结果和错误类型 |
delta | crates/delta | REST API 服务器 |
bonfire | crates/bonfire | WebSocket 事件服务器 |
注意:january
、autumn
和 vortex
尚未移入此单一代码库。
最低支持的 Rust 版本
Rust 1.76 或更高版本。
开发指南
在开始之前,你需要安装:
- Rust 工具链(推荐使用 rustup)
- Docker
- Git
- mold(可选,加快编译速度)
Nix 用户可以使用 default.nix! 只需运行
nix-shell
并继续。
现在你可以克隆并构建项目:
git clone https://github.com/revoltchat/backend revolt-backend
cd revolt-backend
cargo build
如果你想运行 API 和事件服务器:
# 创建环境文件(未来将被弃用)
cp .env.example .env
# (可选)复制默认配置文件
cp crates/core/config/Revolt.toml Revolt.toml
# 根据需要进行配置...
你可能想复制以下配置:
# Revolt.toml
[database]
mongodb = "mongodb://localhost"
redis = "redis://localhost"
[hosts]
app = "http://local.revolt.chat"
api = "http://local.revolt.chat:8000"
events = "ws://local.revolt.chat:9000"
autumn = "http://local.revolt.chat:3000"
january = "http://local.revolt.chat:7000"
voso_legacy = ""
voso_legacy_ws = ""
然后继续:
# 启动其他必要的服务
docker compose up -d
# 运行 API 服务器
cargo run --bin revolt-delta
# 运行事件服务器
cargo run --bin revolt-bonfire
# 提示:
# mold -run <cargo build, cargo run, 等...>
你可以通过以下方式启动 Web 客户端:
# 如果你还没有 yarn 并且有最新版本的 Node.js:
corepack enable
# 克隆 Web 客户端并运行它:
git clone --recursive https://github.com/revoltchat/revite
cd revite
yarn
yarn build:deps
yarn dev --port 3001
然后访问 https://local.revolt.chat:3001
部署指南
发布新的包版本
首先升级包版本:
just patch # 0.0.X
just minor # 0.X.0
just major # X.0.0
然后提交对包文件的更改。
继续发布所有新的包:
just publish
发布新的二进制版本
通过运行以下命令标记并推送新版本:
just release
如果你已升级包版本,请前往 GitHub releases 创建更新日志。
测试
首先,启动所需的服务:
docker compose -f docker-compose.db.yml up -d
现在为任意数据库运行测试:
TEST_DB=REFERENCE cargo nextest run
TEST_DB=MONGODB cargo nextest run
许可证
Revolt 后端通常根据 GNU Affero 通用公共许可证 v3.0 授权。
各个包可能提供自己的许可证!