Prerequisites
Everything you need installed and configured before working on Crawbl.
Treat this page as the minimum setup checklist for your laptop and accounts. Once it is complete, you can run the backend locally and work with the shared dev environment without guessing which tools or credentials are missing.
Install the tools
Use mise when possible so everyone works with the same pinned versions. If you prefer manual installs, use the Homebrew list below.
Set up your accounts
Make sure GitHub, DigitalOcean, AWS, Pulumi, and Cloudflare access are in place before you touch the cluster.
Configure credentials
Put the required tokens into crawbl-backend/.env, then authenticate doctl so the cluster tools can talk to DigitalOcean.
Verify access
Run the short credential checks at the end of the page to confirm your shell can reach GitHub, DigitalOcean, AWS, and Pulumi.
Install Tools
Option A: mise (recommended)
We use mise to pin exact tool versions. The .mise.toml file in crawbl-backend defines versions for all required tools.
# Install mise
curl https://mise.run | sh
eval "$(~/.local/bin/mise activate zsh)"
# Install all pinned tools
cd crawbl-backend
mise install
This installs the main tools the repos expect, using versions the team already pinned.
Option B: Homebrew
If you prefer managing tools manually:
brew install go kubectl helm doctl awscli pulumi/tap/pulumi
You also need Docker Desktop because local development starts supporting services in containers. Download it from docker.com/products/docker-desktop and verify:
docker info
And golangci-lint:
brew install golangci-lint
If you skip that, crawbl dev lint installs it on first use.
Version Checklist
| Tool | Minimum | Check command |
|---|---|---|
| Go | 1.25.8+ (see go.mod) | go version |
| kubectl | 1.30+ | kubectl version --client |
| Helm | 3.x | helm version --short |
| Docker | Latest stable | docker --version |
| doctl | Latest stable | doctl version |
| awscli | 2.x | aws --version |
| Pulumi | Latest stable | pulumi version |
The exact Go version is pinned in crawbl-backend/go.mod. Always check that file if you are unsure which version to use.
Accounts & Tokens
| Service | Used for | How to get access |
|---|---|---|
| GitHub | Source code | Org invite to Crawbl-AI from your team lead |
| DigitalOcean | Kubernetes cluster, container registry | Team-shared account — get a personal API token from the dashboard |
| AWS | Secrets Manager (eu-central-1) | IAM user with SecretsManager read/write |
| Pulumi | Infrastructure state backend | Free account at app.pulumi.com |
| Cloudflare | DNS and TLS certificates | Team-shared account — API token scoped to the Crawbl zone |
Configure credentials
All tokens live in a single .env file inside crawbl-backend. It is created automatically when you run ./crawbl setup or make setup, but you still need to fill in a few values for cluster operations:
cd crawbl-backend
cp .env.example .env # if it doesn't exist yet
Edit .env and set:
PULUMI_ACCESS_TOKEN="pul-..."
DIGITALOCEAN_TOKEN="dop_v1_..."
CLOUDFLARE_API_TOKEN="..."
Then authenticate the DigitalOcean CLI:
doctl auth init
Never commit .env to Git. It is already in .gitignore.
Verify access
# GitHub
gh repo list Crawbl-AI --limit 5
# DigitalOcean
doctl account get
# AWS
aws sts get-caller-identity --region eu-central-1
# Pulumi
pulumi whoami
What's next: Run the Backend — start the orchestrator locally.