本地协作
-
请确保您已获得我们云基础设施的访问权限。如果您没有访问权限,目前无法进行本地协作。
-
确保您已为您的平台安装了 Zed 的依赖项
请注意,collab 只能在 Windows 上使用 MSVC 工具链编译
-
克隆我们的云仓库并按照云 README 中的说明进行操作
-
为您的平台设置本地数据库
- 运行 collab
后端依赖项
如果您正在开发 Zed 的协作功能,您需要安装 zed 的 collab 服务器的依赖项
- PostgreSQL
- LiveKit
- Foreman
您可以原生安装这些依赖项,也可以在 Docker 下运行它们。
macOS
-
安装 Postgres.app 或 通过 homebrew 安装 postgresql
brew install postgresql@15 -
brew install livekit foreman
- 按照 collab README 中的步骤配置用于集成测试的 Postgres 数据库
或者,如果您已安装 Docker,您可以使用 Docker Compose 启动所有 collab 依赖项。
Linux
-
安装 Postgres
sudo apt-get install postgresql # Ubuntu/Debian sudo pacman -S postgresql # Arch Linux sudo dnf install postgresql postgresql-server # RHEL/Fedora sudo zypper install postgresql postgresql-server # OpenSUSE -
安装 Livekit
curl -sSL https://get.livekit.io/cli | bash -
安装 Foreman
Windows
此部分仍在开发中。说明尚未完成。
或者,如果您已安装 Docker,您可以使用 Docker Compose 启动所有 collab 依赖项。
Docker
如果您有 docker 或 podman 可用,您可以使用 Docker Compose 在容器中运行后端依赖项
docker compose up -d
数据库设置
在本地运行 collab 服务器之前,您需要设置一个 zed Postgres 数据库。
在 macOS 和 Linux 上
script/bootstrap
此脚本将设置 zed Postgres 数据库,并用一些用户填充它。它需要互联网访问,因为它从 GitHub API 获取一些用户。
脚本将使用由以下内容定义的各种内容来初始化数据库
cat crates/collab/seed.default.json
要使用不同的管理员用户集,您可以创建该 json 文件的自定义版本并导出 SEED_PATH 环境变量。请注意,管理员列表中列出的用户名目前必须对应有效的 GitHub 用户。
{
"admins": ["admin1", "admin2"],
"channels": ["zed"]
}
在 Windows 上
.\script\bootstrap.ps1
本地测试协作功能
在 macOS 和 Linux 上
确保 Postgres 已配置并正在运行,然后运行 Zed 的协作服务器和 livekit 开发服务器
foreman start
# OR
docker compose up
或者,如果您不测试语音和屏幕共享,您可以只运行 collab 和 cloud,而不运行 livekit 开发服务器
cargo run -p collab -- serve all
cd ../cloud; cargo make dev
在新终端中,运行两个或更多 Zed 实例。
script/zed-local -3
此脚本启动一到四个 Zed 实例,具体取决于 -2、-3 或 -4 标志。每个实例将连接到本地 collab 服务器,并以 .admins.json 或 .admins.default.json 中的不同用户身份登录。
在 Windows 上
由于 Windows 上没有 foreman,您可以在单独的终端中运行以下命令
cargo run --package=collab -- serve all
如果您已将 livekit-server 二进制文件添加到您的 PATH 中,您可以运行
livekit-server --dev
否则,
.\path\to\livekit-serve.exe --dev
您还需要启动云服务器
cd ..\cloud; cargo make dev
在新终端中,运行两个或更多 Zed 实例。
node .\script\zed-local -2
请注意,这要求 node.exe 位于您的 PATH 中。
运行本地协作服务器
[!注意] 由于我们身份验证系统的近期更改,Zed 将无法使用本地协作服务器进行身份验证。
如果您想运行您自己的 zed 协作服务版本,您可以这样做,但请注意,这仍在开发中,并且不支持身份验证和扩展。
配置通过环境变量完成。默认情况下,它将从 .env.toml 读取配置,您应该将其作为设置指南。
默认情况下,Zed 假定 DATABASE_URL 是一个 Postgres 数据库,但您可以通过使用 --features sqlite 编译并使用带 ?mode=rwc 的 sqlite DATABASE_URL 来使其使用 Sqlite。
要进行身份验证,您必须首先通过创建一个至少包含您的 github 句柄的 seed.json 文件来配置服务器。这将用于按需创建用户。
{
"admins": ["nathansobo"]
}
默认情况下,协作服务器将在首次创建数据库时初始化数据库,但如果您想添加更多用户,可以使用 SEED_PATH=./seed.json cargo run -p collab seed 显式重新初始化它们
然后,在运行 zed 客户端时,您必须指定两个环境变量:ZED_ADMIN_API_TOKEN(应与 .env.toml 中的 API_TOKEN 值匹配)和 ZED_IMPERSONATE(应与您的 seed.json 中的一个用户匹配)