Skip to content

Running HeliosLogs (CLI)

HeliosLogs runs as a single long-lived process — helios serve. One binary serves the HTTP API, web UI, MCP endpoint, ingestion endpoints, and all background workers.

Global flags

These apply to the helios binary:

FlagDefaultDescription
--data-dir <path>./dataLocal directory for block partitions, the single-node control plane, and (by default) the generated key files.
--verboseoffExtra diagnostics, including periodic memory stats during serve.

serve — run the server

Starts the HTTP API, web UI, MCP endpoint, ingestion endpoints, and all background workers.

bash
helios serve \
  --port 7300 \
  --host 127.0.0.1 \
  --data-dir ./data \
  --frontend-dir ./frontend/dist
FlagDefaultDescription
--port <n>7300HTTP/MCP listen port.
--host <addr>127.0.0.1Bind address. Use 0.0.0.0 to accept non-local connections (containers, LAN, behind a proxy).
--shared-store <uri>Shared object store for multi-node replication and DR: a filesystem/NFS path or s3://bucket/prefix. Omit for single-node, local-only. See Multi-node.
--frontend-dir <path>Built SPA directory (e.g. frontend/dist), served at /. Must contain index.html or serve refuses to start.
--syslog-port <n>Override the syslog listener port (UDP + TCP) from the control plane. 0 disables the listener. Also settable via HELIOS_SYSLOG_PORT. See Syslog.

Exposing HeliosLogs

--host 0.0.0.0 makes HeliosLogs reachable from the network. Put it behind a TLS-terminating reverse proxy and review Security hardening first — HeliosLogs speaks plain HTTP and does not terminate TLS itself.

Logs are written to stderr. Configure verbosity with the standard RUST_LOG environment variable (for example RUST_LOG=info,hyper=warn, the default).

Running as a service

For bare-metal deployments, run serve under a process supervisor. A minimal systemd unit:

ini
[Unit]
Description=HeliosLogs
After=network.target

[Service]
ExecStart=/usr/local/bin/helios serve --host 0.0.0.0 --port 7300 \
  --data-dir /var/lib/helios/data --frontend-dir /usr/local/share/helios/dist
Environment=HELIOS_CONTROL_KEY_PATH=/etc/helios/secret-control.json
Environment=HELIOS_JWT_SECRET_PATH=/etc/helios/secret-jwt.json
Restart=on-failure
User=helios

[Install]
WantedBy=multi-user.target

Keep the data directory and the two secret files on persistent storage. See Secrets & encryption and the Configuration reference.