Skip to Content
Riga di comando (CLI)Utilizzare la CLI

Utilizzare la CLI

Eseguire il deploy da una cartella locale

Crea o aggiorna un servizio sempre attivo senza un collegamento Git.

Esegui gerdoo deploy nella radice del progetto: il comando funziona senza flag. Se non hai indicato un servizio, la CLI ne crea automaticamente uno nuovo usando il nome della cartella e il progetto Default, e chiede una conferma nel terminale. Per saltarla, per esempio in CI, usa --yes o -y.

Puoi cambiare i valori predefiniti tramite i flag: --name <name> per il nome, --project <slug|id> per il progetto di destinazione, --private per un servizio privato, --port N per la porta interna, --framework <name> per guidare il rilevamento dello stack e --env K=V, ripetibile, per le variabili. Non devi selezionare un piano: le risorse sono limitate dal livello dell’account e fatturate in base al consumo effettivo.

Dopo il primo deploy, .gerdoo/service.json viene salvato nel progetto e conserva l’identificativo del servizio. Da quel momento, gerdoo deploy nella stessa cartella aggiorna quel servizio. Per indicare esplicitamente un servizio usa gerdoo deploy --service <slug-or-id>.

La CLI attende lo stato finale e stampa le fasi di build e deploy. Se lo stato diventa running, mostra l’URL del servizio; se diventa failed, restituisce l’errore registrato.

Gestire servizi e immagini Docker

Crea un servizio da un’immagine Docker o esegui il deploy del codice sorgente come servizio sempre attivo.

Usa gerdoo services o gerdoo service list per elencare i servizi e gerdoo projects per i progetti. I servizi non richiedono un piano: le risorse sono limitate dal livello dell’account e fatturate in base al consumo effettivo.

Se hai un’immagine pronta, gerdoo service create --name <name> --image <image> crea il servizio. --private evita l’esposizione pubblica, --expose tcp fornisce una porta TCP per i database e --port indica la porta interna dell’applicazione.

Per trasformare una cartella locale in un servizio sempre attivo, esegui gerdoo service deploy --name <name>. Il sorgente viene caricato, compilato nel runtime ed eseguito come servizio. Per aggiornare il servizio con un nuovo deploy usa gerdoo service deploy --service <slug-or-id>.

Per controllo e manutenzione sono disponibili gerdoo service status|logs|restart|delete <slug>; per i file del disco, gerdoo service files|pull|push; per la configurazione, gerdoo service update.

Per deploy e rollback: gerdoo service builds <slug> elenca le build, gerdoo service releases <slug> elenca le release e gerdoo service rollback <slug> <build-id> torna a una build precedente senza ricostruirla. Usa gerdoo service domains <slug> per i domini personalizzati e gerdoo service vars <slug> per le variabili di build o segrete.

Gestire progetti e ambienti

Crea e gestisci progetti e relativi ambienti dalla riga di comando.

Un progetto è lo spazio di lavoro che raggruppa servizi, ambienti e domini di un prodotto. gerdoo projects elenca i progetti e gerdoo project get <slug|id> ne mostra i dettagli. Per creare, modificare o eliminare usa gerdoo project create --name <n>, gerdoo project update <slug|id> e gerdoo project delete <slug|id>.

Ogni progetto può avere più ambienti: production, staging e preview. Si gestiscono tramite gerdoo project env <project> con list, create, get, update e delete. Indica l’ambiente per nome o id, per esempio gerdoo project env my-app create --type staging --branch develop.

Le variabili di ogni ambiente si gestiscono con gerdoo project env <project> vars <env>: senza argomenti ottieni l’elenco, con set KEY=VALUE aggiungi o modifichi un valore, usando --build-time per renderlo disponibile durante la build, e con rm KEY lo elimini.

I comandi di elenco e consultazione (projects, project get, env list/get/vars) accettano --json per stampare la risposta API originale, utile per script e CI.

Variabili di ambiente, log e stato

Controlla lo stato del servizio e modifica la configurazione senza accedere al pannello.

Tutti i sottocomandi di gerdoo service ricevono l’identificativo del servizio, slug o id, come argomento posizionale. Per esempio, gerdoo service env <slug> mostra le variabili, gerdoo service env <slug> set KEY=VALUE aggiunge o modifica un valore e gerdoo service env <slug> rm KEY lo elimina. Il servizio viene ricreato per applicare la modifica.

Le stesse operazioni sono disponibili sotto service: gerdoo service env <slug> [set KEY=VALUE | rm KEY] è l’equivalente completo del comando breve. Inoltre, gerdoo service vars <slug> gestisce un archivio tipizzato separato con --build-time per l’inserimento durante la build e --secret per mascherare i valori. env è la semplice mappa del servizio e vars l’archivio tipizzato; entrambi rimangono disponibili.

gerdoo logs <slug> --tail N mostra le ultime righe del log del container, 200 per impostazione predefinita, e permette di filtrare con --since, --grep e --level. gerdoo service status <slug> stampa stato, URL e, se in esecuzione, consumo di CPU e memoria; gerdoo service open <slug> apre l’indirizzo nel browser.

Per il ciclo di vita usa gerdoo service stop <slug> per arrestare, gerdoo service start <slug> per avviare un servizio arrestato e gerdoo service restart <slug> per riavviarlo sul posto. L’arresto manuale produce lo stato stopped, diverso dalla sospensione per saldo esaurito. Per eliminare completamente il servizio usa gerdoo service delete <slug>.

Esempi pratici

Deploy da una cartella locale

Il primo deploy crea un servizio e collega il progetto. Le esecuzioni successive di gerdoo deploy nella stessa cartella aggiornano lo stesso servizio.

gerdoo login gerdoo deploy # Crea e distribuisce (con --yes senza conferma) gerdoo service status my-app gerdoo logs my-app --tail 200

Variabili di ambiente e CI

In CI conserva il token come segreto e passalo alla CLI con GERDOO_TOKEN per evitare il login interattivo. Il flag --yes salta la conferma interattiva durante la creazione di un nuovo servizio.

gerdoo service env my-app set NODE_ENV=production API_URL=https://api.example.com gerdoo deploy # Esempio CI GERDOO_TOKEN="$GERDOO_TOKEN" gerdoo deploy --service my-app --yes

Servizio da un’immagine Docker

I servizi restano sempre attivi e non richiedono la scelta di un piano: le risorse sono limitate dal livello dell’account e fatturate a consumo. Puoi usare un’immagine pronta oppure trasformare una cartella locale in servizio con gerdoo service deploy.

gerdoo service create --name redis-cache --image redis:7 --private gerdoo service status redis-cache gerdoo service logs redis-cache --tail 100

Build, release e rollback

Ogni deploy riuscito registra una nuova build e una release. rollback esegue nuovamente una build precedente senza ricostruirla e crea una nuova release attiva.

gerdoo service builds my-app gerdoo service releases my-app gerdoo service rollback my-app <build-id>

Gestire progetti e ambienti

Il progetto è lo spazio di lavoro dei servizi. Può contenere più ambienti, ciascuno con le proprie variabili. --json stampa la risposta API originale per gli script.

gerdoo project create --name shop --description "Online store" gerdoo project env shop create --type staging --branch develop gerdoo project env shop vars staging set DATABASE_URL=postgres://… --build-time gerdoo projects --json

Variabili, domini e archivio tipizzato

service vars è l’archivio tipizzato con supporto per --secret e --build-time. service domains add mostra i record DNS necessari e verify conferma la proprietà del dominio dopo la creazione del record TXT.

gerdoo service vars my-app set STRIPE_KEY=sk_live_… --secret gerdoo service domains my-app add app.example.com gerdoo service domains my-app verify app.example.com