Getting started
A5E has three runtime components — an operator, an API, and a UI — plus a set of Custom Resource Definitions they all share. This page covers running them locally against a development cluster. For a real deployment, see Deployment.
Prerequisites
- Bun
- A local Kubernetes cluster — development happens against OrbStack's built-in cluster, but anything modern works
kubectlpointed at that cluster
Install and seed
bun install
bun run crds:generate # regenerate crds/*.yaml + charts/a5e/templates/crds/*.yaml from packages/schemas
bun run crds:apply # kubectl apply -k crds/
bun run seed # sample AnsibleHost/AnsibleInventory/AnsiblePlaybook/AnsibleSSHKey + a dev ServiceAccount tokenbun run seed prints the environment variables it needs, plus the BOOTSTRAP_ADMIN_USERNAME/ BOOTSTRAP_ADMIN_PASSWORD to set for your very first login (see Authentication for how that bootstrap account works).
Run the three services
In separate terminals:
bun run dev:operator
bun run dev:api
bun run dev:uiThe UI dev server proxies /api to the API's port automatically. Open the printed local URL and sign in with the bootstrap admin account.
Everyday development
bun run lint # biome check
bun run format # biome format --write
bun test # per packageEach package also has its own typecheck script — bun run --filter '*' typecheck from the root, or cd packages/<name> && bun run typecheck.
See Contributing for the full workflow, including what to update together when you change a CRD schema or an RBAC rule.