Download

There is no public download yet. The installer below is finished and has been run on nine distributions; the production signing keys and the download address are not set up. Until they are, early-access partners get the installer bundle from us directly.

One script, three ways to run it.

On a fresh server, as root. It shows a plan of everything it will install and change, and asks once before it touches anything.

From 1 GB to a full hosting server.

The footprint decides what is installed. The default follows the server's memory, and nothing is refused: the installer warns when memory is short and carries on.

Measured: Compact with mail on a 1 GB server works but is tight (the spam filter alone takes about 450 MB, because it also signs outgoing mail); 2 GB is comfortable. You can add or remove services later in the panel.

Supported systems

  • Ubuntu 22.04 LTS24.04 LTS26.04 LTS
  • Debian 1213
  • AlmaLinux 910
  • Rocky Linux 910

64-bit x86 with systemd. On every one of the nine, in a lab container: a Simple and an Advanced install (mail, your own DNS, MariaDB and PostgreSQL), running it again, a dry run, a taken port refused, Compact on 1 GB, and uninstall. Removing the data as well was run on six of them.

Not proven yet: SELinux in enforcing mode (the labs run with it off), and the antivirus outside Ubuntu 24.04 and AlmaLinux 9.

What is in a release

  • install.sh The installer, one file, with the release key and its own version built in.
  • respirecloudd The panel and its API. Runs as the unprivileged respirecloud user.
  • respirecloud-agent The agent on every server. Runs as root and accepts typed operations only.
  • respirecloudctl The command line: every action of the panel, on the server's root socket.
  • modules/ Each module with its manifest, schemas, migrations, templates and built screens.
  • systemd/ The service units.
  • release.manifest Every file with its size and SHA-256, and its signature beside it.

What happens when you run it.

  1. Preflight

    Root, the system and architecture, memory, disk and CPU against the footprint, the host name, the clock, free ports (the program holding a taken port is named), another panel or a hand-managed web, database, mail or DNS server, SELinux or AppArmor, outbound port 25 when mail is chosen. Each check is pass, warning or stop, with one sentence.

  2. Plan

    Everything that will be installed and changed, then one confirmation. With --dry-run it stops here and touches nothing.

  3. The panel

    The panel's own PostgreSQL and Valkey on the loopback address with generated passwords (or the ones you named), the software, the respirecloud user, the service units and the local agent's enrolment.

  4. Services, through the panel

    Once the panel is healthy, the installer runs the same actions as the panel's own Install buttons and shows each job's named steps: the web server and PHP, the panel's certificate, database engines, DNS, mail with your relay and filter answers, the firewall (it rolls back by itself unless confirmed), the licence and the update channel. It never installs nginx or Postfix by hand.

  5. Finish

    What was installed, what was skipped and why, what failed and how to resume, the panel address, the one-time setup token (on screen only, never in the log) and the next three things to do.

What is left for you is what only you can do: DNS records, the registrar's glue records, and a remote backup target.

A download is checked before anything is installed.

When the installer fetches a release itself, four checks must pass first. If one fails it stops with the reason and the line "Nothing was installed", and that is true: the check runs before the first package.

Proven in a lab with a release signed by test keys: a good release installed, a changed archive, a manifest signed by another key and an older signed release were each refused. Modules are checked again by the panel against the signed manifest when they load. The production keys do not exist yet, which is why there is no public address.

Phone app for Android.

Manage your server from your phone. Sign-in happens in your browser, so passkeys and authenticator codes work as usual. The app is signed by RespireSoft and downloaded from this site.

Version 0.2.0

28.3 MB, released 2026-10-18.

The app file is being published. Try again soon.

SHA-256: 7176c76f2a55d8a827a7e15b9fb1e13c31555b848f1829f38705bd3479c1a905

iPhone: coming soon.

How to install it

  1. Open this page on your phone and tap Download for Android.
  2. When the phone asks, allow your browser to install apps from this source. You can turn that off again afterwards.
  3. Open the downloaded file and tap Install.
  4. In your panel, open Mobile app (or the sign-in page and Use the phone app), then scan the code with your phone camera. The app opens and adds your server.

To check the file, compare its SHA-256 with the one above. The app tells you when a newer version is ready.

Upgrade, repeat, uninstall

  • Run it again to upgrade in place. Every module and every answer is kept; a failed step says how to resume, and the same command resumes.
  • --check runs only the checks; --dry-run stops at the plan. Neither changes the server.
  • --uninstall removes the panel. Customer sites, databases, mail and the services it installed are never touched, and the panel's settings and data stay on disk.
  • --purge-data also deletes the panel's settings, data and database, after you type a confirmation phrase. A wrong phrase removes nothing.

Recovery scripts, placed by the installer

  • server-backup.sh Writes one encrypted backup repository and a recovery bundle. Run it from cron as root.
  • server-restore.sh Rebuilds a freshly installed server from the bundle and its passphrase.
  • server-check.sh Lists what came back, line by line, and what a server backup never contains.

They live in /usr/lib/respirecloud/recovery/ and are refreshed on every upgrade. Keep a second copy with the recovery bundle: they help only if you can still reach them. A whole server was rebuilt this way in a lab; it restores to the time of the last backup, not to any moment between backups.

Want to run it on your own server?

Tell us which distribution and how many servers. We answer with the installer bundle and the guide.