Install
Install 5050cloud on a fresh Linux VM with one command, or walk through a guided setup that asks for your domain and email.
Before you install
- A VM with a public IPv4 address and root access, running Ubuntu 24.04 on amd64 or arm64. Ubuntu 22.04 and Debian 12 install with a "not tested in this release" warning. Any other system stops unless you pass
--force. - At least 1 GB of RAM (2 GB or more is recommended) and 10 GB of free disk on
/. - Ports 80 and 443 free on the VM and open in your cloud provider's firewall. See Firewall.
- Optional: a blank second disk of 20 GB or more. The installer finds it (
--data-disk auto) and keeps all state on it. - Optional: a domain you control. Without one, the console and your services get
sslip.ionames with real certificates. See Your domains.
The installer turns on time sync (systemd-timesyncd) if nothing keeps the clock in sync.
One command
On the VM:
curl -fsSL https://5050cloud.com/install.sh | sudo shNot root? Put sudo in front of sh:
curl -fsSL https://5050cloud.com/install.sh | sudo shWith wget instead of curl:
wget -qO- https://5050cloud.com/install.sh | sudo shPiped like this, the script asks nothing and uses safe defaults: the sslip.io name for your IP, a console at console-<4 random characters>.<base domain>, and Let's Encrypt production certificates.
To set your own domain and an email for certificate notices in the same line:
curl -fsSL https://5050cloud.com/install.sh | sudo sh -s -- --domain apps.example.com --acme-email you@example.comGuided setup
Download the script first, then run it from a terminal. Piped into sh, the script's input is the script itself, so it cannot ask anything.
curl -fsSLo install.sh https://5050cloud.com/install.sh && sudo sh install.shAs a user other than root, run sudo sh install.sh for the second part. It asks three things, with the default in brackets. Press Enter to keep a default.
- Base domain for your apps. The default is the free
sslip.ioname for your IP, for example203-0-113-10.sslip.io. A domain of your own needs a wildcard A record to the VM first. - Console address. The default is
console-<4 random characters>.<base domain>. - Email for certificate notices. Optional.
Every answer is also a flag and an environment variable named FIFTY_<FLAG>, for example --domain and FIFTY_DOMAIN, for scripts and cloud-init. --yes turns the questions off in a terminal too. Install options lists every flag.
What the installer prints
At the end it prints the console's setup link and where the recovery key is:
Output
5050cloud v0.1.0 is ready.
Open this link to create your account (valid 24 hours, works once):
https://console-ab12.203-0-113-10.sslip.io/setup?token=...In a terminal it also prints the recovery key itself. Under cloud-init, where the output goes to a log, it prints only the file path, /etc/5050/recovery-key.txt.
Create the owner account
- Open the setup link in your browser.
- Enter your name, email and a password of at least 10 characters.
- You land on an empty dashboard. You are the owner of this install.
The link works once and expires after 24 hours. Lost it? On the VM, run:
sudo 5050d setup-tokenMove the recovery key off the host
The recovery key decrypts your backups and state snapshots. Copy the contents of /etc/5050/recovery-key.txt into a password manager, then delete the file:
sudo cat /etc/5050/recovery-key.txt
sudo rm /etc/5050/recovery-key.txtThe owner can show it again later in Settings, Backups, with Show recovery key and their password.
If the certificate does not come
The installer waits up to 120 seconds for the console's certificate. When it does not arrive in time it prints a warning, finishes, and keeps retrying in the background. You do not need to run it again.
- From your laptop, check that port 80 reaches the VM:
curl -I http://<console domain>. - With your own domain, check the record:
dig +short <console domain> @1.1.1.1must print the VM's IP. - Check your cloud firewall allows TCP 80 and 443 from anywhere. Let's Encrypt connects from many addresses.
Running the installer again is safe. Every step checks before it changes anything, and an existing /etc/5050/config.json is kept as it is.
Cloud-init
Paste this into your provider's user data field. It installs on first boot with no questions and writes the recovery key where you choose:
#cloud-config
runcmd:
- curl -fsSL https://5050cloud.com/install.sh | sh -s -- --domain apps.example.com --acme-email you@example.com --recovery-key-file /root/5050-recovery-key.txtRead the setup link afterwards with sudo cat /etc/5050/setup-url.txt.
What success looks like
systemctl status 5050d 5050-agentshows both units as active.curl -fsS https://<console domain>/readyzfrom your laptop returns 200 with no certificate warning.- In the console, Settings, Hosts lists one host with the roles control, build, ingress, app and data.
Next steps
- Your domains
- Firewall
- Backups bucket
- Quick start: deploy a repo and add Postgres.