Local Development
Use the local development flow when changing Fleet Manager, Dashboard, device agent, dispatcher, or tests.
Python Environment
python3 -m venv .venv
source .venv/bin/activate
pip install -e '.[dev]'
pytest
The default database is .kerrigan/kerrigan.db. Override it with:
KERRIGAN_DB_PATH=/tmp/kerrigan.db ./start.sh
Start Services
./start.sh
By default:
- Fleet Manager listens on
http://127.0.0.1:8000 - Dashboard listens on
http://127.0.0.1:8001/admin - TFTP listens on UDP
69
On local hosts, start.sh may prompt for sudo before starting TFTP because UDP
69 is a privileged port. Use KERRIGAN_TFTP_PORT only for tests that do not
need a DevKit to netboot from the standard TFTP port.
The Dashboard frontend is a React/Vite app under
src/kerrigan/services/dashboard/web/. start.sh installs frontend
dependencies when needed and builds the dashboard before starting the service.
Install Kerrigan Skills
Kerrigan includes development skills and playbooks that help authors create
workflow manifests and operate the repo consistently. Install them into your
development environment with sima-cli:
sima-cli playbooks install gh:sima-neat/kerrigan
Run this once per development environment, then refresh or restart any tool that loads playbooks at startup.
Export OpenAPI
PYTHONPATH=src python scripts/export_openapi.py
PYTHONPATH=src python scripts/export_openapi.py --check
The generated schema is published with the documentation at /openapi.json.
Build Packages
./build.sh
scripts/build_device_agent_vulcan_package.sh
scripts/build_ubuntu_host_vulcan_package.sh