Skip to main content
ipmideck는 단일 콘솔 명령 ipmideck를 제공하며, 이는 서버를 시작하거나, 관리자 비밀번호를 재설정하거나, 자체 서명 인증서를 생성합니다.
CLI는 ipmideck를 직접 실행할 때 (pip 설치 또는 소스 체크아웃)에만 적용됩니다. Docker 이미지는 uvicorn backend.main:app을 직접 시작하고 CLI를 결코 호출하지 않으므로, 이러한 플래그, 바인드 우선순위, 단일 인스턴스 가드 중 어느 것도 컨테이너에 적용되지 않습니다. 컨테이너의 바인드는 자체 시작 명령으로 설정됩니다. 설치를 참조하세요.

서버 시작

start는 기본 서비스 명령입니다. 서브 명령이 없는 단순한 호출도 동일하게 서비스하므로, 이것들은 동등합니다.
플래그 없이 ipmideck는 기본적으로 **0.0.0.0:3000**에 바인드되어, 모든 인터페이스에서, 포트 3000에서 도달 가능합니다. 가동되면 http://<your-ip>:3000을 엽니다. --host--port로 바인드를 재정의합니다.

서브 명령

servestart의 더 이상 사용되지 않는 별칭입니다. 새 스크립트에서는 start (또는 단순한 ipmideck)를 선호하세요.

플래그

이러한 최상위 플래그는 서비스 경로에 적용됩니다. --demo--config는 모든 서브 명령 분기 전에 읽히므로, reset-password--gen-cert에도 영향을 줍니다.

바인드 우선순위

ipmideck가 실제로 바인드하는 호스트와 포트는 이 순서로 해석됩니다. 우선순위가 높은 순:
  1. 명령줄의 명시적 --host / --port 플래그.
  2. 구성. 이것 자체가 환경 변수 (IPMIDECK_SERVER_HOST / IPMIDECK_SERVER_PORT)를 config.yaml보다, config.yaml을 내장 기본값보다 우선하여 해석합니다.
  3. 하드코딩된 폴백 0.0.0.0:3000. 초기 구성 로드가 실패하면 사용됩니다.
다시 말해, config.yaml에 영속화한 값은 다음 부팅 시 IPMIDECK_ 환경 변수 또는 --host / --port 플래그에 의해 재정의됩니다. 환경과 CLI가 항상 이깁니다. config.yaml이 형식이 잘못되면, ipmideck는 stderr에 경고를 출력하고 0.0.0.0:3000으로 폴백합니다.
IPMIDECK_SERVER_HOSTIPMIDECK_SERVER_PORT 환경 변수는 IPMIDECK_ 접두사를 사용합니다. 재정의의 전체 목록은 구성을 참조하세요.

—gen-cert로 HTTPS

--gen-cert는 자체 서명 인증서와 키를 생성한 다음 종료합니다. 서버를 시작하지 않으며, HTTPS를 스스로 켜지 않습니다.
data/certs/ 아래에 인증서 + 키 쌍을 쓰고, 그 경로를 config.yamlserver 블록에 기록하고, 세 줄을 출력합니다.
실제로 HTTPS로 서비스하려면, config.yaml에서 server.https: true를 설정하고 ipmideck를 재시작합니다. HTTPS는 결코 자동으로 활성화되지 않습니다.

데모 모드

--demo는 실제 BMC 대신 시뮬레이션된 하드웨어에 대해 ipmideck를 실행하며, 서버를 하나도 연결하지 않고 대시보드를 평가하는 데 유용합니다.
데모 모드는 모든 서브 명령 분기 전, 매우 일찍 설정되므로, 앱 전체 (구성과 실행 중인 서버)가 그것을 봅니다.

관리자 비밀번호 재설정

reset-password는 관리자 로그인을 대화형으로 만들거나 업데이트한 다음, 서버를 한 번도 시작하지 않고 종료합니다.
Username:을 묻고 그다음 New password: (숨겨진 입력)을 묻습니다. 계정이 이미 존재하면, 그 사용자의 비밀번호를 업데이트하고 Password updated for <username>을 출력합니다. 그렇지 않으면 사용자를 만들고 User <username> created를 출력합니다.

개발용 자동 리로드

--reload는 개발 전용 빠른 경로입니다. uvicorn 자체의 자동 리로드 슈퍼바이저로 넘기고 반환합니다. 이는 의도적으로 아래에 설명된 단일 인스턴스 포트 가드를 건너뜁니다. 리로더가 자체 슈퍼바이저 프로세스를 실행하기 때문입니다.
--reload는 개발 전용입니다. 단일 인스턴스 가드를 우회하므로, 다른 ipmideck 인스턴스가 같은 포트에 이미 바인드되어 있지 않은 호스트에서 실행하세요.

종료 코드

서비스 경로 (--reload가 아닌)에서 ipmideck는 바인드 전에 단일 인스턴스 가드를 실행합니다. 포트가 이미 사용 중이면 stderr에 오류를 출력하고 1로 종료합니다. 주소를 사용할 수 없거나 허용되지 않아 바인드가 실패하면, 별개의 오류를 출력하고 마찬가지로 1로 종료합니다.

다음 단계

  • 구성: config.yaml 키와 IPMIDECK_ 환경 변수 재정의.
  • 설치: Docker 또는 pip로 ipmideck를 설치합니다.
  • 문제 해결: 연결, 포트, IPMI 오류.