Install from source
Building from source gives you a native binary — useful for development, bare-metal deployments, or when you don't want to run a container. For the container path, see the Quickstart.
Prerequisites
- Rust toolchain (
cargo). Install via rustup. - Node.js (with
npm) to build the web frontend.
source "$HOME/.cargo/env" # if cargo isn't already on your PATH1. Build the frontend
The UI is a static single-page app that the backend serves. Build it once:
cd frontend
npm install
npm run build # outputs to frontend/dist
cd ..2. Build the backend
cargo build --release # produces ./target/release/heliosFor a FIPS 140-3 build, add --features fips (requires Go, Perl, and CMake) — see FIPS 140-3.
3. Run it
./target/release/helios serve \
--port 7300 \
--data-dir ./data \
--frontend-dir ./frontend/dist
# listening on http://127.0.0.1:7300Open http://127.0.0.1:7300 and follow the setup wizard (or set HELIOS_ADMIN_PASSWORD first to skip it — see First steps).
Binding the host
By default serve binds to loopback (127.0.0.1), reachable only from the same machine. To accept connections from elsewhere (containers, a LAN, behind a proxy), add --host 0.0.0.0. Read Security hardening before exposing HeliosLogs directly.
Where things live
| Path | Contents |
|---|---|
./data | Log partitions and (single-node) control plane. Override with --data-dir. |
./secret-control.json | Control-plane encryption key (auto-generated). |
./secret-jwt.json | JWT signing secret (auto-generated). |
The two secret files are written to the working directory by default. Back them up and do not place them inside --data-dir — see Secrets & encryption.
Frontend dev mode
When working on the UI, run Vite's dev server with hot reload. It proxies /api to the backend on :7300:
cd frontend
npm run dev # http://localhost:5173Keep helios serve running in another terminal so the proxied API is available.