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.
-
Simple
sudo bash install.shChecks the server, then asks four things and one confirmation: the panel's host name, the administrator's email, the footprint and a licence key (press Enter for a free 14-day trial). Everything else is chosen from the hardware.
-
Advanced
sudo bash install.sh --advancedEvery choice, in groups, each with a default and a one-line explanation: certificate, PHP versions, database engines, mail and its relay, your own nameservers, firewall, ports. A question mark explains, b goes back.
-
Unattended
sudo bash install.sh --yes --answers my.answersAsks nothing. Every answer is a flag or a line in an answers file that is parsed, never executed. Passwords have no flag, so they never show in the process list.
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.
-
1 GB
Compact
The panel, nginx, PHP 8.4, MariaDB and the firewall.
Leaves out the heavy modules (the assistant, apps, CDN, cluster, containers, the editor, providers, the terminal, webmail, statistics and logs). Switch any of them on later in Modules.
-
2 GB
Standard
Compact plus PHP 8.3 and every panel module except the assistant.
The spam filter is on from 2 GB when you add mail.
-
4 GB
Full
Standard plus the mail server, your own DNS, PostgreSQL for customers and the assistant.
Needs a public address and DNS records for mail and the nameservers. The antivirus is on from 3.6 GB; below that the panel refuses it and says the number.
-
1 GB and up
Custom
Compact, then Advanced asks module by module.
For a server with one job: only DNS, only mail, only apps.
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.shThe installer, one file, with the release key and its own version built in. -
respireclouddThe panel and its API. Runs as the unprivileged respirecloud user. -
respirecloud-agentThe agent on every server. Runs as root and accepts typed operations only. -
respirecloudctlThe 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.manifestEvery file with its size and SHA-256, and its signature beside it.
What happens when you run it.
-
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.
-
Plan
Everything that will be installed and changed, then one confirmation. With --dry-run it stops here and touches nothing.
-
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.
-
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.
-
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.
-
The signature
The release manifest carries an Ed25519 signature. It must verify against the release key built into the installer; an installer without a key refuses to download.
-
The channel, size and checksum
The manifest must be for the channel you asked for and list the archive with exactly the size and SHA-256 that arrived.
-
The version
A release older than the installed panel, or older than the installer itself, is refused, so a genuine but old signed release cannot be replayed over a newer one. --allow-downgrade lifts this on purpose.
-
The archive
File names that are absolute or climb out with .. are refused.
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
- Open this page on your phone and tap Download for Android.
- When the phone asks, allow your browser to install apps from this source. You can turn that off again afterwards.
- Open the downloaded file and tap Install.
- 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.
-
--checkruns only the checks;--dry-runstops at the plan. Neither changes the server. -
--uninstallremoves 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-dataalso 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.shWrites one encrypted backup repository and a recovery bundle. Run it from cron as root. -
server-restore.shRebuilds a freshly installed server from the bundle and its passphrase. -
server-check.shLists 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.