Usare la CLI

Installa e usa la CLI di Stackhero per gestire stack e servizi dalla riga di comando, da script, CI e agenti AI

La CLI di Stackhero è uno strumento da riga di comando leggero e autonomo che ti aiuta a gestire i tuoi stack e servizi direttamente dal terminale. Puoi usarlo per creare ed eliminare servizi, accedere alle credenziali, aggiornare configurazioni e gestire molte altre attività quotidiane.

La CLI funziona su Linux (glibc e musl), macOS e Windows. Viene distribuita come un unico binario senza dipendenze aggiuntive, il che rende semplici l'installazione e gli aggiornamenti.

Che tu stia lavorando in modo interattivo o automatizzando workflow con script, pipeline CI o agenti AI, la CLI di Stackhero è progettata sia per le persone sia per l'automazione. Ogni comando supporta l'opzione --format=json per un output leggibile dalle macchine, insieme a --format=script quando vuoi acquisire valori grezzi in variabili shell.

Puoi installare l'ultima versione eseguendo:

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

Questo comando scarica il binario corretto per la tua piattaforma e lo installa come stackhero. La CLI si mantiene anche aggiornata automaticamente.

Hai due opzioni principali per l'autenticazione:

stackhero login

Quando esegui questo comando, la CLI ti fornisce un URL e lo apre automaticamente anche nel browser. Da lì, puoi approvare l'accesso direttamente dalla dashboard di Stackhero, dove hai già effettuato l'accesso.

L'autenticazione a due fattori è pienamente supportata e non devi inserire la password nella CLI.

Per i workflow automatizzati, puoi creare un access token nella dashboard in Account > Access tokens e fornirlo alla CLI con la variabile d'ambiente STACKHERO_TOKEN.

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

Quando STACKHERO_TOKEN è impostata, ha la precedenza sulle sessioni interattive, quindi il browser è facoltativo. Questo approccio funziona bene per i casi d'uso non interattivi. Puoi controllare e revocare i token dalla dashboard in qualsiasi momento.

Ogni comando della CLI accetta un'opzione globale --format:

  • human (predefinito): mostra tabelle e testo leggibili per l'uso interattivo.
  • json: restituisce JSON leggibile dalle macchine, utile per script e agenti AI.
  • script: restituisce solo il valore o i valori grezzi, il che rende semplice assegnare l'output a variabili shell.

Per esempio:

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

Se vuoi vedere l'elenco completo dei comandi disponibili, puoi eseguire stackhero --help. Se vuoi i dettagli di un comando specifico, puoi provare stackhero COMMAND --help.

Alcuni comandi usati più comunemente includono:

  • 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

Ecco uno script di esempio che mostra come creare uno stack, aggiungere un servizio, attendere che sia pronto e recuperarne le credenziali. Questo esempio è completamente non interattivo e usa la variabile d'ambiente 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

Ogni pagina della documentazione di un servizio include una guida Automate with the CLI pronta all'uso e adattata a quel servizio, così hai tutto ciò che ti serve per iniziare.

La CLI si mantiene aggiornata automaticamente. Se vuoi forzare manualmente un aggiornamento, puoi eseguire:

stackhero self-update

Se vuoi disinstallare la CLI, ti basta eliminare il binario stackhero dal sistema.