CLIを使う

Stackhero CLIをインストールして使用し、コマンドライン、スクリプト、CI、AIエージェントからstackやserviceを管理します

Stackhero CLI は、軽量で自己完結型のコマンドラインツールで、ターミナルから直接stackやserviceを管理するのに役立ちます。serviceの作成と削除、認証情報へのアクセス、設定の更新、そのほか日常的な多くの作業に利用できます。

CLIはLinux(glibcmusl)、macOS、Windowsで動作します。追加の依存関係がない単一のバイナリとして提供されるため、インストールとアップデートを簡単に行えます。

対話的に作業する場合でも、スクリプト、CIパイプライン、AIエージェントでworkflowを自動化する場合でも、Stackhero CLIは人による操作と自動化の両方を想定して設計されています。すべてのコマンドは、機械可読な出力のための --format=json フラグと、shell変数に生の値を取り込みたい場合の --format=script の両方をサポートしています。

次を実行すると、最新バージョンをインストールできます:

curl -fsSL https://www.stackhero.io/install.sh | sh

このコマンドは、お使いのプラットフォームに適したバイナリをダウンロードし、stackhero としてインストールします。CLIは自動的に自身を最新の状態に保ちます。

認証には主に2つの方法があります:

stackhero login

このコマンドを実行すると、CLIはURLを表示し、同時にブラウザで自動的に開きます。そこから、すでにサインイン済みのStackheroダッシュボード上で直接アクセスを承認できます。

二要素認証にも完全に対応しており、CLIでパスワードを入力する必要はありません。

自動化されたworkflowでは、ダッシュボードの Account > Access tokens でaccess tokenを作成し、STACKHERO_TOKEN 環境変数を使ってCLIに渡すことができます。

export STACKHERO_TOKEN="usr-xxxxxx:your-token"
stackhero organizations-list

STACKHERO_TOKEN が設定されている場合、対話型セッションよりも優先されるため、ブラウザの使用は任意になります。この方法は非対話型のユースケースに適しています。tokenはいつでもダッシュボードから確認および無効化できます。

すべてのCLIコマンドは、グローバルな --format オプションを受け付けます:

  • human (default): 対話的な利用向けに、読みやすいテーブルとテキストを表示します。
  • json: 機械可読なJSONを返します。スクリプトやAIエージェントで役立ちます。
  • script: 生の値のみを返すため、出力をshell変数に代入しやすくなります。

例:

stackhero organizations-list --format=json
stackId=$(stackhero --format=script stack-create --name="My stack")

利用可能なコマンドの一覧を確認したい場合は、stackhero --help を実行できます。特定のコマンドの詳細を確認したい場合は、stackhero COMMAND --help を試してください。

よく使われるコマンドには、次のようなものがあります:

  • Organizations: organizations-list
  • Stacks: stacks-list, stack-create, stack-rename, stack-delete
  • Services: services-list, service-add, service-wait-for, service-rename, service-delete
  • Configuration: service-configuration-get, service-configuration-set, service-configuration-example
  • Store: services-store-list, instances-store-list, regions-list
  • Upgrades: service-upgrade-instances-store-list, service-upgrade-instance
  • Account: login, logout
  • Maintenance: self-update

以下は、stackを作成し、serviceを追加し、利用可能になるまで待機し、その認証情報を取得する方法を示すサンプルスクリプトです。この例は完全に非対話型で、STACKHERO_TOKEN 環境変数を使用します。

#!/bin/bash
set -e

export STACKHERO_TOKEN="usr-xxxxxx:your-token"

serviceStore="directus"   # A service store name. See: `stackhero services-store-list`
instance="1GB"            # An instance (size) name. See: `stackhero instances-store-list --service-store=directus`
region="europe"           # A region name. See: `stackhero regions-list`

# Create a stack (uses your only organization, add `--organization` if you have several)
stackId=$(stackhero --format=script stack-create \
  --name="My stack")
echo "Stack: ${stackId}"

# Add a service (names are resolved automatically, and the stack ID above also works)
serviceId=$(stackhero --format=script service-add \
  --stack="My stack" \
  --service-store="${serviceStore}" \
  --instance="${instance}" \
  --region="${region}")
echo "Service: ${serviceId}"

# Wait for the service to be running
stackhero service-wait-for --service="${serviceId}"

# Retrieve credentials and configuration
stackhero service-configuration-get --service="${serviceId}" --format=json

各serviceのドキュメントページには、そのservice向けに調整された、すぐに実行できる Automate with the CLI ガイドが含まれているため、使い始めるために必要なものがすべて揃っています。

CLIは自動的に自身を最新の状態に保ちます。手動で強制的にアップデートしたい場合は、次を実行できます:

stackhero self-update

CLIをアンインストールしたい場合は、システムから stackhero バイナリを削除するだけです.