composerglobalrequireel-hendawy/keel
exportPATH="$(composerglobalconfigbin-dir--absolute):$PATH"# add to your shell profile
Inside a project, keel runs that project's own version (vendor/bin/keel), so each project uses the Keel
it locked. vendor/bin/keel works too.
Every command runs from the application root (where app.php is). --env=<name> selects the environment
(default KEEL_ENV or dev); --app=<file> another application file.
make:endpoint writes the endpoint, its input (for POST/PUT/PATCH) and its result class into the namespace
from composer.json, with #[Authorize] when you pass --scope. The endpoint returns 501 until you
implement it. Nothing is overwritten.
The Dockerfile installs the extensions keel run uses, compiles the build into the image, runs as
www-data, and starts keel run on port 8080. The Kubernetes file has a Deployment (startup, liveness and
readiness probes on the health endpoints, a pre-stop pause so endpoints update before the drain, no root, no
privilege escalation), a Service, a HorizontalPodAutoscaler and a PodDisruptionBudget. Secrets come from a
Secret named <name>-secrets. Nothing is overwritten. See microservices.
Writes a dependency-free TypeScript client from the OpenAPI document: one interface per schema and one typed
method per route, named after the route name (orders.create becomes ordersCreate). Errors throw ApiError
with the RFC 9457 problem document, including validation errors with their paths.