Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .claude/reference/feature-flags.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,13 @@ if (features.platform) {
| `acl` | Engine enforces token auth on the public endpoint. Implied by `platform`; set independently for enterprise. |
| `billing` | Billing UI. |
| `captcha` | Turnstile captcha on auth forms. Requires `auth`. |
| `compute` | Rivet Compute (managed pool) UI: namespace deployments + logs sidebar links and routes, actor-details deployment-logs tab, and the Rivet provider option in onboarding / Add Provider. Requires `platform`. |
| `support` | Support/help affordances. |
| `branding` | Rivet branding chrome. |
| `datacenter` | Datacenter-related UI. |
| `danger-zone` | Destructive settings actions (`features.dangerZone`). |

Deployment flavors map to flag sets roughly as: **cloud** = all on; **OSS** = `auth`/`platform`/`acl` off; **enterprise** = `acl` on, `auth`/`platform` off (engine enforces auth without a login UI). Do not treat `platform`/`auth` as "engine requires credentials" — that is `acl`.
Deployment flavors map to flag sets roughly as: **cloud** = all on; **OSS** = `auth`/`platform`/`acl` off; **enterprise** = `acl` on, `auth`/`platform` off (engine enforces auth without a login UI). Do not treat `platform`/`auth` as "engine requires credentials" — that is `acl`. **`compute` is opt-in even on cloud** — each Railway service adds it to `VITE_FEATURE_FLAGS` per-environment (e.g. staging on, prod off) rather than inheriting the cloud default-on set.

## When to add a new flag

Expand Down
9 changes: 6 additions & 3 deletions frontend/src/app/actors-grid.tsx

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions frontend/src/app/dialogs/upsert-deployment-frame.tsx

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

45 changes: 29 additions & 16 deletions frontend/src/app/getting-started.tsx

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions frontend/src/app/layout.tsx

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion frontend/src/app/provider-dropdown.tsx

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion frontend/src/components/actors/actors-actor-details.tsx

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions frontend/src/lib/features.ts

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 14 additions & 4 deletions website/src/content/docs/connect/rivet-compute.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ skill: true
---

<Note>
Rivet Cloud is currently in beta.
Rivet Compute is currently in beta.
</Note>

<Note>
Expand All @@ -22,14 +22,23 @@ Using an AI coding agent? Open **Connect** on the [Rivet dashboard](https://dash
- A [Rivet Cloud](https://dashboard.rivet.dev) account and project

</Step>
<Step title="Configure Runner Mode">
<Step title="Configure Serverless Mode">

Rivet Compute runs your app as a long-lived container. Make sure your server calls `startRunner()` instead of `serve()`:
Rivet Compute runs your app as a short-lived, serverless container. Make sure your server `serve()` or uses `handler()` instead of `startRunner()`:

```typescript src/server.js @nocheck
import { registry } from "./actors.js";
import { Hono } from "hono";
import { serve } from "@hono/node-server";

registry.startRunner();
const app = new Hono();

// Mount Rivet handler
app.all("/api/rivet/*", (c) => registry.handler(c.req.raw));

const PORT = parseInt(process.env.PORT);

serve({ fetch: app.fetch, port: PORT });
```

See [Runtime Modes](/docs/general/runtime-modes) for details on when to use each mode.
Expand Down Expand Up @@ -147,6 +156,7 @@ If the status shows **Error**, check that your container starts successfully and

- The server file is not calling `registry.startRunner()`
- A runtime crash on startup — test the image locally with `docker run`
- The Dockerfile is not listening on the `PORT` environmental variable

</Accordion>

Expand Down
Loading