.agents/skills/budibase-setup-run/SKILL.md
Use this workflow for a fresh local Budibase checkout.
git clone https://github.com/Budibase/budibase.git
cd budibase
nvm install
nvm use
node -v
Budibase requires Node >=22.0.0 <23.0.0; this repo pins v22.18.0 in .nvmrc.
npm install -g yarn
yarn -v
docker --version
docker compose version
docker info
yarn setup
yarn setup configures submodules, checks Docker prerequisites, installs dependencies, builds packages, and starts the dev environment.
For automated VM environments where dependencies and build outputs can be cached, prefer the agent path:
yarn
yarn build
yarn dev:agent
yarn dev:agent preserves existing build artifacts by skipping the root clean/prebuild step. It also starts only the core Docker services and disables LiteLLM readiness checks for the dev process, which keeps startup lighter in constrained VM environments. Use it after a successful build or when restoring a VM image that already contains valid dist outputs.
Use the manual path when yarn setup fails partway through or the user wants separate steps:
yarn
yarn build
yarn dev
On first setup, yarn build is required before the dev loop. Later edits to shared packages such as @budibase/shared-core, @budibase/backend-core, or types may require another build.
Start the local development environment from the repo root:
yarn dev
This command:
.env through scripts/dev/manage.js.yarn kill-all.For automated VM runs after a successful build, use:
yarn dev:agent
This keeps the normal developer workflow unchanged while reducing startup work and memory usage in cached environments.
Access Budibase at:
http://localhost:10000http://localhost:10000/builderDefault local login:
[email protected]cheekychucklesExpect these local services:
| Service | Port | Notes |
|---|---|---|
| Nginx proxy | 10000 | Main entry point |
| Builder | 3000 | Vite/Svelte dev server |
| Server | 4001 | Koa API for apps |
| Worker | 4002 | Background jobs and platform APIs |
| MinIO | 4004 | S3-compatible storage |
| CouchDB | 4005 | Primary database |
| CouchDB SQS | 4006 | Queue-related CouchDB service |
| Redis | 6379 | Cache, sessions, queues |
| LiteLLM | 4000 | Optional AI proxy, token budibase |
Health checks:
curl http://localhost:4001/health
curl http://localhost:4002/health
Build everything:
yarn build
Run type checks:
yarn check:types
Run lint:
yarn lint
Run a package test from inside that package:
cd packages/server
yarn test path/to/test-file.test.ts
Run only server and worker:
yarn dev:server
Run the optimized automated-environment startup path:
yarn dev:agent
If Docker commands fail, ensure Docker Desktop or the Docker daemon is running before rerunning setup.
If ports are stale, run:
yarn kill-all
If dependencies or build outputs look corrupt, rebuild without deleting Docker-backed data:
yarn restore
If the user is in a cloud VM with nested Docker, Docker may need to be started manually before yarn dev:
sudo dockerd
Do not change /var/run/docker.sock to be world-writable. If Docker permission errors persist, use the environment's approved Docker group, rootless Docker, or VM provisioning setup.
If local mode changes do not appear in the browser, clear Budibase cookies for localhost.
Use @budibase/ scoped imports between packages. The main package split is:
packages/server, packages/worker, packages/backend-corepackages/builder, packages/frontend-core, packages/bbuipackages/shared-coreFor server API tests, prefer TestConfiguration from packages/server/src/tests/TestConfiguration.ts. For automation tests, use createAutomationBuilder from packages/server/src/automations/tests/utilities/AutomationTestBuilder.ts.