Auto-update

OxiPulse includes a built-in self-update mechanism. Once per day, the agent checks the GitHub Releases page for a newer version. If one is found, it downloads the correct binary for the current platform, replaces itself on disk, and exits cleanly so the system service manager can restart it.

Update flow

  1. Agent checks https://api.github.com/repos/securyblack/oxi-pulse/releases/latest once per day.
  2. Compares the remote version tag against the current binary version using semantic versioning.
  3. If a newer version exists, downloads the correct binary for the current OS and architecture.
  4. Verifies the download integrity via SHA256 checksum published in the release.
  5. Replaces the running binary on disk and calls exit(0) cleanly.
  6. systemd (Linux) or the Windows Service Manager restarts the process automatically, picking up the new binary.
The update check uses the GitHub public API and requires outbound HTTPS access to api.github.com and github.com. No other external connections are made during the update process.

Logs

Update log output
INFO oxipulse::updater: checking for updates (current: v0.1.0)
INFO oxipulse::updater: new version available: v0.2.0
INFO oxipulse::updater: downloading oxipulse-linux-x86_64 v0.2.0
INFO oxipulse::updater: checksum verified, replacing binary
INFO oxipulse::updater: update complete, restarting

Disabling auto-update

If you manage updates through your own package management or deployment pipeline, you can disable the auto-updater:

toml
# Environment variable
OXIPULSE_AUTO_UPDATE=false

# Or in config.toml
auto_update = false

Pinning a version

To install a specific version instead of the latest, pass the version tag to the install script:

bash
# Linux
OXIPULSE_VERSION=v0.1.0 curl -fsSL https://install.oxipulse.dev | sudo bash

# Windows
$env:OXIPULSE_VERSION="v0.1.0"; irm https://install.oxipulse.dev/windows | iex
Pinned versions will not auto-update. You are responsible for monitoring and applying security releases manually if auto-update is disabled or a version is pinned.