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

# 첫 실행

> 설치 마법사, 트레이 아이콘, 앱 메뉴, 그리고 두 번째 실행부터 어떻게 달라지는지.

데스크톱 앱을 처음 열면 **12 스텝 설치 마법사** 가 돕니다. 두 번째 실행부터는 스택이 이미 떠 있는 한 마법사를 완전히 건너뛰고 곧장 Nora SPA 로 넘어갑니다.

## 설치 마법사

랜딩 화면에서 **\[Install Nora]** 를 누릅니다. 마법사가 스텝 체크리스트를 렌더하고, **\[Show details]** 를 펼치면 `docker compose` 원시 로그가 함께 스트리밍됩니다.

### 12 스텝

| # | 스텝 | 하는 일 |
| - | - | - |
| 1 | Check Docker Desktop | `docker info` 를 실행하고, Docker 가 꺼져 있으면 진행을 거절합니다 |
| 2 | Pull database image (postgres) | `pgvector/pgvector:pg16` 을 pull |
| 3 | Pull cache image (redis) | `redis:7-alpine` 을 pull |
| 4 | Pull vector image (qdrant) | `qdrant/qdrant:v1.12.4` 를 pull |
| 5 | Pull LLM bridge image | `nora-llm-bridge` 를 pull |
| 6 | Pull Nora server image | `nora-server` 를 pull |
| 7 | Start database | Postgres 컨테이너 start |
| 8 | Start cache | Redis 컨테이너 start |
| 9 | Start vector store | Qdrant 컨테이너 start |
| 10 | Start LLM bridge | LLM 브릿지 start |
| 11 | Start Nora server | `nora-server` 를 start 하고 대기 중인 SQL 마이그레이션을 실행합니다 |
| 12 | Wait for server to answer | `GET /api/v1/system/deploy` 를 폴링하다가 `flavor: onprem` 응답이 오면 완료 처리 |

pull 단계는 정상 회선에서 보통 2 – 5 분, 재실행은 거의 즉시입니다. 이미지가 pull 되지 않는 환경 — 프라이빗 네트워크나 throttled 레지스트리 — 이라면 Docker 가 소스 빌드로 폴백하며, 최초 1 회에 한해 15 – 30 분 정도 걸립니다.

<Tip>
  마지막 스텝은 서버가 `flavor: onprem` 을 답할 때까지 일부러 기다립니다. 같은 포트에 다른 서비스가 응답하고 있으면 앱은 그것을 조용히 인수하지 않고 **포트 충돌** 로 처리합니다. 포트를 바꾸려면 [Settings](/ko/local-app/desktop/settings) 를 참고하세요.
</Tip>

## 트레이 아이콘

설치가 끝나면 Nora 는 트레이에 상주합니다. macOS 는 메뉴바, Windows 는 시스템 트레이, Linux 는 알림 영역입니다. 우클릭하면 다음 네 가지가 있습니다.

* **\[Open Nora]** — 메인 창을 앞으로 가져옵니다.
* **\[Stop stack]** — `docker compose stop` 을 실행합니다. 설정과 데이터 볼륨은 그대로 남습니다.
* **\[Restart stack]** — 스택을 stop 한 뒤 start 합니다.
* **\[Quit Nora]** — 데스크톱 앱을 종료합니다. 컨테이너는 먼저 stop 하지 않는 한 계속 돕니다.

트레이 아이콘은 macOS 템플릿 모드로 렌더되므로 다크·라이트 메뉴바에서 자동으로 반전됩니다.

## 앱 메뉴

**Nora** 서브메뉴는 macOS 에서는 상단 메뉴바, Windows · Linux 에서는 창 메뉴에 있습니다. 네 가지 항목이 있습니다.

* **\[About Nora]** 는 버전과 빌드 정보를 보여줍니다.
* **\[Check for Updates…]** 와 **\[Import Update…]** 는 업데이트 팝업을 엽니다. [업데이트](/ko/local-app/desktop/updates) 를 참고하세요.
* **Services**, **Hide**, **Quit** 는 표준 macOS 항목입니다.

**Edit** 서브메뉴에는 Undo · Redo · Cut · Copy · Paste · Select All 이 연결되어 있습니다. 라이선스 키·포트 입력 필드가 다른 네이티브 앱과 동일하게 동작하도록 하기 위한 배선입니다.

**Window** 서브메뉴에는 Minimize · Maximize · Close Window 가 있습니다.

## 두 번째 실행부터

이후 실행에서는 앱이 화면을 그리기 전에 `docker info` 와 `GET /api/v1/system/deploy` 를 부릅니다. 스택이 이미 떠 있고 정상이라면:

* 설치 HTML 이 잠깐도 노출되지 않습니다.
* 창이 SPA URL (`http://localhost:${NORA_HOST_PORT}`) 로 곧바로 열립니다.
* 설치 화면 — 랜딩 · 마법사 · 대시보드 — 은 스택이 stop 되어 있거나 **Settings** 를 여는 경우에만 다시 등장합니다.

설치는 되었지만 stop 된 상태라면 작은 **Dashboard** 화면에 **\[Start Nora]** 버튼이 뜹니다. 한 번 누르면 컨테이너가 뜨고, 헬스 프로브가 응답하는 순간 SPA 로 넘어갑니다.

## 다음

<CardGroup cols={2}>
  <Card title="Settings" icon="sliders" href="/ko/local-app/desktop/settings">
    라이선스 키, 호스트 포트, 리셋, 언인스톨.
  </Card>

  <Card title="업데이트" icon="arrows-rotate" href="/ko/local-app/desktop/updates">
    앱 셸과 컨테이너 이미지를 함께 또는 따로 업데이트합니다.
  </Card>
</CardGroup>
