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:connectpermission 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:
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_…