TasksRun Locally

Run Locally

There are three useful local workflows: zero-config startup, explicit config, and locked local startup.

Zero-Config Startup

gestaltd

If no config exists, gestaltd generates ~/.gestalt/config.yaml and starts a local environment with:

  • none auth
  • SQLite
  • env secrets
  • a generated server.encryption_key

The server and embedded UI are both available at http://localhost:8080.

Explicit Config

gestaltd --config ./config.yaml

Use this when you want to control:

  • auth provider
  • datastore path or DSN
  • integrations
  • bindings

Locked Local Startup

If your config includes remote REST or GraphQL upstreams, or packaged plugins, init and validate first:

gestaltd init --config ./config.yaml
gestaltd validate --config ./config.yaml
gestaltd serve --locked --config ./config.yaml

This is the closest local approximation to a production deployment.

Local Dev Features

With auth.provider: none, Gestalt skips authentication entirely. All requests are handled as a single anonymous user, which is convenient for local development.

The Frontend In Isolation

If you are working on the web app itself rather than gestaltd, the repo also supports running the Next.js app separately. That is a frontend development workflow, not the normal runtime model.