Saltar para o conteúdo principal
O ipmideck disponibiliza um único comando de consola, ipmideck, que inicia o servidor, repõe a palavra-passe de administrador ou gera um certificado autoassinado. ipmilink é um alias retrocompatível para o mesmo comando, cada subcomando e flag abaixo funciona de forma idêntica sob qualquer um dos nomes.
A CLI só se aplica quando corre o ipmideck diretamente (instalação pip ou checkout de código). A imagem Docker lança uvicorn backend.main:app diretamente e nunca invoca a CLI, por isso nenhuma destas flags, a precedência de bind ou a proteção de instância única se aplica ao contentor. O bind do contentor é definido pelo seu próprio comando de arranque. Veja Instalação.

Iniciar o servidor

start é o comando principal de serviço. Uma invocação pura sem subcomando serve de forma idêntica, por isso estes são equivalentes:
ipmideck start
# or, with no subcommand:
ipmideck
Sem flags, o ipmideck faz bind a 0.0.0.0:3000 por predefinição, alcançável em todas as interfaces, na porta 3000. Abra http://<your-ip>:3000 assim que estiver a correr. Substitua o bind com --host e --port:
ipmideck start --host 127.0.0.1 --port 8080

Subcomandos

SubcomandoO que faz
startInicia o servidor (predefinição). Um ipmideck puro sem subcomando também serve.
serveAlias obsoleto de start. Comporta-se de forma idêntica; mantido para que scripts existentes continuem a funcionar.
reset-passwordCria ou atualiza interativamente o início de sessão de administrador, depois sai sem servir.
serve é um alias obsoleto de start, prefira start (ou um ipmideck puro) em novos scripts.

Flags

Estas flags de topo aplicam-se ao caminho de serviço. --demo e --config são lidas antes de qualquer ramo de subcomando, por isso também afetam reset-password e --gen-cert.
FlagEfeito
--host <host>Host de bind. A predefinição vem de config.yaml ou 0.0.0.0. Uma flag explícita vence a configuração.
--port <port>Porta de bind. A predefinição vem de config.yaml ou 3000. Uma flag explícita vence a configuração.
--demoCorrer em modo demo com dados simulados.
--config <path>Caminho para um config.yaml a carregar.
--reloadAtivar o recarregamento automático para desenvolvimento.
--gen-certGerar um cert + chave autoassinados sob data/certs/, escrever os caminhos em config.yaml e sair.

Precedência de bind

O host e a porta a que o ipmideck realmente faz bind são resolvidos por esta ordem, prioridade mais alta primeiro:
  1. Uma flag --host / --port explícita na linha de comandos.
  2. Configuração, que por sua vez resolve a variável de ambiente (IPMIDECK_SERVER_HOST / IPMIDECK_SERVER_PORT) acima de config.yaml acima da predefinição integrada.
  3. O recurso de reserva fixo 0.0.0.0:3000, usado se o carregamento inicial da configuração falhar.
Por outras palavras: um valor que persiste em config.yaml é substituído por uma variável de ambiente IPMIDECK_ ou uma flag --host / --port no próximo arranque, env e CLI vencem sempre. Se o config.yaml estiver malformado, o ipmideck imprime um aviso para o stderr e recai em 0.0.0.0:3000.
As variáveis de ambiente IPMIDECK_SERVER_HOST e IPMIDECK_SERVER_PORT usam o prefixo IPMIDECK_. Veja Configuração para a lista completa de substituições.

HTTPS com —gen-cert

--gen-cert gera um certificado e chave autoassinados, depois sai. Não inicia o servidor e não liga o HTTPS por si só:
ipmideck --gen-cert
Escreve um par cert + chave sob data/certs/, regista os seus caminhos no bloco server de config.yaml, e imprime três linhas:
Generated: <path-to-cert>
Generated: <path-to-key>
Wrote cert_file/key_file to config.yaml. Set server.https=true and restart to serve over HTTPS.
Para realmente servir por HTTPS, defina server.https: true em config.yaml e reinicie o ipmideck. O HTTPS nunca é ativado automaticamente.

Modo demo

--demo corre o ipmideck contra hardware simulado em vez de BMCs reais, útil para avaliar o painel sem nenhum servidor ligado:
ipmideck start --demo
O modo demo é definido muito cedo, antes de qualquer ramo de subcomando, por isso toda a app (configuração e o servidor em execução) o vê.

Repor a palavra-passe de administrador

reset-password cria ou atualiza interativamente o início de sessão de administrador, depois sai sem nunca iniciar o servidor:
ipmideck reset-password
Pede Username: e depois New password: (entrada oculta). Se já existir uma conta, atualiza a palavra-passe desse utilizador e imprime Password updated for <username>; caso contrário cria o utilizador e imprime User <username> created.

Recarregamento automático para desenvolvimento

--reload é um caminho rápido apenas para desenvolvimento: entrega ao próprio supervisor de recarregamento automático do uvicorn e regressa. Salta intencionalmente a proteção de porta de instância única descrita abaixo, porque o recarregador corre o seu próprio processo supervisor.
ipmideck start --reload
--reload é apenas para desenvolvimento. Como contorna a proteção de instância única, corra-o num host onde nenhuma outra instância do ipmideck já esteja com bind à mesma porta.

Códigos de saída

Código de saídaQuando
0Encerramento limpo em Ctrl+C / SIGTERM, o servidor para de forma graciosa, sem traceback.
1A porta já está em uso no host alvo (pode estar a correr outra instância), ou o bind falha porque o endereço está indisponível ou não é permitido (por exemplo uma porta privilegiada ou uma interface que não existe).
No caminho de serviço (não --reload), o ipmideck corre uma proteção de instância única antes do bind. Se a porta já estiver em uso, imprime um erro para o stderr e sai com 1. Se o bind falhar porque o endereço está indisponível ou não é permitido, imprime um erro distinto e também sai com 1.

Próximos passos