local development
info
this guide is for contributing to overlord's source code. if you're looking to use overlord, see the getting started guide.
prerequisites#
- node.js >= 20
- pnpm >= 9
- redis (running locally)
- git >= 2.20
development setup#
clone the repository and install dependencies:
git clone https://github.com/overlord-run/overlord.git
cd overlord
pnpm installbuild the shared protocol package and server:
pnpm --filter @overlordai/protocol build
pnpm --filter @overlordai/server buildseed test data#
populate the database with sample developers, projects, and machines:
pnpm dev:seedthis creates the following test accounts:
| username | role | password | totp secret |
|---|---|---|---|
admin | admin | test-password-123 | JBSWY3DPEHPK3PXP |
alice | lead | test-password-123 | JBSWY3DPEHPK3PXP |
bob | developer | test-password-123 | JBSWY3DPEHPK3PXP |
carol | developer | test-password-123 | JBSWY3DPEHPK3PXP |
info
use any totp authenticator app with the secret JBSWY3DPEHPK3PXP to generate 2fa codes for login.
start development servers#
open two terminals:
# terminal 1: start the backend server on port 9000
pnpm dev
# terminal 2: start the web dev server on port 5173
pnpm dev:webthe vite dev server proxies /api/* and /ws/* requests to the backend server on port 9000.
open http://localhost:5173 in your browser and log in with any of the seed credentials.
npm scripts#
| script | description |
|---|---|
pnpm dev | start the server |
pnpm dev:web | vite dev server (port 5173) |
pnpm dev:seed | seed test data |
pnpm build | build all packages |
pnpm test | run unit tests |
pnpm test:all | run all tests including playwright e2e |
pnpm test:coverage | run tests with v8 coverage reports |
pnpm lint | type-check all packages |
pnpm publish:all | publish all packages to npm |
after protocol changes#
whenever you modify types in packages/protocol, rebuild:
pnpm --filter @overlordai/protocol buildnext steps#
- worker setup — configure worker machines to execute tasks
- developer cli reference — full
ovcommand reference