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