runner secrets pull
Decripta o .runner/secrets.enc local e escreve o conteúdo nos arquivos
plaintext .env e .secrets do working dir (merge-prefer-local). Disponível
desde v2.30.10.
Use quando: você clonou o repo em um servidor novo, tem a ckey, mas o
plaintext .env/.secrets ficou no servidor anterior. Ver guia →
../../recuperar/restaurar-em-novo-servidor.md.
Sintaxe
runner secrets pull [OPTIONS] <APP>Flags
| Flag | Default | Descrição |
|---|---|---|
--dry-run |
— | Mostra o que seria escrito sem gravar nada |
--json |
— | Atalho para --output json |
-o, --output <FORMAT> |
human |
Formato de saída: human, json, yaml |
--insecure |
— | Bypassa guards de segurança (gera banner e audit log) |
-h, --help |
— | Exibe ajuda |
Exemplo
$ runner secrets pull meu-app
Decrypting .runner/secrets.enc ...
.env → 3 keys written (merge: 0 local preserved)
.secrets → 5 keys written (merge: 1 local preserved)
Done. Run `runner deploy meu-app` when ready.Verificar sem gravar:
$ runner secrets pull meu-app --dry-run
[dry-run] Would write 3 keys to .env
[dry-run] Would write 5 keys to .secrets
No files modified.Por que rodar antes do primeiro deploy
Sem secrets pull, os arquivos plaintext ficam vazios. Um deploy subsequente
(Phase 7 do pipeline) re-encripta o plaintext vazio e sobrescreve o bundle,
destruindo todos os valores que estavam no .runner/secrets.enc.
Fluxo correto ao mover uma app para outro servidor:
# 1. Registrar a app com a ckey correta
runner add --repo owner/repo --token ghp_xxx --ckey "sua-ckey-aqui"
# 2. Extrair os valores do bundle para o working dir
runner secrets pull meu-app
# 3. Verificar e ajustar se necessário
runner secrets show meu-app
# 4. Fazer o deploy
runner deploy meu-appComportamento merge-prefer-local
Se .env ou .secrets já contiver chaves antes do pull, o runner
mantém os valores locais e só escreve chaves ausentes a partir do bundle.
Use --dry-run para inspecionar o diff antes de confirmar.
Erros comuns
bundle_not_found—.runner/secrets.encnão existe no working dir; copie o arquivo do repo ou roderunner secrets pushno servidor de origem antes de migrar.decryption_failed: aead::Error— o bundle foi cifrado com uma ckey diferente da registrada neste servidor; userunner secrets reset-bundleapós restaurar o plaintext por outro meio.no_ckey— app registrada sem--ckey; re-registre comrunner add --ckey "...".
Veja também
- `runner secrets reset-bundle` — reconstrói o bundle a partir do plaintext local
- `runner secrets show` — exibe o conteúdo atual do bundle
- `runner ckeys` — gerenciamento de content keys
- Restaurar em novo servidor