> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ipmideck.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 대화형 콘솔

> 실행 중인 ipmideck 서버를 터미널에서 조작합니다. 상세도, 세션, 서버, 대시보드 URL, 바인드 주소를 위한 단일 키 작업을 갖춘 고정 헤더 운영자 콘솔.

터미널에서 ipmideck를 시작하면 대화형 운영자 콘솔이 렌더링됩니다. 배너와 도움말 막대가 있는
고정 헤더가 실시간으로 스크롤하는 로그 위에 있습니다. 모든 작업은 단일 키 입력이며,
메뉴도 마우스도 없습니다. 콘솔은 서버와 함께 프로세스 내에서 실행되므로, 보이는 것은
당신이 있는 머신의 실시간 상태입니다.

<Note>
  콘솔은 실제 **대화형 터미널**에서만 나타납니다. stdin과 stdout 둘 다 TTY여야 합니다.
  Docker, systemd 아래, 또는 stdout이 파이프/리디렉션될 때, ipmideck는 콘솔을 완전히
  건너뛰고 일반 스크롤 로그만 씁니다. [콘솔이 나타나는 곳](#콘솔이-나타나는-곳)을 참조하세요.
</Note>

## 어떻게 보이는가

콘솔은 하나의 전체 화면 뷰입니다. 항상 보이는 고정 헤더가, 그 아래에서 스크롤하는
실시간 로그 위에 있습니다.

<Frame caption="시작 직후의 콘솔: 배너와 도움말 막대가 상단에 고정된 채, 로그 끝이 그 아래에서 스크롤합니다.">
  <img src="https://mintcdn.com/weremind/AEscsmW5B2jdwuWI/console/home.png?fit=max&auto=format&n=AEscsmW5B2jdwuWI&q=85&s=3f038250e1d7e5a038118c86ef7e2d5a" alt="ipmideck interactive console showing the banner, help bar, status line, and the scrolling log panel" width="1107" height="714" data-path="console/home.png" />
</Frame>

헤더는 결코 스크롤하지 않습니다. 새 로그 줄은 그 아래의 패널에 나타나며, 가장 최근 줄은
항상 화면에 유지됩니다. 작업하려면 단일 키를 누릅니다. 모든 것이 방금 시작한 서버에 대해
프로세스 내에서 일어납니다.

## 헤더

화면 상단은 결코 스크롤하지 않는 고정 헤더입니다. 위에서 아래로 다음과 같이 쌓입니다.

* ipmideck 배너.
* **도움말 막대**: 모든 작업 키와 그 기능.
* **상태 줄**: 세션의 실시간 상태.
* 간결한 크레딧 줄 (작성자, 버전, 라이선스).

헤더 아래의 본문은 스크롤하는 로그 끝입니다. 가장 최근 줄은 항상 화면에 유지되므로, 새로
표시된 URL이나 확인이 하단에서 잘리는 일은 없습니다.

### 상태 줄

상태 줄은 `|`로 구분된 세 개의 실시간 필드를 표시합니다.

* **Verbosity**: 현재 로그 레벨 (`INFO`, `DEBUG`, `WARNING`).
* **Clients**: 지금 연결된 대시보드 클라이언트 수.
* **last**: 마지막으로 누른 작업 키. 즉각적인 시각적 피드백으로.

## 작업 키

모든 작업은 한 번의 키 입력입니다. 도움말 막대가 그것들을 모두 나열합니다.

| 키     | 작업                           |
| ----- | ---------------------------- |
| `v`   | 로그 **상세도** 순환                |
| `c`   | 연결된 **세션** 하위 뷰 열기           |
| `s`   | 구성된 **서버** 하위 뷰 열기           |
| `u`   | 대시보드 **url**을 로그에 표시         |
| `g`   | **업데이트** 확인 (로컬 버전 출력)       |
| `b`   | **바인드 변경** 편집기 열기            |
| `r`   | 서버 **재시작**                   |
| `q`   | **종료**, 또는 하위 뷰에서 로그 뷰로 돌아가기 |
| `ESC` | **뒤로**, 하위 뷰에서 로그 뷰로 돌아가기    |

화살표, 기능, 탐색 키는 소비되고 무시되며, 결코 작업과 충돌하거나 키 입력으로 계산되지
않습니다.

### v: 상세도

`v`는 런타임 로그 레벨을 고정된 3단계 루프로 순환합니다.

```
INFO → DEBUG → WARNING → INFO
```

`INFO`가 기본값입니다. `DEBUG`는 더 많이, `WARNING`은 더 적게 표시합니다. 변경은 세션의
나머지에 대해 즉시 적용되며 상태 줄이 그에 맞게 업데이트됩니다.

<Note>
  상세도 토글은 **실행 중인** 레벨만 변경합니다. 다음 부팅 시에는 구성 (또는
  `IPMIDECK_LOGGING_LEVEL` 환경 변수)의 레벨이 다시 이깁니다. [구성](/ko/configuration)을 참조하세요.
</Note>

### c: 세션

`c`는 **Connected sessions** 하위 뷰를 엽니다. 현재 연결된 대시보드 클라이언트의 읽기 전용
테이블이며, 열은 다음과 같습니다.

* **IP**
* **Connected since**
* **User-Agent**

`q` 또는 `ESC`를 눌러 로그 뷰로 돌아갑니다.

<Frame caption="Connected sessions 하위 뷰 (키 c), 연결된 각 대시보드 클라이언트당 한 행.">
  <img src="https://mintcdn.com/weremind/AEscsmW5B2jdwuWI/console/connections.png?fit=max&auto=format&n=AEscsmW5B2jdwuWI&q=85&s=ae63f8235c95bf3cde8110d80407eb27" alt="Connected sessions table showing IP, Connected since, and User-Agent columns" width="1100" height="427" data-path="console/connections.png" />
</Frame>

### s: 서버

`s`는 **Configured servers** 하위 뷰를 엽니다. ipmideck가 통신하도록 구성된 BMC의 읽기 전용
테이블이며, 열은 다음과 같습니다.

* **Name**
* **Host**
* **Status**

`q` 또는 `ESC`를 눌러 로그 뷰로 돌아갑니다.

<Frame caption="Configured servers 하위 뷰 (키 s), 각 BMC와 온라인 여부를 나열합니다.">
  <img src="https://mintcdn.com/weremind/AEscsmW5B2jdwuWI/console/servers.png?fit=max&auto=format&n=AEscsmW5B2jdwuWI&q=85&s=92eecf88dc0eab22e2cb10e44d9c8dc3" alt="Configured servers table showing Name, Host, and Status columns with online and offline servers" width="1107" height="366" data-path="console/servers.png" />
</Frame>

### u: url

`u`는 대시보드 URL (`scheme://host:port`)을 로그 본문에 표시합니다. 서버가 와일드카드
주소 (`0.0.0.0`, `::`, 또는 빈 값)에 바인드되어 있으면, URL은 `127.0.0.1`로 다시 쓰여
실제로 브라우저에서 열 수 있게 됩니다. `http://0.0.0.0:3000`은 수신 주소이지, 탐색 가능한
주소가 아닙니다.

<Frame caption="키 u는 대시보드 URL을 로그 하단에 출력하며, 도달 가능한 주소로 다시 씁니다.">
  <img src="https://mintcdn.com/weremind/AEscsmW5B2jdwuWI/console/url.png?fit=max&auto=format&n=AEscsmW5B2jdwuWI&q=85&s=dac700c68e0cdb9472732dcc4ba41373" alt="The console log with the dashboard URL printed at the bottom after pressing u" width="1103" height="713" data-path="console/url.png" />
</Frame>

### g: 업데이트

`g`는 로컬 버전과 온라인 업데이트 확인이 pip 릴리스와 함께 제공된다는 메모를 출력합니다.
**네트워크 호출을 하지 않습니다**. ipmideck는 오프라인을 유지합니다.

### r: 재시작

`r`은 깨끗한 프로세스 내 재시작을 수행합니다. ipmideck는 콘솔을 해체하고, `config.yaml`을
다시 읽고, 새로 시작합니다. 새 주소를 적용하려면 [바인드 변경](#b-바인드-변경) 편집 후에
사용하세요.

### q / ESC: 종료 및 뒤로

* 하위 뷰 (`sessions` 또는 `servers`)에서는, `q`와 `ESC` 둘 다 로그 뷰로 돌아갑니다.
* 로그 뷰에서는, `q`가 깨끗한 종료를 트리거하며, 서버가 정상적으로 종료됩니다.

## b: 바인드 변경

`b`는 바인드 변경 편집기를 엽니다. 이는 입력하는 동안 도움말 막대를 대체하는 인라인
`host:port` 프롬프트입니다. 헤더는 현재 바인드를 읽기 전용 `current: host:port` 레이블로
표시하고 빈 `new:` 필드를 표시하므로, 입력하는 값이 즉시 나타나며 기존 것과 혼동되지
않습니다.

<Frame caption="바인드 변경 편집기 (키 b): 도움말 막대가 현재 바인드와 빈 새 host:port 프롬프트로 대체됩니다.">
  <img src="https://mintcdn.com/weremind/AEscsmW5B2jdwuWI/console/bind.png?fit=max&auto=format&n=AEscsmW5B2jdwuWI&q=85&s=6ef6d976c814450f3758213d3b0f1b76" alt="The change-bind editor showing the current bind address and an empty new field with apply, cancel, and delete key hints" width="1099" height="219" data-path="console/bind.png" />
</Frame>

편집기 내의 키:

* **Enter**: 입력한 `host:port`를 적용.
* **ESC**: 아무것도 변경하지 않고 취소.
* **Backspace**: 마지막 문자를 삭제.
* 모든 인쇄 가능 문자, 버퍼에 추가.

입력은 `host:port`여야 하며, 비어 있지 않은 호스트와 범위 **1–65535**의 정수인 포트여야
합니다. 유효한 입력에서, ipmideck는 새 바인드를 확인하고 재시작이 필요함을 상기시킵니다
(`r`을 누릅니다). 유효하지 않은 입력에서는 `Invalid host/port`를 보고하고 아무것도
변경되지 않습니다.

<Warning>
  바인드 변경 편집은 **실시간이 아닙니다**. 구성에 쓰이며 재시작 후에만 적용됩니다.
  적용하려면 `r`을 누르세요. 그리고 우선순위를 기억하세요. 다음 부팅 시의
  `IPMIDECK_SERVER_HOST` / `IPMIDECK_SERVER_PORT` 환경 변수나 명시적 `--host` / `--port`
  플래그는 콘솔이 영속화한 것을 재정의합니다. [구성](/ko/configuration)을 참조하세요.
</Warning>

## 콘솔이 나타나는 곳

대화형 콘솔은 실제 TTY에 따라 게이트됩니다. ipmideck는 stdin과 stdout **둘 다** 대화형
터미널일 때만 그것을 렌더링합니다. 그렇지 않을 때는 배너와 일반 스크롤 로그로 격하되며
키 리스너를 설치하지 않으므로, 비 TTY에서 무언가가 바쁘게 회전하는 일은 없습니다.

즉, 콘솔은 ipmideck를 터미널에서 직접 실행할 때 나타납니다.

<CodeGroup>
  ```powershell PowerShell theme={null}
  ipmideck
  ```

  ```cmd cmd theme={null}
  ipmideck
  ```

  ```bash bash theme={null}
  ipmideck
  ```
</CodeGroup>

다음의 경우에는 나타나지 **않습니다**.

* **Docker** 아래에서 실행: 컨테이너가 uvicorn을 직접 시작하고 콘솔 경로에 도달하지
  않습니다. 일반 컨테이너 로그 (`docker logs`)를 얻습니다.
* **systemd** 또는 stdout이 터미널이 아닌 모든 서비스 관리자 아래에서 실행.
* stdout을 **파이프 또는 리디렉션** (예: `ipmideck > server.log`): stdout은 더 이상 TTY가 아닙니다.

모든 비 TTY의 경우, 서버는 여전히 정상적으로 실행되며 동일한 기본값 `0.0.0.0:3000`에
바인드됩니다. 실시간 콘솔 대신 일반 로그를 얻을 뿐입니다.

<Note>
  `ipmilink`는 `ipmideck`의 하위 호환 별칭으로, 둘 다 동일한 콘솔을 시작합니다.
</Note>

## 다음 단계

* [ipmideck 실행](/ko/running): 시작, 서비스, 바인드 우선순위 규칙.
* [CLI](/ko/cli): 모든 서브 명령과 플래그 자세히.
* [구성](/ko/configuration): 바인드 주소, 상세도, 폴링 간격을 설정합니다.
* [설치](/ko/installation): Docker 또는 pip로 설치합니다.
