CLI golive
A referência completa da linha de comandos — comando a comando, com argumentos, opções e exemplos. Tudo o que o dashboard faz, feito a partir do terminal.
Instalar
O registry npm não é usado — instala a CLI a partir do tarball do GoLive. Precisas de Node 18+.
$ npm install -g https://golive.co.ao/cli/golive-cli.tgz $ golive login # autentica (abre o browser) $ golive init # liga a pasta a um projecto $ golive deploy # publica
A CLI avisa quando há uma versão nova; actualiza com golive upgrade. Activa o auto-complete por Tab uma vez e os comandos e opções aparecem enquanto escreves.
Convenções
Três regras valem para (quase) todos os comandos — percebe-as uma vez e o resto encaixa:
| Convenção | O que faz |
|---|---|
golive.json | Escrito pelo init, liga a pasta a um projecto. Com ele presente, nenhum comando precisa de --project. Comita-o para a equipa e o CI partilharem o mesmo alvo. |
--project <id> | Escolhe o projecto sem golive.json — útil em CI ou fora da pasta. Aceite por todos os comandos de projecto. |
--json | Flag global. Devolve a saída dos comandos de leitura em JSON, para automação. |
O exit code é sempre ≠ 0 em falha, em qualquer comando — seguro para usar em scripts e CI. Os exemplos abaixo omitem --project por assumirem um golive.json na pasta.
golive login
Autentica no GoLive. Por defeito abre o browser; há caminhos não-interactivos para CI e ambientes sem browser.
| Opção | O que faz |
|---|---|
--token <token> | Firebase ID token — login não-interactivo (CI). |
--email <email> | Login por email/password (não-interactivo). Usar com --password. |
--password <password> | Password (com --email). |
--no-browser | Não abre o browser: mostra o URL e pede o código de autorização (SSH/remoto). |
--reauth | Força novo login mesmo com sessão activa. |
--emulator | Autentica contra o Firebase Auth emulator (localhost:19099). |
--api-key <key> · --api <url> | Avançado: Firebase web API key e URL base da API. |
$ golive login # fluxo normal: abre o browser $ golive login --no-browser # copia o URL, cola o código $ golive login --token "$FIREBASE_TOKEN" # CI
golive whoami
Mostra a conta autenticada (email e plano). O token renova-se sozinho.
$ golive whoami
$ golive whoami --json
golive logout
Apaga a sessão guardada neste computador.
$ golive logout
golive init
Liga a pasta actual a um projecto e escreve o golive.json. Sem --project, deixa-te escolher ou criar um projecto interactivamente.
| Opção | O que faz |
|---|---|
--project <id> | Salta a escolha interactiva e liga a este id. |
--apps <nomes> | Estrutura multi-alvo (monorepo): pares nome:pasta separados por vírgula. |
$ golive init $ golive init --project prj_ab12cd $ golive init --apps site:web,api:api # monorepo multi-alvo
Ver a estrutura do golive.json (campos, multi-alvo e Dev Pack) na documentação principal.
golive projects
Lista os teus projectos (id, slug, nome).
$ golive projects
$ golive projects --json
golive status
Estado do projecto e do último deploy — runtime, URL público e saúde.
$ golive status
golive rename <name>
Renomeia o projecto. Não muda o slug nem o subdomínio.
$ golive rename "Loja do Zé"
golive deleteirreversível
Apaga o projecto e todos os seus recursos. Alias: golive rm.
| Opção | O que faz |
|---|---|
-y, --yes | Não pedir confirmação (CI). |
$ golive delete $ golive rm --yes # alias + sem confirmação
Irreversível — apaga a base de dados, os ficheiros de storage e os utilizadores de auth do projecto. Faz um backup antes, se precisares dos dados.
golive open
Abre o site publicado no browser — ou o dashboard do projecto.
| Opção | O que faz |
|---|---|
--dashboard | Abre o dashboard do projecto em vez do site. |
$ golive open
$ golive open --dashboard
golive deploy [app]
Publica o projecto. Deteta o runtime automaticamente (estático, Node, Go, Next.js, edge). Cada deploy é imutável e a activação é atómica (sem downtime). Produção é o default; preview publica uma versão de teste sem tocar na produção.
| Argumento / Opção | O que faz |
|---|---|
[app] | App a publicar num golive.json multi-alvo; vazio = a app da pasta actual (ou todas). |
--dir <dir> | Directório a publicar (default: detectado). |
--no-build | Não corre o build; usa o output existente. |
--prod | Deploy de produção (é o default). |
--preview | Deploy de pré-visualização — não toca na produção. |
-y, --yes | Não pedir confirmação (produção). |
$ golive deploy # pergunta produção/preview $ golive deploy --preview # versão de teste, isolada $ golive deploy --prod --yes # produção sem confirmação (CI) $ golive deploy api # só a app 'api' (multi-alvo) $ golive deploy --dir dist --no-build
--prod e --preview são mutuamente exclusivas. O URL de preview é <slug>--preview.golive.ao; um preview nunca é promovido para produção por engano — quando estiver pronto, publica com --prod.
golive deploys
Histórico de deploys do projecto (id, estado, quando, autor).
$ golive deploys
golive rollback [deployId]
Activa um deploy anterior. Sem id, volta ao último deploy válido antes do actual. A activação é atómica.
$ golive rollback # deploy anterior $ golive rollback dep_9f2a # um deploy específico
golive logs
Segue os logs do projecto (build + runtime) em directo.
| Opção | O que faz |
|---|---|
--no-follow | Imprime os logs disponíveis e sai (snapshot). |
$ golive logs
$ golive logs --no-follow
golive link
Liga um repositório GitHub ao projecto. A partir daí, cada git push faz deploy automático.
| Opção | O que faz |
|---|---|
--repo <repo> (obrigatória) | owner/name (ou URL git). |
--branch <branch> | Branch a seguir (default: main). |
--no-deploy | Apenas ligar, sem fazer deploy agora. |
$ golive link --repo kwanza/loja $ golive link --repo kwanza/loja --branch develop --no-deploy
golive unlink
Desliga o repositório GitHub do projecto (pára o deploy automático).
$ golive unlink
Ficam do lado do servidor (nunca no git) e são injectadas no próximo deploy.
golive env set <pares...>
Define uma ou mais variáveis no formato KEY=VALUE.
$ golive env set API_KEY=abc123 DEBUG=1
golive env file <path>
Envia todas as variáveis de um ficheiro .env de uma só vez (escrita atómica).
$ golive env file .env.production
golive env ls
Lista as variáveis do projecto.
$ golive env ls
golive env rm <key>
Remove uma variável.
$ golive env rm API_KEY
golive env pull
Escreve as variáveis do projecto num ficheiro .env local.
| Opção | O que faz |
|---|---|
--file <file> | Ficheiro de destino (default: .env). |
$ golive env pull $ golive env pull --file .env.local
Postgres gerido, um por projecto. Referência do SDK: @golive/data.
golive db create
Cria a base de dados Postgres do projecto.
$ golive db create
golive db seed [file]
Aplica um ficheiro SQL à base de dados. É a forma recomendada de aplicar schema/dados a partir de um ficheiro. Sem argumento, usa o dev.seed do golive.json (ou seed.sql).
$ golive db seed # aplica seed.sql (ou dev.seed) $ golive db seed schema.sql # um ficheiro específico
Escreve o seed idempotente (create table if not exists …) para poder correr várias vezes sem erro. No dashboard, o separador Base de dados traz um editor SQL completo e um navegador de tabelas.
golive db info
Mostra a base de dados do projecto: engine, nome e URL (mascarado).
$ golive db info
golive db url
Imprime a connection string completa, para ligar ferramentas externas (psql, DBeaver, um ORM).
$ golive db url $ psql "$(golive db url)" # abre a consola psql $ export DATABASE_URL=$(golive db url) # para um ORM local
golive db ls
Lista a base de dados do projecto (resumo tabular).
$ golive db ls
golive db destroyirreversível
Apaga a base de dados do projecto.
| Opção | O que faz |
|---|---|
--yes | Não pedir confirmação. |
$ golive db destroy
$ golive db destroy --yes
Apaga todos os dados. Faz golive db backup create antes.
Subcomandos de golive db backup — manuais, automáticos, restauro e agendamento.
golive db backup create
Cria um backup da base de dados agora (snapshot pontual).
$ golive db backup create
golive db backup ls
Lista os backups do projecto (id, tamanho, data). Mostra os manuais e os automáticos, lado a lado.
$ golive db backup ls
golive db backup restore <backupId>
Restaura a base de dados a partir de um backup. Substitui os dados actuais — não é aditivo.
| Opção | O que faz |
|---|---|
--yes | Não pedir confirmação. |
$ golive db backup restore bkp_31af $ golive db backup restore bkp_31af --yes
golive db backup rm <backupId>
Apaga um backup.
$ golive db backup rm bkp_31af
golive db backup schedule <periodicidade>
Agenda backups automáticos. Corre no servidor — não precisas de ter a CLI aberta. A periodicidade é um de três valores:
| Valor | O que faz |
|---|---|
daily | Um backup automático todos os dias. |
weekly | Um backup automático por semana. |
off | Desliga o agendamento (os backups já criados ficam). |
$ golive db backup schedule daily # backup automático diário $ golive db backup schedule weekly # uma vez por semana $ golive db backup schedule off # desliga os automáticos
Só aceita off, daily ou weekly — qualquer outro valor é rejeitado. Vê todos os backups (manuais + automáticos) com golive db backup ls.
Login para os utilizadores finais da tua app (não a tua conta GoLive). Cobrado por utilizador activo mensal. SDK: @golive/auth.
golive auth enable
Activa a autenticação de utilizadores finais no projecto.
$ golive auth enable
golive auth status
Estado da autenticação: activa? quantos utilizadores activos (MAU)?
$ golive auth status
golive auth disableirreversível
Desactiva a autenticação e apaga os utilizadores finais.
| Opção | O que faz |
|---|---|
--yes | Não pedir confirmação. |
$ golive auth disable --yes
golive auth users ls
Lista os utilizadores finais da app.
$ golive auth users ls
golive auth users add <email> <password>
Cria um utilizador final.
$ golive auth users add ana@loja.ao "S3nha!"
golive auth users rm <uid>
Remove um utilizador final (o uid vem do auth users ls).
$ golive auth users rm usr_7c1e
Ficheiros do projecto, facturados por GB. SDK: @golive/storage.
golive storage ls [prefix]
Lista ficheiros e pastas, opcionalmente sob um prefixo.
$ golive storage ls
$ golive storage ls avatars/
golive storage upload <ficheiro> [destino]
Carrega um ficheiro local. O destino é o caminho no armazenamento (default: o nome do ficheiro).
$ golive storage upload foto.png $ golive storage upload foto.png avatars/ana.png
golive storage download <caminho> [destino]
Descarrega um ficheiro do armazenamento para o disco.
$ golive storage download avatars/ana.png $ golive storage download avatars/ana.png ./ana.png
golive storage rm <caminho>
Apaga um ficheiro — ou uma pasta inteira, com barra final.
$ golive storage rm avatars/ana.png $ golive storage rm avatars/ # a pasta inteira
golive functions ls
Lista as rotas de edge functions e o consumo do período (invocações, GB-s, Kz). O comando tem o alias fn e ls tem o alias list. Ver Edge Functions.
$ golive functions ls
$ golive fn ls # alias curto
Corre o Dev Pack (auth, db, storage, functions) + a tua app localmente, com painel em /__golive/. Ver Desenvolvimento local.
golive dev init
Configura o Dev Pack por menu interactivo — escolhe que serviços emular localmente. Escreve o bloco dev.emulators no golive.json.
| Opção | O que faz |
|---|---|
--all | Activa todos os serviços do Dev Pack. |
--yes | Aceita defaults sem menu. |
--emulators <list> | Lista: auth,database,storage,functions (ou all). |
$ golive dev init # menu: Space liga/desliga, Enter confirma $ golive dev init --all --yes # liga tudo, sem menu (CI) $ golive dev init --emulators auth,database
golive dev [app]
Arranca o Dev Pack e a tua app. Painel de controlo em /__golive/. Em multi-alvo, corre todas as apps (cada uma na sua porta).
| Argumento / Opção | O que faz |
|---|---|
[app] | App do golive.json a correr; vazio = todas. |
-p, --port <port> | Porta base (golive.json > default 18321). Multi-alvo: cada app incrementa. |
--no-open | Não abre o browser no arranque. |
--db | Força Postgres local (pglite) mesmo sem emulators.database. |
--check | Valida a compilação do projecto (executa npm run build / yarn build / pnpm run build, consoante o lock file) e sai. Exit code ≠ 0 se houver erros — útil em CI e antes de deploy. |
$ golive dev $ golive dev web --port 4000 # só a app 'web', noutra porta $ golive dev --db --no-open $ golive dev --check # validar compilação e sair
golive upgrade
Actualiza a CLI para a versão mais recente. Alias: golive update.
| Opção | O que faz |
|---|---|
--force | Reinstala mesmo que já esteja actualizada. |
$ golive upgrade $ golive update --force # alias + reinstalação
golive completion [shell]
Gera o script de auto-complete por Tab (bash, zsh ou fish) — com dicas dos comandos e parâmetros enquanto escreves. Instala-o uma vez:
# zsh $ echo 'source <(golive completion zsh)' >> ~/.zshrc # bash $ echo 'source <(golive completion bash)' >> ~/.bashrc # fish $ golive completion fish > ~/.config/fish/completions/golive.fish