2.0.0-rc.3Pre-release
Added 3
- Self-hosted GitLab support via _APP_VCS_GITLAB_ENDPOINT for repository integration and _APP_CONSOLE_GITLAB_ENDPOINT for console sign-in
- Google sign-in to the console via _APP_CONSOLE_GOOGLE_APP_ID and _APP_CONSOLE_GOOGLE_SECRET
- Execution logs dual-write to ClickHouse via _APP_EXECUTIONS_DUAL_WRITE, _APP_CONNECTIONS_DB_EXECUTIONS, and _APP_POOL_SIZE_EXECUTIONS
Changed 2
- Realtime is cheaper per event with one Swoole worker, document encoded once per event instead of once per subscriber, and presence stored as flags
- Console updated to 1.1.8, Open Runtimes executor to 0.29.0, orchestrator to 1.9.2, and utopia-php/database to 7.3.4
Fixed 11
- PostgreSQL no longer ships with durability turned off by removing fsync=off, synchronous_commit=off, and full_page_writes=off from the bundled compose
- Build output with _APP_STORAGE_DEVICE set to S3-compatible backend now fails the build on failed upload instead of leaving deployments with nothing to run
- Git installations are now isolated per project with installation repository endpoints scoped to the owning project
- Git installation callback now redirects back to the console with an actionable error instead of dead-ending
- Index listing now returns the right indexes instead of using collection id instead of sequence
- Transactions now reject array queries up front instead of throwing on commit
- Integer attribute min/max are capped to what the column can hold
- teams.total now matches confirmed memberships
- Buckets are no longer left half-created when their files collection fails
- Build billing is now accurate by skipping when the build never started, capping at the build timeout, and tagging with the resource id
- The console now works over plain HTTP again for self-hosted installs reached over HTTP at a LAN IP or internal hostname
Removed 1
- GET /v1/health/executions endpoint
From Appwrite
Third release candidate for self-hosted 2.0.0. Pre-release — not recommended for production.
Highlights
Changes since 2.0.0-rc.2.
- PostgreSQL no longer ships with durability turned off. The bundled compose passed
fsync=off,synchronous_commit=offandfull_page_writes=off, so a crash or power loss could leave the database corrupt. All three are gone. - Builds survive non-local storage. With
_APP_STORAGE_DEVICEset to any S3-compatible backend, build output went to a local path nothing reads, leaving deployments ready with nothing to run. A failed upload now fails the build. - Git installations are isolated per project. Installation repository endpoints are scoped to the owning project and the GitHub App installation state is signed, so a callback cannot be replayed onto someone else's project.
- The Git installation callback no longer dead-ends. GitHub, GitLab, Gitea and Bitbucket all redirect back to the console with an actionable error.
- Self-hosted GitLab works.
_APP_VCS_GITLAB_ENDPOINTfor repository integration,_APP_CONSOLE_GITLAB_ENDPOINTfor console sign-in. - Google sign-in to the console, via
_APP_CONSOLE_GOOGLE_APP_IDand_APP_CONSOLE_GOOGLE_SECRET. - Index listing returns the right indexes. Lookups used collection id instead of sequence, so collections sharing an id across databases could see each other's indexes.
- Transactions reject array queries up front instead of throwing on commit.
- Integer attribute
min/maxare capped to what the column can hold. teams.totalmatches confirmed memberships. Four paths could drift it, most visibly deleting a membership after a primary-owner transfer.- Buckets are no longer left half-created when their files collection fails.
- Realtime is cheaper per event — one Swoole worker, the document encoded once per event instead of once per subscriber, presence stored as flags.
- Build billing is accurate — skipped when the build never started, capped at the build timeout, tagged with the resource id.
- Execution logs dual-write to ClickHouse. Off by default; reads stay on the project database and mirror failures are never fatal.
_APP_EXECUTIONS_DUAL_WRITE,_APP_CONNECTIONS_DB_EXECUTIONS,_APP_POOL_SIZE_EXECUTIONS. - The console works over plain HTTP again.
crypto.randomUUIDis only exposed on secure origins, so on a self-hosted install reached over HTTP at a LAN IP or an internal hostname every project page died with a full-page error. That is a setup the installer explicitly provisions, since it turns HTTPS off for loopback,.local,.internaland bare IPs. - New console 1.1.8, Open Runtimes executor 0.29.0, orchestrator 1.9.2, utopia-php/database 7.3.4.
Removed
GET /v1/health/executions.
Try it
docker run -it --rm \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \
--entrypoint="install" \
appwrite/appwrite:2.0.0-rc.3
Upgrading from 1.9.x uses the same command with --entrypoint="upgrade". Back up your data first.
Most useful things to exercise: functions and sites with _APP_STORAGE_DEVICE pointed at an S3-compatible backend, and connecting one Git installation from more than one project.