本地协作

首先,确保已安装 Zed 的后端依赖项

数据库设置

在本地运行 collab 服务器之前,需要设置一个 zed Postgres 数据库。

script/bootstrap

此脚本将设置 zed Postgres 数据库,并向其中填充一些用户。它需要互联网访问权限,因为它会从 GitHub API 中获取一些用户。

该脚本将使用由以下内容定义的各种内容填充数据库

cat crates/collab/seed.default.json

若要使用一组不同的管理员用户,可以创建该 json 文件的自己的版本并导出 SEED_PATH 环境变量。请注意,当前管理员列表中列出的用户名必须对应于有效的 Github 用户。

{
  "admins": ["admin1", "admin2"],
  "channels": ["zed"]
}

在本地测试协作功能

在一个终端中,运行 Zed 的协作服务器和 livekit 开发服务器


foreman start

在第二个终端中,运行两个或更多个 Zed 实例。


script/zed-local -2

此脚本根据 -2-3-4 标志启动一个到四个 Zed 实例。每个实例都将连接到本地 collab 服务器,以 .admins.json.admins.default.json 中的不同用户身份登录。

运行本地协作服务器

如果你想运行自己的 zed 协作服务版本,可以这样做,但请注意,此功能仍在开发中,并且对身份验证和扩展的支持并不好。

配置通过环境变量完成。默认情况下,它将从 .env.toml 读取配置,您应该使用它作为设置此配置的指南。

默认情况下,Zed 假设 DATABASE_URL 是 Postgres 数据库,但您可以通过使用 --features sqlite 进行编译并使用带有 ?mode=rwc 的 sqlite DATABASE_URL 来使其使用 Sqlite。

要进行身份验证,您必须首先通过创建一个至少包含您的 github 句柄的 seed.json 文件来配置服务器。这将用于按需创建用户。

{
  "admins": ["nathansobo"]
}

默认情况下,collab 服务器将在首次创建时对数据库进行种子处理,但如果您想添加更多用户,可以使用 SEED_PATH=./seed.json cargo run -p collab seed 显式地重新播种它们

然后,在运行 zed 客户端时,您必须指定两个环境变量,ZED_ADMIN_API_TOKEN(应与 .env.toml 中 API_TOKEN 的值匹配)和 ZED_IMPERSONATE(应与 seed.json 中的用户之一匹配)