Skip to content

Run Astralyx on your servers#

Your own server keeps the cluster — the record of your machines, runs, models and workflows — instead of Astralyx. Your machines join it as they would join any cluster, and the console, the app and AI assistants reach it through one connection your server opens to Astralyx. Nothing connects in, and nothing they read through it is stored by Astralyx.

See Ways to install for how this compares with letting Astralyx keep the cluster.

Before you begin#

  • A Linux server with systemd and glibc 2.28 or newer, x86_64 or arm64: Ubuntu 22.04+, Debian 12+, RHEL, Rocky or Alma 9+, Fedora, openSUSE, Arch and others. SELinux may stay enforcing.
  • 4 CPUs, 8 GB of memory and 100 GB of SSD (2, 4 and 40 at least). For production, plan the high availability of three.
  • Outbound HTTPS to console.astralyx.cloud (port 443), directly or through your proxy. Your machines reach the server on port 8866; operators and the CLI on 8867.
  • The clusters:connect permission in the organisation (owners and admins have it).

1. Make a key in the console#

Organisation → Clusters & machines → Add your own cluster: give it a name and a short name, and select Make the connect command. The command carries a key that works once, for 24 hours.

2. Run it on the server#

Paste it on the server, as root:

$ curl -fsSL https://console.astralyx.cloud/api/v1/install-control-plane.sh | sudo sh -s -- --key ast_cpk_…
· the signing key matches its fingerprint (C5C66BAABF5129E0E59158FD8CA834D86063B986)
· astraeus-controlplane installed
· machines will reach this control plane at 10.0.0.20 (--address names another)
[ok  ] Operating system             Ubuntu 24.04 LTS
…
This machine can run the control plane.
Connected: the cluster sp-1 is in the console now.

It checks Astralyx's signing key against the fingerprint above before it trusts anything, installs the signed package (APT, DNF, YUM or Zypper — on other systems a tarball whose checksums are signed), checks the server (preflight), sets it up and connects it. The address your machines use is the server's own on your network; pass --address <name> to use a DNS name instead.

3. Add machines#

On the cluster's page in the console, Add machine gives the command for each machine, as for any cluster. Or, on the server:

$ sudo astraeus-controlplane join-command --machine gpu-01

It prints the command to run on gpu-01, with a single-use token and the fingerprint of the server's certificate, which the machine checks before it trusts the server.

Look after it#

Task Command
Is everything up? sudo astraeus-controlplane status
Back up now (also daily, on its own) sudo astraeus-controlplane backup
Update sudo apt upgrade astraeus-controlplane (or dnf, zypper)
Behind a proxy HTTPS_PROXY=… in /etc/astraeus-controlplane/proxy.env, and ASTRAEUS_CONNECT_CA= its CA for a proxy that inspects TLS

Backups go to /var/lib/astraeus-controlplane/backups, the newest 14 kept; copy them off the server too.

High availability#

Three servers keeping one cluster, so that one of them can stop without stopping anything: coming soon. Until then, one server and its daily backups.

Packages and verification#

The packages come from Astralyx's signed repositories at https://console.astralyx.cloud/packages/ (APT, YUM/DNF, and signed tarballs), signed with the key whose fingerprint is C5C6 6BAA BF51 29E0 E591 58FD 8CA8 34D8 6063 B986. To install without the script:

$ curl -fsSL https://console.astralyx.cloud/packages/astralyx-packages.asc | sudo gpg --dearmor -o /usr/share/keyrings/astralyx-packages.gpg
$ echo "deb [signed-by=/usr/share/keyrings/astralyx-packages.gpg] https://console.astralyx.cloud/packages/apt stable main" | sudo tee /etc/apt/sources.list.d/astralyx.list
$ sudo apt update && sudo apt install astraeus-controlplane
$ sudo astraeus-controlplane preflight && sudo astraeus-controlplane init --address <name or IP>
$ sudo astraeus-controlplane connect --key ast_cpk_…