Upsun CLI
The Upsun CLI is the official command-line interface for Upsun.
This repository hosts the source code and releases of the CLI.
This product includes PHP software, freely available from the PHP website
Install
To install the CLI, use either Homebrew (on Linux, macOS, or the Windows Subsystem for Linux) or Scoop (on Windows):
HomeBrew
brew install upsun/tap/upsun-cli
Scoop
scoop bucket add upsun https://github.com/upsun/homebrew-tap.git
scoop install upsun
Bash installer
Use the bash installer for an automated installation, using the most preferable way for your system.
curl -fsSL https://raw.githubusercontent.com/upsun/cli/main/installer.sh | bash
The installer is configurable using the following environment variables:
INSTALL_LOG - the install log file
INSTALL_METHOD - force a specific installation method, possible values are brew and raw
INSTALL_DIR - the installation directory for the raw installation method, for example you can use INSTALL_DIR=$HOME/.local/bin for a single user installation
VERSION - the version of the CLI to install, if you need a version other than the latest one
Installation configuration examples
Force the CLI to be installed using the raw method
curl -fsSL https://raw.githubusercontent.com/upsun/cli/main/installer.sh | INSTALL_METHOD=raw bash
Install a specific version
curl -fsSL https://raw.githubusercontent.com/upsun/cli/main/installer.sh | VERSION=5.0.0 bash
Install the CLI in a user owned directory
curl -fsSL https://raw.githubusercontent.com/upsun/cli/main/installer.sh | INSTALL_METHOD=raw INSTALL_DIR=$HOME/.local/bin bash
Nix profile
Refer to the Nix documentation if you are not on NixOS.
nix profile install nixpkgs#upsun
Alpine
# Add the signing key and repository
sudo mkdir -p /etc/apk/keys
sudo curl -fsSL -o /etc/apk/keys/repositories-upsun-com.rsa.pub https://repositories.upsun.com/alpine/repositories-upsun-com.rsa.pub
echo "https://repositories.upsun.com/alpine" | sudo tee -a /etc/apk/repositories
# Install the CLI
sudo apk add upsun-cli
Ubuntu/Debian
# Add the signing key and repository
sudo mkdir -p /etc/apt/keyrings
sudo curl -fsSL https://repositories.upsun.com/gpg.key -o /etc/apt/keyrings/upsun.asc
echo "deb [signed-by=/etc/apt/keyrings/upsun.asc] https://repositories.upsun.com/debian stable main" | sudo tee /etc/apt/sources.list.d/upsun.list
# Install the CLI
sudo apt-get update
sudo apt-get install -y upsun-cli
CentOS/RHEL/Fedora
# Add the repository
sudo tee /etc/yum.repos.d/upsun.repo << 'EOF'
[upsun]
name=Upsun CLI
baseurl=https://repositories.upsun.com/fedora/$releasever/$basearch
enabled=1
gpgcheck=1
gpgkey=https://repositories.upsun.com/gpg.key
EOF
# Install the CLI (use yum on older systems)
sudo dnf install -y upsun-cli
Manual installation
For manual installation, you can also download the latest binaries.
Docker
The CLI is also available as a Docker image:
docker run --rm -it ghcr.io/upsun/cli
Upgrade
Upgrade using the same tool:
HomeBrew
brew update && brew upgrade upsun/tap/upsun-cli
Scoop
scoop update upsun
Bash installer
curl -fsSL https://raw.githubusercontent.com/upsun/cli/main/installer.sh | bash
Alpine
sudo apk update && sudo apk upgrade upsun-cli
Ubuntu/Debian
sudo apt-get update && sudo apt-get upgrade upsun-cli
CentOS/RHEL/Fedora
sudo dnf upgrade -y upsun-cli
Building
Build a single binary:
make single
Build a snapshot:
make snapshot
Build a snapshot for a vendor:
# Download the config file at internal/config/embedded-config.yaml
make vendor-snapshot VENDOR_NAME='Vendor Name' VENDOR_BINARY='vendorcli'
Creating a Release
Releases are automated via GitHub Actions. To create a new release:
-
Create and push a new tag:
git tag -m 'Release v5.0.0' 'v5.0.0'
git push origin v5.0.0
-
The Release workflow will automatically:
- Build binaries for all platforms
- Sign packages (APK, DEB, RPM)
- Create a GitHub release with all artifacts
- Update package repositories at repositories.upsun.com
- Build and push Docker image to ghcr.io/upsun/cli
Licenses
This binary redistributes PHP in a binary form, which comes with the PHP License.