systemg

Search docs

/
Install

Installation

Installation

Install

Linux / macOS

Installation

$ curl --proto '=https' --tlsv1.2 -fsSL https://sh.sysg.dev/ | sh

Homebrew

$ brew install ra0x3/tap/sysg

Homebrew owns the binary it installs, so brew upgrade sysg swaps it without the live re-execution the installer performs. A supervisor that is already resident keeps serving the build it booted from until it is stopped; sysg version reports both.

Verify

$ sysg --version

Specific version

Install a specific version:

$ curl --proto '=https' --tlsv1.2 -fsSL https://sh.sysg.dev/ | sh -s -- --version 0.56.1

Switch versions

Switch to an already installed version, or download it:

$ curl --proto '=https' --tlsv1.2 -fsSL https://sh.sysg.dev/ | sh -s -- -v 0.56.1

The installer validates the downloaded binary before changing the active version. A newer release can upgrade a running supervisor without restarting its services when both binaries advertise the same live-reexec protocol and handoff schema; major and minor version boundaries do not decide compatibility. Residents from 0.56.0 through 0.57.0 still enforce the original same-major/minor rule; earlier residents do not support live re-execution. See Upgrading sysg for compatibility and SG0502 recovery.

Non-interactive shells

The installer adds ~/.local/bin to PATH at the top of ~/.bashrc for bash, and in ~/.zshenv and ~/.zshrc for zsh, so one-shot commands such as ssh host 'sysg status' find sysg. Hosts set up by an older installer have the line at the bottom of ~/.bashrc, where those commands never reach it. Rerun the installer to fix them, even on the same version.

Cron and systemd read neither file, so give them the absolute path, for example /home/ubuntu/.local/bin/sysg (or /home/ubuntu/.sysg/bin/sysg if the installer fell back to that directory). Debian and Ubuntu cron default to PATH=/usr/bin:/bin. A systemd user unit can use %h/.local/bin/sysg.

Next steps

Create your first configuration and start running services.

IntroductionUpgrading sysg