Dendrite 开源项目使用教程
1. 项目的目录结构及介绍
Dendrite 是一个用 Go 语言编写的第二代 Matrix 家庭服务器。以下是其主要目录结构及其介绍:
dendrite/
├── appservice/
├── build/
├── clientapi/
├── cmd/
├── docs/
├── federationapi/
├── helm/
├── internal/
├── mediaapi/
├── relayapi/
├── roomserver/
├── setup/
├── syncapi/
├── test/
├── userapi/
├── .dockerignore
├── .gitignore
├── .golangci.yml
├── CHANGES.md
├── CONTRIBUTING.md
├── Dockerfile
├── LICENSE
├── README.md
├── are-we-synapse-yet.list
├── are-we-synapse-yet.py
├── build-dendrite.js.sh
├── dendrite-sample.yaml
├── go.mod
├── go.sum
├── run-sytest.sh
├── show-expected-fail-tests.sh
├── sytest-blacklist
├── sytest-whitelist
├── test-dendrite.js.sh
目录介绍
appservice/
: 应用服务相关代码。build/
: 构建相关脚本和配置。clientapi/
: 客户端 API 相关代码。cmd/
: 命令行工具和主程序入口。docs/
: 项目文档。federationapi/
: 联邦 API 相关代码。helm/
: Helm 配置文件。internal/
: 内部包和工具。mediaapi/
: 媒体 API 相关代码。relayapi/
: 中继 API 相关代码。roomserver/
: 房间服务器相关代码。setup/
: 安装和设置相关脚本。syncapi/
: 同步 API 相关代码。test/
: 测试相关代码和脚本。userapi/
: 用户 API 相关代码。.dockerignore
: Docker 忽略文件。.gitignore
: Git 忽略文件。.golangci.yml
: Go 代码检查配置。CHANGES.md
: 变更日志。CONTRIBUTING.md
: 贡献指南。Dockerfile
: Docker 构建文件。LICENSE
: 项目许可证。README.md
: 项目自述文件。are-we-synapse-yet.list
: Synapse 兼容性列表。are-we-synapse-yet.py
: Synapse 兼容性脚本。build-dendrite.js.sh
: 构建脚本。dendrite-sample.yaml
: 示例配置文件。go.mod
: Go 模块文件。go.sum
: Go 模块校验和。run-sytest.sh
: 运行系统测试脚本。show-expected-fail-tests.sh
: 显示预期失败测试脚本。sytest-blacklist
: 系统测试黑名单。sytest-whitelist
: 系统测试白名单。test-dendrite.js.sh
: 测试脚本。
2. 项目的启动文件介绍
Dendrite 的启动文件主要位于 cmd/
目录下。以下是一些关键的启动文件:
cmd/dendrite-monolith-server/main.go
: 单体服务器的入口文件。cmd/dendrite-polylith-multi/main.go
: 多服务器架构的入口文件。
这些文件包含了程序的主函数和初始化逻辑,负责启动 Dendrite 服务器。
3. 项目的配置文件介绍
Dendrite 的配置文件是 dendrite-sample.yaml
。这个文件包含了所有必要的配置选项,用于配置 Dendrite 服务器的行为。以下是一些关键的配置部分:
# 数据库配置
database:
connection_string: "postgres://user:password@localhost/dendrite?sslmode=disable"
# 服务器配置
server_name: "example.com"
# 日志配置
logging:
level: "info"
# API 配置
client_api:
listen: "http://localhost:8008"