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 200Variabili 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 --yesServizio 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 100Build, 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 --jsonVariabili, 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