From 3ddbdde0810eeb7c44633443ced43be8d4141933 Mon Sep 17 00:00:00 2001 From: Mauricio Siu Date: Tue, 14 Jul 2026 13:30:17 -0600 Subject: [PATCH] feat: add SpacetimeDB template Co-Authored-By: Claude Fable 5 --- blueprints/spacetimedb/docker-compose.yml | 13 +++++++ blueprints/spacetimedb/instructions.md | 45 ++++++++++++++++++++++ blueprints/spacetimedb/logo.png | Bin 0 -> 3683 bytes blueprints/spacetimedb/meta.json | 17 ++++++++ blueprints/spacetimedb/template.toml | 8 ++++ 5 files changed, 83 insertions(+) create mode 100644 blueprints/spacetimedb/docker-compose.yml create mode 100644 blueprints/spacetimedb/instructions.md create mode 100644 blueprints/spacetimedb/logo.png create mode 100644 blueprints/spacetimedb/meta.json create mode 100644 blueprints/spacetimedb/template.toml diff --git a/blueprints/spacetimedb/docker-compose.yml b/blueprints/spacetimedb/docker-compose.yml new file mode 100644 index 00000000..05d85869 --- /dev/null +++ b/blueprints/spacetimedb/docker-compose.yml @@ -0,0 +1,13 @@ +version: "3.8" +services: + spacetimedb: + image: clockworklabs/spacetime:v2.6.1 + restart: unless-stopped + command: start + ports: + - 3000 + volumes: + - spacetimedb-data:/home/spacetime + +volumes: + spacetimedb-data: {} diff --git a/blueprints/spacetimedb/instructions.md b/blueprints/spacetimedb/instructions.md new file mode 100644 index 00000000..676ced23 --- /dev/null +++ b/blueprints/spacetimedb/instructions.md @@ -0,0 +1,45 @@ +# SpacetimeDB + +SpacetimeDB is a database and server runtime in one: your clients connect directly to the database and your application logic runs inside it as WebAssembly modules. There is no web UI — the domain assigned to this service exposes the SpacetimeDB HTTP/WebSocket API (so opening `/` in a browser returns a plain 404; that is expected). + +## Verify the server is running + +```bash +curl -i https://your-domain.com/v1/ping +``` + +A `200 OK` response means the server is up. + +## Connect with the SpacetimeDB CLI + +1. Install the CLI on your local machine: + + ```bash + curl -sSf https://install.spacetimedb.com | sh + ``` + +2. Register your Dokploy instance as a server and make it the default: + + ```bash + spacetime server add --url https://your-domain.com dokploy --default + ``` + +3. Log in (or create an anonymous local identity) and publish a module: + + ```bash + spacetime login + spacetime publish --server dokploy my-database + ``` + +4. Check connectivity at any time: + + ```bash + spacetime server ping dokploy + ``` + +From your game or app, connect with any SpacetimeDB client SDK (Rust, C#, TypeScript) using `https://your-domain.com` as the host URI. See the [getting started guide](https://spacetimedb.com/docs/getting-started) for a full walkthrough. + +## Notes + +- All server state (databases, logs and the JWT signing keys used for identities) is persisted in the `spacetimedb-data` volume, so identities survive restarts and upgrades. +- Client connections use WebSockets over the same domain; no extra configuration is needed. diff --git a/blueprints/spacetimedb/logo.png b/blueprints/spacetimedb/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..77099a12a8d094a5dce6bc02c240285743256086 GIT binary patch literal 3683 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 literal 0 HcmV?d00001 diff --git a/blueprints/spacetimedb/meta.json b/blueprints/spacetimedb/meta.json new file mode 100644 index 00000000..824840ef --- /dev/null +++ b/blueprints/spacetimedb/meta.json @@ -0,0 +1,17 @@ +{ + "id": "spacetimedb", + "name": "SpacetimeDB", + "version": "v2.6.1", + "description": "SpacetimeDB is a relational database with a built-in server runtime. Clients connect directly to the database and run server-side logic (modules) inside it, making it ideal for real-time multiplayer games, chat and collaborative applications without a separate backend.", + "logo": "logo.png", + "links": { + "github": "https://github.com/clockworklabs/SpacetimeDB", + "website": "https://spacetimedb.com/", + "docs": "https://spacetimedb.com/docs" + }, + "tags": [ + "database", + "realtime", + "backend" + ] +} diff --git a/blueprints/spacetimedb/template.toml b/blueprints/spacetimedb/template.toml new file mode 100644 index 00000000..35d00d6f --- /dev/null +++ b/blueprints/spacetimedb/template.toml @@ -0,0 +1,8 @@ +[variables] +main_domain = "${domain}" + +[config] +[[config.domains]] +serviceName = "spacetimedb" +port = 3000 +host = "${main_domain}"