Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Install and run Orion

Orion is a single binary with an embedded database. This guide installs it, starts it on its defaults, and verifies that it is ready to accept definitions.

Before you start

Tested with Orion 1.8.1. Choose one installation method. Every method produces the same binary.

MethodPlatformsYou need
HomebrewmacOS Apple Silicon, LinuxHomebrew
Shell installerLinux, macOS Apple SiliconA POSIX shell and curl
PowerShell installerWindowsWindows PowerShell
DockerAnywhere Docker runsDocker Engine or Docker Desktop
Source buildAnywhere Rust runsGit and Rust 1.98 or newer

You also need curl for the verification step. In PowerShell, Invoke-RestMethod http://localhost:8080/health does the same job.

Install the server

macOS Apple Silicon and Linux. Intel Macs build from source:

brew install GoPlasmatic/tap/orion-server

Linux and macOS Apple Silicon:

curl --proto '=https' --tlsv1.2 -LsSf \
  https://github.com/GoPlasmatic/Orion/releases/latest/download/orion-server-installer.sh | sh

Windows:

powershell -ExecutionPolicy ByPass -c "irm https://github.com/GoPlasmatic/Orion/releases/latest/download/orion-server-installer.ps1 | iex"

Any platform. The image is the server with no CLI:

docker run -p 8080:8080 ghcr.io/goplasmatic/orion:latest

Any platform with a Rust toolchain at the version Cargo.toml declares, currently 1.98:

cargo install --git https://github.com/GoPlasmatic/Orion --locked orion-server

Both arguments matter. The repository is a workspace with two binary crates, so the package must be named. --locked builds the dependency set the committed Cargo.lock pins, which is the one CI tested. To install the CLI in the same command, name both packages: orion-server orion-cli.

Install the CLI

orion-cli drives the same admin API from the terminal. It is what an AI assistant uses through the agent skill, and it is optional: every step in the tutorials also has a curl form.

The CLI ships in the same release as the server. Use matching versions so their wire formats agree. Every method is the server’s with orion-server swapped for orion-cli:

brew install GoPlasmatic/tap/orion-cli
curl --proto '=https' --tlsv1.2 -LsSf \
  https://github.com/GoPlasmatic/Orion/releases/latest/download/orion-cli-installer.sh | sh
powershell -ExecutionPolicy ByPass -c "irm https://github.com/GoPlasmatic/Orion/releases/latest/download/orion-cli-installer.ps1 | iex"
cargo install --git https://github.com/GoPlasmatic/Orion --locked orion-cli

Run the server

Start Orion on its defaults, which are SQLite in ./orion.db and HTTP on port 8080:

orion-server

There is nothing to provision. The database file is created on first boot and the migrations are embedded in the binary. SQLite is the right backend for one instance; read which backend to use before you run more than one.

Verify

Ask the server how it is doing:

curl -s http://localhost:8080/health

Output, with build values that differ per release:

{
  "status": "ok",
  "version": "<installed-version>",
  "uptime_seconds": 5,
  "components": {
    "database": "ok",
    "engine": "ok",
    "connectors": "ok",
    "channels": "ok"
  },
  "git_hash": "<build-commit>",
  "build_timestamp": "<build-timestamp>",
  "workflows_loaded": 0,
  "connectors": { "circuit_breaker_scope": "node", "circuit_breakers": {}, "failed_to_load": [] },
  "channels": { "quarantined": [] }
}

"status": "ok" with "workflows_loaded": 0 means the server is ready and holds no definitions yet. Read status, workflows_loaded and the component states rather than comparing the whole body: more components may appear in later releases.

Two more surfaces are live already. Swagger UI at http://localhost:8080/docs shows the whole admin API; it is served outside production environments (see OpenAPI specification). And the CLI, once you point it at the server:

orion-cli config set-server http://localhost:8080
orion-cli health

Change the defaults

Orion reads a TOML file, and any key in it can be overridden by an ORION_SECTION__KEY environment variable:

orion-server -c config.toml
ORION_SERVER__PORT=9090 orion-server

Check a file before you deploy it. orion-server validate-config -c config.toml reports unknown keys and invalid values without starting the server. Every setting, its default and its environment variable are in Server configuration.

Next steps

Last verified 14 September 2026