diff --git a/content/docs/services/all.mdx b/content/docs/services/all.mdx index 1ab26027d..69d13ed79 100644 --- a/content/docs/services/all.mdx +++ b/content/docs/services/all.mdx @@ -199,6 +199,7 @@ Complete directory of all one-click services available in Coolify, organized by - [Web Check](/services/web-check) - All-in-one website analysis tool. - [Weblate](/services/weblate) - Web-based translation tool. - [Windmill](/services/windmill) - Open-source developer platform. +- [Zero](/services/zero) - Query-driven sync engine for TypeScript apps backed by Postgres. ## Documentation diff --git a/content/docs/services/zero.mdx b/content/docs/services/zero.mdx new file mode 100644 index 000000000..4eeb355c3 --- /dev/null +++ b/content/docs/services/zero.mdx @@ -0,0 +1,37 @@ +--- +title: "Zero" +description: "Query-driven sync engine for TypeScript apps backed by Postgres." +og: + description: "Deploy Zero's self-hosted zero-cache on Coolify with Postgres logical replication and a persistent SQLite replica." +category: "Development" +icon: "/docs/images/services/zero.svg" +--- + +# Zero + + + +## What is Zero? + +Zero is a query-driven sync engine for TypeScript applications. It runs `zero-cache` next to Postgres, maintains a SQLite replica, and syncs the rows your app queries to connected clients for fast local-first reads and writes. + +## Notes on deployment + +The Coolify service template deploys `zero-cache` with a PostgreSQL database configured for logical replication. You still need to deploy your own frontend and API server separately, then point Zero at the API endpoints that implement your query and mutation handlers. + +The template requires these environment variables before deployment: + +- `ZERO_QUERY_URL`: URL of your API `/query` endpoint. +- `ZERO_MUTATE_URL`: URL of your API `/mutate` endpoint. + +The template also creates these automatically: + +- `ZERO_ADMIN_PASSWORD`: generated by Coolify and used for Zero admin endpoints such as `/statz` and the inspector. +- `ZERO_UPSTREAM_DB`, `ZERO_CVR_DB`, and `ZERO_CHANGE_DB`: point to the bundled PostgreSQL service. +- `ZERO_REPLICA_FILE`: stores the SQLite replica on a persistent volume. + +## Links + +- [Official website](https://zero.rocicorp.dev/?utm_source=coolify.io) +- [Self-hosting documentation](https://zero.rocicorp.dev/docs/deployment?utm_source=coolify.io) +- [Configuration reference](https://zero.rocicorp.dev/docs/zero-cache-config?utm_source=coolify.io) diff --git a/public/images/services/zero.svg b/public/images/services/zero.svg new file mode 100644 index 000000000..270406b0b --- /dev/null +++ b/public/images/services/zero.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/generated/services.json b/src/generated/services.json index 0b0e4ddc1..0eabf9fd6 100644 --- a/src/generated/services.json +++ b/src/generated/services.json @@ -2106,6 +2106,13 @@ "description": "Self-hosted music scrobble database.", "category": "Media" }, + { + "name": "Zero", + "slug": "zero", + "icon": "/docs/images/services/zero.svg", + "description": "Query-driven sync engine for TypeScript apps backed by Postgres.", + "category": "Development" + }, { "name": "Zipline", "slug": "zipline",