ローカルコラボレーション

最初に、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"]
}

コラボレーション機能のローカルでのテスト

1 つのターミナルで、Zed のコラボレーションサーバーと livekit の開発サーバーを実行します


foreman start

2 番目のターミナルで、Zed のインスタンスを 2 つ以上実行します。


script/zed-local -2

このスクリプトは、-2-3、または -4 フラグに応じて、Zed のインスタンスを 1 つから 4 つ開始します。各インスタンスは、.admins.json または .admins.default.json とは異なるユーザーとしてサインインした、ローカルの collab サーバーに接続されます。

ローカル Collab サーバーの実行

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クライアントを実行するとき、2つの環境変数を指定する必要があります。 ZED_ADMIN_API_TOKEN (これは.env.tomlのAPI_TOKENの値と一致しなければなりません) と``ZED_IMPERSONATE(これはseed.json内のユーザーの1つと一致しなければなりません)