Install options
Every flag of the installer, each also readable from a FIFTY_<FLAG> environment variable.
The command
curl -fsSL https://5050cloud.com/install.sh | sudo sh
curl -fsSL https://5050cloud.com/install.sh | sudo sh -s -- --domain example.com --acme-email you@example.com
wget -qO- https://5050cloud.com/install.sh | sudo shThe script is also at install/install.sh in the repo. It is POSIX sh and every step is safe to re-run: running it again does not restart healthy containers.
Piped into sh, it asks nothing. Run from a terminal, it offers a guided setup with the defaults shown. Every answer is also a flag or an environment variable, for example FIFTY_DOMAIN=example.com.
Flags
| Flag | Default | Meaning |
|---|---|---|
--version vX.Y.Z | latest stable | Release to install |
--archive PATH | none | Install from a local release tarball; checksums.txt and checksums.txt.minisig must sit next to it |
--release-base URL | GitHub Releases | Download releases from another base URL; needs --release-pubkey |
--release-pubkey KEY | the embedded key | minisign public key for --release-base |
--acme-ca staging|production|URL | production | ACME directory |
--public-ip IP | detected | Public IPv4 address used for sslip.io names and DNS instructions |
--domain example.com | <dashed-ip>.sslip.io | Base domain for generated service domains (needs a wildcard A record) |
--console-domain NAME | console-<4 random>.<base domain> | Where the console is served |
--acme-email EMAIL | none | Email for Let's Encrypt notices |
--data-disk auto|none|/dev/X | auto | Use a blank data disk for all state |
--no-swap | swap when RAM < 8 GB | Skip the 2 GB swap file |
--no-auto-updates | updates on | Skip unattended OS security updates |
--firewall | off | Drop inbound traffic except SSH, 80, 443 and WireGuard from peers |
--join URL --token T | none | Join an existing install as a worker host |
--roles app,ingress,data,build | app | Roles of a joining host |
--ca-pin sha256:HEX | none | Pin the console certificate when it uses an internal CA |
--recovery-key-file PATH | /etc/5050/recovery-key.txt | Where the recovery key is written (0600) |
--restore s3://bucket/prefix --recovery-key K | none | Rebuild a control host from a bucket, with --s3-endpoint, --s3-region, --s3-access-key, --s3-secret-key |
--cli | Install only the 5050 CLI | |
--uninstall [--purge] | Remove units and binaries; --purge also deletes data, containers and volumes | |
--force | Continue on an OS that is not supported | |
--yes | Answer yes to every question | |
--help | Show the flags |
Supported systems
Ubuntu 24.04 (amd64, arm64) is tested. Ubuntu 22.04 and Debian 12 install with a "not tested in this release" warning.
What it changes
- Installs Docker Engine from Docker's repository (unless Docker 24 or newer is there), plus
ca-certificates curl git iptables. - Formats and mounts a blank data disk at
/datawhen--data-disk autofinds exactly one. - Merges Docker settings into
/etc/docker/daemon.json(live-restore, log rotation at 20 MB x 3). - Writes kernel settings to
/etc/sysctl.d/90-5050.conf. - Verifies the release signature and checksum, unpacks it into
/opt/5050/releases/<version>/and links/usr/local/bin/5050d,5050-agentand5050. - Creates
/etc/5050/(config, master key, host key, all 0600) and the systemd units.
Uninstall
curl -fsSL https://5050cloud.com/install.sh | sudo sh -s -- --uninstallApp containers and /var/lib/5050 are kept unless you add --purge, which asks for confirmation unless --yes is also given.