aster.ax / Docs

Run ax as a service

SSH deployment configures the runner to accept commands without keeping an SSH session open. The service and job-supervisor roles use the same ax executable.

User installation

User mode is the default:

ax deploy ssh user@build-host --name buildbox

The runner service and jobs run as that user. On the runner, inspect the service and its logs on Linux with:

systemctl --user status ax.service
journalctl --user -u ax.service

Starting the user service at boot requires a working user manager and lingering. Deployment reports boot_enabled. If it reports false, an administrator may need to enable lingering for the job account.

On macOS, inspect the user service with:

launchctl print user/$(id -u)/dev.getaster.ax.host

The logs are ~/.local/state/ax/host.stdout.log and host.stderr.log. Deployment registers startup for user login. Individual job supervisors are separate from the host API, so an API restart does not stop their work.

System installation

For a machine-wide Linux service, add --system. This requires root access or noninteractive sudo during deployment:

ax deploy ssh user@build-host --name buildbox --system

The API runs as ax-service-user. A privileged helper launches jobs as the SSH account, or the non-root account selected by --run-as. System installation does not make ordinary jobs run as root.

On the runner:

systemctl status ax.service ax-helper.service
journalctl -u ax.service -u ax-helper.service

Upgrade or remove

Repeat deployment with the intended compatible binary or bundle to upgrade. The installer preserves identities and owner settings and checks readiness. An identical artifact can be reconciled without changing its installed bytes.

Removal is a separate operation. Start with its plan and inspect the selected scope and running-job report; see remove an installation.

For configuration paths, activation checks and detailed behavior, use the SSH deployment reference. For permissions, read access and execution accounts.