Skip to content
RELKIT
Esc
↑↓navigate↵open⌘Jpreview
On this page

Operations

Observe, inspect, test, build, diagnose, and deploy the same checked application graph.

Use these pages to test application behavior, inspect running work, diagnose failures, and prepare a deployment. Use local telemetry and the Inspector while developing, deterministic tests for behavior, a reproducible build before release, and deployment preview only when cloud infrastructure is intentionally configured.

Pre-setup

Start with local logging and bounded capture; neither requires a telemetry account, exporter, new defineEnv fields, or a Docker service. Merge these settings into your existing defineApp configuration, retaining its environment contract:

/** Local telemetry works without a remote exporter or extra environment secrets. */
import { defineApp, defineEnv } from "@relkit/app/config";

export default defineApp({
  env: defineEnv({}),
  telemetry: {
    redaction: { mode: "development-redacted", maxBytes: 65_536 },
    localRetention: { maxRecords: 2_000, maxAgeMs: 3_600_000, maxBytes: 16_777_216 },
  },
});

Run bun run check and bun run dev, then send a request to an existing route to produce correlated logs. For a UI, complete the separate Inspector setup: installation alone does not enable its bridge. Keep your application’s Redis, MinIO, database, and job providers in local Docker.

Remote Sentry/OTLP export is optional. Their integrations have no bundled Docker collector recipe; configure a reachable service and supply its named endpoint/secret bindings only when selecting that exporter. Those binding references are distinct from application context.env fields.

Choose the operational task

Use the generated project commands

The minimal starter exposes the normal application lifecycle as package scripts. This manifest is a reference for the base app; optional feature guides add only their selected dependencies:

{
  "name": "my-app",
  "private": true,
  "type": "module",
  "packageManager": "bun@1.3.10",
  "scripts": {
    "dev": "relkit dev",
    "check": "relkit check",
    "typecheck": "tsc --noEmit",
    "test": "bun test",
    "test:unit": "bun test tests/unit",
    "test:integration": "bun test tests/integration",
    "build": "relkit build",
    "start": "NODE_ENV=production bun run --no-env-file .relkit/build/server/index.js",
    "graph": "relkit graph print"
  },
  "dependencies": {
    "@relkit/app": "0.8.2",
    "@scalar/hono-api-reference": "0.12.9",
    "effect": "4.0.1"
  },
  "devDependencies": {
    "@types/bun": "1.3.10",
    "@relkit/cli": "0.8.4",
    "@relkit/testing": "0.8.2",
    "typescript": "5.9.3"
  }
}

During development, run the narrowest check that proves the change. Before releasing an application, run the complete local sequence:

bun run check
bun run typecheck
bun run test
bun run build
bun run start

Building and starting do not create cloud resources. Deployment is a separate, explicit lifecycle.

Match the repository gate before pushing

RELKIT contributors can run the same locally reproducible CI coverage before a push:

bun run prepush

That focused merge gate needs no Docker daemon. Use bun run prepush:full with Docker available for full local acceptance, including container/local-service and browser checks. Dependency review is hosted CI-only. Real AWS acceptance is separately opt-in locally and is not run by CI; it needs explicit credentials and authorization for cloud cost.

Reference and source