Skip to content

Repository files navigation

fpcloud

The command-line interface for Fogpipe Cloud — deploy apps, manage databases, attach domains, and serve object storage.

Install

Shell (macOS / Linux)

curl -fsSL https://raw.githubusercontent.com/fogpipe/cloud-cli/main/install.sh | sh

Pin a version or install location with FPCLOUD_VERSION / FPCLOUD_INSTALL_DIR.

Homebrew

brew tap fogpipe/cloud-cli https://github.com/fogpipe/cloud-cli
brew install fogpipe/cloud-cli/fpcloud

Nix

Run it directly:

nix run github:fogpipe/cloud-cli/release

Or add it to your flake:

{
  inputs.fpcloud.url = "github:fogpipe/cloud-cli";
  # then, in your outputs, for a given system:
  #   fpcloud.packages.${system}.default
}

Update

Update through the channel you installed from:

Installed with Update with
the shell script fpcloud upgrade
Homebrew brew upgrade fpcloud
a Nix flake input nix flake update fpcloud, then re-enter the dev shell
nix profile install nix profile upgrade fpcloud

fpcloud upgrade replaces the binary in place with the version your control plane advertises, so the CLI tracks the API you talk to. It only works for the shell install: a Nix-installed fpcloud lives in the read-only store and can't replace itself, so fpcloud upgrade prints the commands above instead.

Quickstart

fpcloud login                                # browser sign-in
fpcloud switch <org> <project>               # select your org and project
                                             # (no arguments: pick from a list)
fpcloud app deploy <app> --image <image>     # deploy or update an app

fpcloud --help lists everything; fpcloud <command> --help-llm prints dense, machine-readable help for a command and its subtree.

Source

This repository is the CLI. cmd/fpcloud is a thin main over pkg/cli, which holds the command tree, and pkg/client is the Go SDK for the Fogpipe REST API — usable on its own:

import "github.com/fogpipe/cloud-cli/pkg/client"
go build ./...
go test ./...

A binary you build yourself is the same one we release — nothing is injected at release time. The CLI carries no identity provider and no client: it asks the control plane where humans sign in (GET /api/v1/auth/config) and runs a public PKCE login against that, so fpcloud login works from a plain go build. FPCLOUD_OIDC_ISSUER and FPCLOUD_OIDC_CLIENT_ID point it at another issuer while developing against one.

The API this speaks to is published: openapi.yaml, /docs and /llms.txt on your platform host.

Read rather than contributed to: the source is here so you can audit what holds your identity, mints your tokens and tunnels to your database. There is no contribution process, and issues here are not a support channel.

Licensing

Apache-2.0, the licence every public Fogpipe repository carries.

Releases up to and including v0.117.0 were published under MIT, and that grant stands for those versions.

About

fpcloud — the Fogpipe Cloud CLI (install scripts, Homebrew formula, Nix flake; binaries via Releases)

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages