Install on Any Cloud

Put RespireCloud on a server at any cloud or VPS host: one command, or cloud-init user data you paste when you create the server. The licence always starts on the new server, never inside an image.

RespireCloud is not listed in any cloud marketplace yet. Applications for DigitalOcean, Akamai Cloud (Linode) and Vultr are coming soon. Until then the two ways below work on every provider.

One command

Create a fresh Ubuntu, Debian, AlmaLinux or Rocky Linux server with at least 1 GB of memory, connect as root and run:

curl -fsSL https://respirecloud.com/install.sh | sudo bash

It asks a few questions. To ask nothing, give the answers as variables. Without a licence key the install starts the free 14 day trial and shows a link to approve the server in any browser.

export RC_ANSWER_ADMIN_EMAIL=you@example.com
export RC_ANSWER_HOSTNAME=panel.example.com
export RC_ANSWER_LICENCE_KEY=          # optional
curl -fsSL https://respirecloud.com/install.sh | sudo -E bash -s -- --yes

The host name needs a DNS record that points at the server. All options are in the install guide.

Cloud-init user data

Most providers have a "user data" or "cloud-init" box on the create-server screen. Paste this, change the email and host name, and the server installs itself on first boot. The key may stay empty.

#cloud-config
# RespireCloud on any provider with cloud-init (Hetzner, OVH, Contabo, AWS, Azure, GCP, Proxmox, SolusVM, Virtualizor ...).
# Paste this into the "user data" / "cloud-init" box when you create the server, on a fresh Ubuntu, Debian,
# AlmaLinux or Rocky Linux image. Change the three values marked CHANGE. The licence key may stay empty:
# the install then starts the free 14-day trial and shows a link to approve the server in a browser.
write_files:
  - path: /etc/respirecloud/firstboot.env
    permissions: "0600"
    owner: root:root
    content: |
      RC_ANSWER_ADMIN_EMAIL=you@example.com   # CHANGE
      RC_ANSWER_HOSTNAME=panel.example.com   # CHANGE
      RC_ANSWER_LICENCE_KEY=                   # optional
runcmd:
  - [bash, -c, "set -a; . /etc/respirecloud/firstboot.env; set +a; if [ -x /usr/lib/respirecloud/firstboot ]; then /usr/lib/respirecloud/firstboot; else curl -fsSL https://respirecloud.com/install.sh | bash -s -- --yes; fi"]

Providers

ProviderHow
DigitalOceanPaste the user data into "Add Initialization scripts" or use the one command. A Marketplace application is planned and coming soon.
Akamai Cloud (Linode)Use cloud-init metadata (Add user data) or the one command. A Marketplace application is planned and coming soon.
VultrPaste the user data into the "Cloud-Init User-Data" field, or use the one command. A Marketplace application is planned and coming soon.
Hetzner CloudPaste the user data into "Cloud config" when you create the server.
OVHcloudPublic Cloud accepts user data at creation; on a VPS use the one command.
AWS, Azure, Google CloudUse the instance's user data (AWS), custom data (Azure) or startup script with the one command (Google Cloud). Open ports 80 and 443 in the security group or firewall.
Proxmox and other cloud-init imagesAdd the user data as a cloud-init snippet to a cloud-ready template.

Check each provider's own screen for the exact field name; they change.

For hosting providers

If you run SolusVM 2 or Virtualizor you can offer RespireCloud as an application your customers pick when they order. Nothing needs our approval.

SolusVM 2

Under Images, Applications, add an application: your Ubuntu 24.04 cloud image URL, your cloud-init version, login type URL, and this JSON schema for the order form. Use the cloud-init above as the template, with the three values filled from the form.

{
  "type": "object",
  "required": ["admin_email", "hostname"],
  "properties": {
    "admin_email": { "type": "string", "format": "email", "title": "Administrator email" },
    "hostname": { "type": "string", "title": "Panel host name" },
    "licence_key": { "type": "string", "title": "Licence key (empty for the free 14 day trial)" }
  }
}

Virtualizor

Add a cloud-ready OS template and attach this recipe, with the email and host name set per order.

#!/usr/bin/env bash
set -euo pipefail
: "${RC_ANSWER_ADMIN_EMAIL:?set the administrator email}"
export RC_ANSWER_ADMIN_EMAIL
export RC_ANSWER_HOSTNAME="${RC_ANSWER_HOSTNAME:-$(hostname -f)}"
curl -fsSL https://respirecloud.com/install.sh | bash -s -- --yes

Image builders

If you build your own image, prepare it with curl -fsSL https://respirecloud.com/install.sh | sudo bash -s -- --image --yes and check it with install.sh --image-check. The image keeps no licence, host name or administrator. The first boot of each server finishes the install and starts the licence, with the key from /etc/respirecloud/firstboot.env or, without one, the 14 day trial. A clone starts with the panel's own certificate until the owner points a domain at it. Building an image needs a licence once. The build's activation is released on the licence service when the image is sealed, so the same key can be used for the next build. Each clone needs its own key (or the web approval trial); a key given to the build is not shared with the clones. If the licence service cannot be reached at that moment the seal stops and can be run again. Never activate inside the image: every clone would share one identity.