Skip to content

Install (Linux)

HeliosLogs publishes native Linux packages for Debian/Ubuntu (apt), Fedora / RHEL / CentOS Stream / AlmaLinux / Rocky / Amazon Linux (dnf/COPR), and Alpine (apk). Each is a single self-contained binary (the web UI is embedded — no separate frontend to deploy) plus a service unit — systemd, or OpenRC on Alpine. All channels ship x86_64 and aarch64.

For containers see the Quickstart; on a Mac, see Install (macOS).

Install

Pick your distribution:

bash
# dnf-plugins-core provides `dnf copr` (preinstalled on most Fedora).
sudo dnf install -y dnf-plugins-core
sudo dnf copr enable helioslogs/helioslogs
sudo dnf install -y helioslogs
bash
# Trust the signing key + add the repo (once), then install.
sudo install -d /etc/apt/keyrings
curl -fsSL https://helioslogs.github.io/apt/helioslogs.gpg \
  | sudo tee /etc/apt/keyrings/helioslogs.gpg >/dev/null
echo "deb [signed-by=/etc/apt/keyrings/helioslogs.gpg] https://helioslogs.github.io/apt stable main" \
  | sudo tee /etc/apt/sources.list.d/helioslogs.list >/dev/null
sudo apt-get update
sudo apt-get install -y helioslogs
sh
# Trust the signing key + add the repo (once), then install.
sudo wget -O /etc/apk/keys/helioslogs.rsa.pub \
  https://helioslogs.github.io/apk/helioslogs.rsa.pub
echo "https://helioslogs.github.io/apk/stable" | sudo tee -a /etc/apk/repositories
sudo apk update
sudo apk add helioslogs

Repository notes

  • dnf/COPR picks the right chroot from /etc/os-release automatically (fedora-NN, epel-9/epel-10, amazonlinux-2023) — no per-distro URL to choose.
  • Alpine packages are a static musl build, served from a signed apk repository.

Then start the service.

Start the service

The package installs a service unit but does not enable or start it automatically, so you can configure it first — systemd on Debian/Ubuntu and Fedora/RHEL, OpenRC on Alpine.

(Optional) Bootstrap the admin account

On an empty install the first browser visitor completes a one-time setup wizard. To skip that, set credentials in the service config before the first start:

bash
sudo install -d /etc/helioslogs
sudo cp /usr/share/helioslogs/helioslogs.env.example /etc/helioslogs/helioslogs.env
sudoedit /etc/helioslogs/helioslogs.env
#   [email protected]
#   HELIOS_ADMIN_PASSWORD=change-me
sh
sudoedit /etc/conf.d/helioslogs
#   export HELIOS_ADMIN_EMAIL="[email protected]"
#   export HELIOS_ADMIN_PASSWORD="change-me"

Enable and start

bash
sudo systemctl enable --now helioslogs
systemctl status helioslogs --no-pager
sh
sudo rc-update add helioslogs default
sudo rc-service helioslogs start
sudo rc-service helioslogs status

Verify and open it:

bash
helioslogs --version
curl -s http://localhost:7300/api/health        # {"ok":true}

Open http://localhost:7300 and log in (or complete the setup wizard). Next: First steps.

Reachable on the network by default

The packaged service binds to 0.0.0.0:7300, so it accepts connections from other hosts as soon as it starts. Read Security hardening before exposing HeliosLogs directly, and put it behind TLS / a reverse proxy for anything beyond localhost.

Syslog listener (optional)

Separately from the HTTP port (7300), HeliosLogs can receive raw syslog over UDP + TCP on its own port — default 5514. The listener is off by default; turn it on under Admin → Data Ingestion → Syslog.

To change the port (or run several instances on one host), set HELIOS_SYSLOG_PORT in the service config — /etc/helioslogs/helioslogs.env (systemd) or /etc/conf.d/helioslogs (OpenRC):

sh
HELIOS_SYSLOG_PORT=5514     # 0 disables the listener on this node

This only overrides the port — you still enable the listener in the admin settings. Open the port in your firewall, and see Syslog for routing and the parsed fields.

Where things live

PathContents
/usr/bin/helioslogsThe binary (run it directly too: helioslogs serve …).
/lib/systemd/system/helioslogs.service (deb/rpm) · /etc/init.d/helioslogs (Alpine)The service unit.
/etc/helioslogs/helioslogs.env (systemd) · /etc/conf.d/helioslogs (OpenRC)Service config (admin bootstrap, HELIOS_SYSLOG_PORT, RUST_LOG, …).
/var/lib/helioslogsData partitions, control plane, and the auto-generated secret keys.

The deb/rpm unit runs under a systemd DynamicUser; the apk package runs as a dedicated helioslogs system user. Either way /var/lib/helioslogs holds the encryption + JWT secrets — back it up and see Secrets & encryption.

Upgrade

The packages upgrade in place; /var/lib/helioslogs is preserved. Restart the service afterward.

bash
sudo dnf upgrade helioslogs
sudo systemctl restart helioslogs
bash
sudo apt-get update && sudo apt-get install --only-upgrade helioslogs
sudo systemctl restart helioslogs
sh
sudo apk update && sudo apk add --upgrade helioslogs
sudo rc-service helioslogs restart

See Upgrades & backups for backup guidance and version policy.

Uninstall

bash
sudo systemctl disable --now helioslogs
sudo dnf remove helioslogs
bash
sudo systemctl disable --now helioslogs
sudo apt-get remove helioslogs
sh
sudo rc-service helioslogs stop; sudo rc-update del helioslogs
sudo apk del helioslogs

Removing the package leaves your data in /var/lib/helioslogs. Delete it manually if you want a clean slate.