ablative docs
↑↓ move↵ openesc close
Stack Notebook ablative.com.au

Install Aion

Install the public command, enable JWT support and distinguish the published release from main.

Open .md

Install the public release

Use a Unix host with Cargo and Rust 1.89 or later. Aion uses Rust edition 2024 and the AGPL-3.0-only licence.

cargo install aion-cli --version 0.31.0 --locked
aion --version
aion --help
aion-cli
Cargo package that installs the aion executable.
AION_HOME
Process setting for the server home. Default ~/.aion. This contains the discovered config, logs and process record; store.data_dir selects durable storage.

The crate page provides the public package and its release metadata. Continue with your first workflow for an AWL greeting supported by that release.

Install with JWT authentication

The default build leaves out JWT authentication. Add the auth feature when installing a server that must validate JWTs. On main, crates/aion-cli/Cargo.toml:146–149 defines the default and optional feature sets.

cargo install aion-cli --version 0.31.0 --locked --features auth

Configure the key URL and namespace claim in auth and Lys. Reinstalling with the default feature set changes the available authentication mode.

Using main

The published crate predates the main features described here, despite sharing their package version. Main adds venues, connected-worker inspection, package-row migration and plural gRPC listeners. The release reference explains these differences.

With repository access, run this from the checkout root. Choose the source revision before building and retain it with the installed binary.

cargo install --path crates/aion-cli --locked --features auth
aion --version
aion --help

Choose an update target

A bare update selects the crates.io release and can replace a newer build from main when installation proceeds. Pass an explicit version for a published target, or reinstall from the selected checkout for main. Equal version strings can report already current despite different commits.

aion update --version 0.31.0
Registry target
On main, crates/aion-cli/src/update.rs:81–85 resolves an omitted version through update_index::latest_stable; lines 329–359 invoke cargo install aion-cli --version with default features. An explicit version still targets the registry.
Equal versions
On main, crates/aion-cli/src/update.rs:273–300 compares package version strings in already_current(). Retain the source commit and executable identity as well as the version.
JWT build
On main, crates/aion-cli/Cargo.toml:146–149 omits auth from the defaults. Reinstall with --features auth to retain JWT verification.

Check for an existing server

Read status first. Reuse an existing server’s endpoint and namespace when continuing the tutorial.

Report which server is actually running: the pid-file record, the live build identity from its own listener, and readiness — each layer's absence reported as its own distinct state

aion server status [OPTIONS]
--config <CONFIG>
Path to the TOML server configuration file. Used to resolve the store path and, when no pid file exists, the address to probe

Start a local server

When the home has no running server, the bare launcher starts one in the background. It prints the configuration, data directory, log, process identity and console URL. This example leaves the browser closed.

aion server status
aion --no-open

On first boot with no discovered config, the launcher writes a commented config under Aion home. The starter enables deployment and the local worker listener. These choices are written into that file.

The console is embedded in the executable. Open the URL printed by the launcher.

Use a foreground process

An explicit config keeps the server in the terminal. Use the config generated by your installed release. The configuration reference describes the newer main build.

aion server --config aion.toml

Read running the server for logs, readiness and shutdown.