CLI
O binário semaphore é ao mesmo tempo o servidor e uma ferramenta completa de administração. Execute-o
sem argumentos (ou semaphore help) para listar todos os comandos:
semaphore help
A maioria das tarefas administrativas tem um grupo de comandos dedicado:
| Grupo de comandos | Finalidade |
|---|---|
semaphore users | Adicionar, alterar, remover e inspecionar usuários; gerenciar tokens de API e TOTP (2FA). |
semaphore projects | Exportar e importar projetos (backups). |
semaphore vaults | Recriptografar segredos armazenados e inspecionar o uso das chaves de criptografia. |
semaphore runner | Executar em modo runner e registrar/cancelar o registro de runners. |
semaphore migrate | Aplicar ou reverter migrações do banco de dados. |
Vários grupos de comandos têm aliases mais curtos: users/user, projects/project,
vaults/vault e server/service.
Todo comando que acessa o banco de dados (users, projects, vaults, migrate,
server) aplica as migrações de esquema pendentes antes de ser executado. Faça um backup
do banco de dados antes de executar a CLI de uma versão mais recente do Semaphore em um
banco de dados existente.
Opções globais
Estas flags são aceitas por todos os comandos:
| Opção | Descrição |
|---|---|
--config <path> | Caminho para o arquivo de configuração. |
--no-config | Não lê nenhum arquivo de configuração — usa apenas variáveis de ambiente. |
--log-level <level> | Nível de detalhe do log: DEBUG, INFO, WARN, ERROR, FATAL ou PANIC. Se omitido, usa a variável de ambiente SEMAPHORE_LOG_LEVEL. |
--debug-filter <spec> | Restringe a saída DEBUG a namespaces específicos, por exemplo 'runner,task_*' ou '*,-db'. Só tem efeito quando o nível de log é DEBUG. Se omitido, usa SEMAPHORE_DEBUG_FILTER. |
Como o arquivo de configuração é localizado
Quando --config é omitido, o Semaphore procura o arquivo nesta ordem e usa
o primeiro que existir:
- O caminho na variável de ambiente
SEMAPHORE_CONFIG_PATH. config.json,config.yamlouconfig.ymlno diretório atual./usr/local/etc/semaphore/config.json(ou.yaml/.yml)./etc/semaphore/config.json(ou.yaml/.yml).
As variáveis de ambiente são aplicadas sobre o arquivo, portanto elas sobrescrevem os
valores do arquivo. Com --no-config, apenas variáveis de ambiente e valores padrão são usados. Consulte
Configuração para a lista completa de opções.
Versão
Exibe a versão atual.
semaphore version
Configuração interativa
Use isto para a configuração inicial. Ele gera os segredos, conduz um questionário interativo, grava o arquivo de configuração, executa as migrações do banco de dados e cria o primeiro usuário administrador.
semaphore setup
Passe --config <path> para escolher onde o arquivo de configuração será gravado.
Sem isso, o setup pergunta um diretório de saída (padrão: o diretório
atual) e grava config.json nele.
Se o nome de usuário ou e-mail informado já existir, o setup mantém o usuário existente em vez de criar um novo.
Ao concluir, ele exibe os comandos para iniciar o servidor, por exemplo:
./semaphore server --config /path/to/config.json
Modo servidor
Inicia o servidor do Semaphore (interface web e API). service é um alias de server.
semaphore server --config /path/to/config.json
O servidor aplica as migrações pendentes do banco de dados na inicialização e exibe o banco de dados, o caminho temporário, a interface e a porta que está usando.
Modo runner
Executa o Semaphore como um runner de tarefas. Consulte Runners para o
conjunto completo de subcomandos (setup, register, start, unregister).
semaphore runner start --config /path/to/runner-config.json
Migração do banco de dados
Atualiza o esquema do banco de dados. Consulte Migrações do banco de dados para aplicar ou reverter para uma versão específica.
semaphore migrate --config /path/to/config.json