An open API service indexing awesome lists of open source software.

https://github.com/upsun/cli

The unified tool for managing your Upsun services from the command line.
https://github.com/upsun/cli

cli cloud command-line paas

Last synced: 12 days ago
JSON representation

The unified tool for managing your Upsun services from the command line.

Awesome Lists containing this project

README

          

# Upsun CLI

The **Upsun CLI** is the official command-line interface for [Upsun](https://upsun.com).

This repository hosts the source code and releases of the CLI.

> This product includes PHP software, freely available from [the PHP website](https://www.php.net/software)

## Install

To install the CLI, use either [Homebrew](https://brew.sh/) (on Linux, macOS, or the Windows Subsystem for Linux) or [Scoop](https://scoop.sh/) (on Windows):

### HomeBrew

```console
brew install upsun/tap/upsun-cli
```

### Scoop

```console
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.

```console
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](https://nix.dev/manual/nix/2.24/installation/installing-binary.html).

```console
nix profile install nixpkgs#upsun
```

### Alpine

```console
# 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

```console
# 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
```

### RPM (Fedora, RHEL, CentOS, AlmaLinux, Rocky)

```console
# Add the repository
sudo tee /etc/yum.repos.d/upsun.repo << 'EOF'
[upsun]
name=Upsun CLI
baseurl=https://repositories.upsun.com/rpm/$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](https://github.com/upsun/cli/releases/latest).

### Docker

The CLI is also available as a Docker image:

```console
docker run --rm -it ghcr.io/upsun/cli
```

## Upgrade

Upgrade using the same tool:

### HomeBrew

```console
brew update && brew upgrade upsun/tap/upsun-cli
```

### Scoop

```console
scoop update upsun
```

### Bash installer

```console
curl -fsSL https://raw.githubusercontent.com/upsun/cli/main/installer.sh | bash
```

### Alpine

```console
sudo apk update && sudo apk upgrade upsun-cli
```

### Ubuntu/Debian

```console
sudo apt-get update && sudo apt-get upgrade upsun-cli
```

### CentOS/RHEL/Fedora

```console
sudo dnf upgrade -y upsun-cli
```

## Building

Build a single binary:

```console
make single
```

Build a snapshot:

```console
make snapshot
```

Build a snapshot for a vendor:

```console
# 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:

1. Create and push a new tag:
```console
git tag -m 'Release v5.0.0' 'v5.0.0'
git push origin v5.0.0
```

2. The [Release workflow](.github/workflows/release.yml) 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](https://www.php.net/license/3_01.txt).