2026-07-27 02:19:11 +03:00
|
|
|
# Runix
|
2026-07-27 01:43:48 +03:00
|
|
|
|
2026-07-27 02:19:11 +03:00
|
|
|
Runix is an infrastructure management platform: one control plane manages a
|
|
|
|
|
fleet of hosts through lightweight agents that dial out over WebSocket
|
|
|
|
|
(NAT-friendly — nothing connects *in* to your servers). Manage Docker,
|
|
|
|
|
Compose, systemd units and native daemons; browse and edit files; open
|
|
|
|
|
terminals and consoles; schedule tasks; and update the whole fleet from the
|
|
|
|
|
UI.
|
|
|
|
|
|
|
|
|
|
This repository holds the **release binaries and the installer**. The source
|
|
|
|
|
lives in a separate repository.
|
|
|
|
|
|
|
|
|
|
## Install
|
|
|
|
|
|
|
|
|
|
One command sets up a host. Run it as root; it asks what the host should be
|
|
|
|
|
(control plane, agent, or both), checks prerequisites, installs under
|
|
|
|
|
`/opt/runix`, and wires up systemd.
|
|
|
|
|
|
|
|
|
|
```sh
|
2026-07-27 13:04:23 +03:00
|
|
|
curl -fsSL https://runix-releases.s3-alpha-web.astra-dev.online/install.sh | sudo sh
|
2026-07-27 02:19:11 +03:00
|
|
|
```
|
|
|
|
|
|
2026-07-27 13:04:23 +03:00
|
|
|
Binaries are served from object storage, so this needs no account and no
|
|
|
|
|
token. To pin a version, add `--version v0.5.0`.
|
2026-07-27 02:19:11 +03:00
|
|
|
|
|
|
|
|
### Roles
|
|
|
|
|
|
|
|
|
|
| Command | What it installs |
|
|
|
|
|
|---|---|
|
|
|
|
|
| `sudo sh install.sh --role all-in-one` | Control plane **and** an agent on this host (single-host setup) |
|
|
|
|
|
| `sudo sh install.sh --role server` | Control plane only |
|
|
|
|
|
| `sudo sh install.sh --role agent --url https://runix.example.com --token <token>` | An agent that joins an existing control plane |
|
|
|
|
|
|
|
|
|
|
The all-in-one and server roles can provision PostgreSQL in Docker for you
|
|
|
|
|
(`--db docker`) or use one you already run (`--dsn postgres://…`). Add `-y`
|
|
|
|
|
for an unattended install that takes sensible defaults. `sh install.sh
|
|
|
|
|
--help` lists every flag.
|
|
|
|
|
|
|
|
|
|
Everything lives under one directory:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
/opt/runix/bin/ runix-server, runix-agent
|
|
|
|
|
/opt/runix/etc/ server.env, agent.env (0600 — secrets live here)
|
|
|
|
|
/opt/runix/postgres/ docker-compose.yml, data/ (control plane)
|
|
|
|
|
/opt/runix/agent/ supervised daemon state (agent)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Update
|
|
|
|
|
|
|
|
|
|
Re-running the installer upgrades in place — binaries are replaced and
|
|
|
|
|
services restarted, while your configuration (above all the JWT and
|
|
|
|
|
encryption secrets) is preserved:
|
|
|
|
|
|
|
|
|
|
```sh
|
2026-07-27 13:04:23 +03:00
|
|
|
curl -fsSL https://runix-releases.s3-alpha-web.astra-dev.online/install.sh | sudo sh -s -- -y
|
2026-07-27 02:19:11 +03:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Or update from the UI: an administrator sees an **Updates** page that checks
|
2026-07-27 13:04:23 +03:00
|
|
|
object storage for the latest release and updates the control plane and each
|
2026-07-27 02:19:11 +03:00
|
|
|
agent with one click. Point a control plane at this repository with:
|
|
|
|
|
|
|
|
|
|
```
|
2026-07-27 13:04:23 +03:00
|
|
|
RUNIX_UPDATE_MANIFEST=https://runix-releases.s3-alpha-web.astra-dev.online/latest.json
|
2026-07-27 02:19:11 +03:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Releases
|
|
|
|
|
|
|
|
|
|
Each release publishes, for `linux/amd64` and `linux/arm64`:
|
|
|
|
|
|
|
|
|
|
- `runix-server_linux_<arch>` — the control plane
|
|
|
|
|
- `runix-agent_linux_<arch>` — the agent
|
|
|
|
|
- `install.sh` — this installer
|
|
|
|
|
- `SHA256SUMS` — checksums; the installer verifies every download against it
|
|
|
|
|
|
|
|
|
|
Binaries are built automatically from source on tag by the CI runner and
|
2026-07-27 13:04:23 +03:00
|
|
|
published to object storage as well as to this repository. `latest.json`
|
|
|
|
|
beside them names the newest version and every asset's checksum — that is
|
|
|
|
|
what the installer and the in-app updater read.
|
2026-07-27 02:19:11 +03:00
|
|
|
|
|
|
|
|
## Verify a download by hand
|
|
|
|
|
|
|
|
|
|
```sh
|
2026-07-27 13:04:23 +03:00
|
|
|
curl -fsSLO https://runix-releases.s3-alpha-web.astra-dev.online/v0.5.0/runix-server_linux_amd64
|
|
|
|
|
curl -fsSL https://runix-releases.s3-alpha-web.astra-dev.online/v0.5.0/SHA256SUMS | sha256sum -c --ignore-missing
|
2026-07-27 02:19:11 +03:00
|
|
|
```
|