本地协作

首先,确保您已为您的平台安装了 Zed 的后端依赖项

请注意,collab 只能在 Windows 上使用 MSVC 工具链进行编译

数据库设置

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

在 macOS 和 Linux 上

script/bootstrap

此脚本将设置 zed Postgres 数据库,并使用一些用户填充它。 它需要互联网连接,因为它从 GitHub API 获取一些用户。

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

cat crates/collab/seed.default.json

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

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

在 Windows 上

.\script\bootstrap.ps1

在本地测试协作功能

在 macOS 和 Linux 上

确保 Postgres 已配置并正在运行,然后运行 Zed 的协作服务器和 livekit 开发服务器

foreman start
# OR
docker compose up

或者,如果您不测试语音和屏幕共享,您可以只运行 collab,而不是 livekit 开发服务器

cargo run -p collab -- serve all

在一个新的终端中,运行两个或多个 Zed 实例。

script/zed-local -3

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

在 Windows 上

由于 foreman 在 Windows 上不可用,您可以在单独的终端中运行以下命令

cargo run --package=collab -- serve all

如果您已将 livekit-server 二进制文件添加到您的 PATH,则可以运行

livekit-server --dev

否则,

.\path\to\livekit-serve.exe --dev

在一个新的终端中,运行两个或多个 Zed 实例。

node .\script\zed-local -2

请注意,这需要您的 PATH 中有 node.exe

运行本地 collab 服务器

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

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

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

要进行身份验证,您必须首先通过创建一个至少包含您的 github handle 的 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 中的用户之一匹配)