本地协作
首先,确保您已为您的平台安装了 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 中的用户之一匹配)