Menu
Public repository / master
AkurAI-Framework / site/content/docs/cli.md
Latest change b34c72a614f00efd0c0d58bdc5e3ccc63f07c682 - docs: fix stale info (v0.1.0 status, roadmap, crate table) + file remaining-feature batch ledger (BATCHES.md) by Ólafur Búi Ólafsson
# CLI The `akurai` binary is the whole toolchain. It has no subdependencies and runs anywhere a Linux binary runs. ## `akurai new <path>` Scaffold a new project from embedded templates. Creates `frontend/`, `backend/`, and `data/`, plus `akurai.toml`. Fails if the target exists and is non-empty. ``` akurai new myapp ``` ## `akurai serve` Serve the current project. Registers every `frontend/*.html` as a template, renders pages against `backend/page.json`, routes through `backend/routes.json` (see [Routing](/docs/routing)), and persists data to `data/store.db` (see [Storage](/docs/storage)). ``` akurai serve --dir frontend --host 127.0.0.1 --port 8090 ``` - `--dir` — frontend directory (default `frontend`) - `--host` — bind address (default `127.0.0.1`) - `--port` — bind port (default `8090`) ## `akurai dev` The same as `serve`, plus **live reload**. The dev server watches `frontend/`, `content/`, and `backend/` and, on any change, pushes a reload to connected browsers over Server-Sent Events (a tiny `EventSource` script is injected into dev pages). Edit a template or stylesheet and the page refreshes itself — no plugin, no build step. ``` akurai dev --dir frontend --port 8090 ``` Live reload is strictly a `dev` feature: `akurai serve` starts no watcher, injects nothing, and reserves the internal `/_dev/*` namespace as `404`. ## `akurai version` Print the version. ## `akurai update` Self-update the CLI to the latest release (aliases: `upgrade`, `self-update`). ``` akurai update --check # report whether a newer release exists; install nothing akurai update # download the latest release and replace this binary ``` It resolves the right binary for your platform from the project's GitHub releases, downloads it (via the system `curl`), and atomically replaces the running executable. See [Updating](/docs/updating) for the full details and caveats. ## Deploying The binary is self-contained, so deployment is "copy the file and run it." Build a static binary for portability: ``` cargo build --release --target x86_64-unknown-linux-musl ``` Put it behind nginx for TLS and run it under systemd. That is exactly how `akurai-framework.olibuijr.com` — the site you are reading — is deployed.