Skip to main content

crawbl CLI

Before You Change Anything

These pages often point at shared systems. Confirm the cluster, namespace, and ownership boundary before running mutating commands.

The crawbl CLI handles local development, testing, builds, and Pulumi-based infrastructure operations.

The backend repo ships a repo-local launcher at ./crawbl. You do not need to install the binary globally.

cd crawbl-backend
make setup

make setup installs the pre-push hook, checks your machine, and prepares the repo-local ./crawbl launcher. On first run, ./crawbl builds bin/crawbl automatically.

Top-Level Commands

CommandDescription
./crawbl setupCheck local prerequisites and create .env
./crawbl dev ...Local development commands (start, stop, reset, lint, verify, ...)
./crawbl test unitRun Go unit tests
./crawbl test e2eRun Godog/Cucumber e2e tests
./crawbl app build <component>Build a component image
./crawbl infra initInitialize or select Pulumi stack
./crawbl infra planPreview infrastructure changes
./crawbl infra updateApply infrastructure changes
./crawbl infra destroyDestroy infrastructure resources
./crawbl infra bootstrapBootstrap cluster + platform end-to-end

Infrastructure Commands

Manage the DigitalOcean Kubernetes cluster and ArgoCD bootstrap.

./crawbl infra init
./crawbl infra plan
./crawbl infra update
./crawbl infra destroy
./crawbl infra bootstrap

Build Commands

Build and optionally push container images to DOCR. Deployments themselves are handled by ArgoCD, not by a crawbl app deploy command.

Platform Image

Single unified image for the orchestrator, userswarm webhook, migration job, backup, and reaper. The active component is selected via entrypoint.

./crawbl app build platform --tag dev --push

Auth Filter

Separate image for the TinyGo/WASM Envoy auth filter.

./crawbl app build auth-filter --tag dev --push

Docs

Docusaurus static site image.

./crawbl app build docs --tag dev --push

Test Commands

./crawbl test unit
./crawbl test e2e

Repo-Local Workflow

Use the CLI from inside crawbl-backend:

./crawbl --help
./crawbl dev start
./crawbl dev start --database-only

If you want to force a rebuild of the local binary, set CRAWBL_REBUILD=1 for one command:

CRAWBL_REBUILD=1 ./crawbl --version

Pre-Push Hook

make setup installs a repo-managed pre-push hook.

That hook runs make ci-check, which does:

  • a repo-local crawbl build
  • ./crawbl test unit
  • a linux/amd64 crawbl build to match the CI compile path

Notes

  • CI is the source of truth for deployed image updates.
  • The CLI is primarily for local development, manual builds, and infrastructure work.
  • ZeroClaw images are built from crawbl-zeroclaw, not from crawbl app build.
  • Environment Variables: Commands requiring credentials (like ./crawbl infra plan) must be run with environment variables sourced from .env. Use:
    set -a && source .env && set +a && ./crawbl <command>
    or alternatively:
    export $(grep -v '^#' .env | xargs) && ./crawbl <command>