zed/crates/collab
Conrad Irwin 6d53846824
0-downtime collab deploys? (#8926)
Before this change Kubernetes would send a SIGTERM to the old server
before the new one was ready. Now it will wait.

From my reading it seems like startupProbe should not be necessary if we
have a
readinessProbe; but from testing it seems like without startupProbe we
still
drop requests when using `rollout restart`

Release Notes:

- Fixed connectivity issues during Zed deploys.
2024-03-05 21:58:00 -07:00
..
k8s 0-downtime collab deploys? (#8926) 2024-03-05 21:58:00 -07:00
migrations hosted projects (#8627) 2024-03-04 19:17:40 -07:00
migrations.sqlite hosted projects (#8627) 2024-03-04 19:17:40 -07:00
src 0-downtime collab deploys? (#8926) 2024-03-05 21:58:00 -07:00
.admins.default.json Make zed-local support opening 5 or 6 zed instances 2024-01-18 12:18:12 -08:00
.env.toml Upload crashes to collab directly (#8649) 2024-03-01 13:23:44 -07:00
admin_api.conf Run postgrest as part of foreman 2023-09-13 12:32:15 -07:00
basic.conf Rename zed-server to collab 2022-04-09 08:30:42 -06:00
Cargo.toml Fix tracing subscriber after introducing Tokio-console (#8907) 2024-03-05 14:11:33 -08:00
LICENSE-AGPL chore: Add crate licenses. (#4158) 2024-01-23 16:56:22 +01:00
README.md Deploy collab like nightly (#7174) 2024-02-01 11:54:49 -07:00

Zed Server

This crate is what we run at https://collab.zed.dev.

It contains our back-end logic for collaboration, to which we connect from the Zed client via a websocket after authenticating via https://zed.dev, which is a separate repo running on Vercel.

Local Development

Detailed instructions on getting started are here.

Deployment

We run two instances of collab:

Both of these run on the Kubernetes cluster hosted in Digital Ocean.

Deployment is triggered by pushing to the collab-staging (or collab-production) tag in Github. The best way to do this is:

  • ./script/deploy-collab staging
  • ./script/deploy-collab production

You can tell what is currently deployed with ./script/what-is-deployed.

Database Migrations

To create a new migration:

./script/sqlx migrate add <name>

Migrations are run automatically on service start, so run foreman start again. The service will crash if the migrations fail.

When you create a new migration, you also need to update the SQLite schema that is used for testing.