상태 (2026-09) — 데스크톱 앱은
0.1.0 버전입니다. Docker Compose, Helm, 에어갭 tarball 은 모두 같은 릴리스 파이프라인이 산출하는 프로덕션 경로입니다. 현재 빌드는 서명이 없어 macOS Gatekeeper 와 Windows SmartScreen 이 첫 실행에 한 번 물어봅니다. 코드 서명은 진행 중입니다.어떤 형태를 고를까
네 가지 모두 같은 스택을 부팅합니다. 어느 것을 고를지는 Nora 가 살아야 할 위치에 달렸습니다.데스크톱 앱
단일 노트북용. 네이티브 창과 트레이 아이콘으로 뜨고, Docker 스택을 앱이 대신 관리합니다.
Docker Compose
서버 · VM 한 대용. 공통 compose 파일로
docker compose up -d 한 번.Kubernetes (Helm)
인그레스와 TLS, 프라이빗 레지스트리를 갖춘 기존 클러스터용. 같은 5 개 서비스를 Helm 차트로 배포합니다.
에어갭 tarball
인터넷이 전혀 닿지 않는 호스트용 — 오프라인 병원, 국방, 규제 네트워크. 모든 이미지가 하나의 아카이브에 담겨 있습니다.
내부에서 도는 스택
어떤 형태를 골라도 같은 5 개 서비스가 내부 Docker 네트워크에 뜹니다.nora-server는 API 를 서빙하고 SPA 를 함께 반환하는 Rust 바이너리입니다.nora-llm-bridge는 Claude Agent SDK, Ollama, OpenAI 호환 어댑터를 담는 Node 서브프로세스입니다.postgres(pgvector/pgvector:pg16) 는 애플리케이션 상태와, 기본 설정에서는 벡터 임베딩까지 함께 저장합니다.redis(redis:7-alpine) 는 작업 메모리 캐시입니다. Redis 가 없으면 Postgres 로 폴백합니다.qdrant(qdrant/qdrant:v1.12.4) 는 선택형 벡터 저장소입니다.NORA_VECTOR_STORE=qdrant로 스위치할 수 있습니다.
8090 (NORA_HOST_PORT) 입니다.
모든 설치가 공유하는 동작
- 부팅 시 자동 마이그레이션. 기본값이
NORA_RUN_MIGRATIONS=1입니다. 첫up이 모든 SQL 마이그레이션을 실행하고, 이후 부팅은 변화가 없으면 no-op 입니다. - 온프렘 flavor 게이트.
NORA_DEPLOY_FLAVOR=onprem이 UI 에서 SDK · Local 실행 모드를 열고 free tier 게이팅을 활성화합니다. - 기본 free tier. 라이선스 키가 없으면 워크스페이스 1개, 플로우 3개, 하루 100회 실행. 유료 활성화는 데스크톱 앱의 Settings 에서 라이선스 키를 붙여넣거나, compose · Helm · 에어갭 경로에서는
NORA_LICENSE_KEY·NORA_LICENSE_FILE을 지정합니다. - 선택형 에어갭 부팅 프로브.
NORA_AIRGAP=1을 지정하면 서버가 부팅 시점에 공용 인터넷에 여전히 도달 가능하면 exit code 78 로 거절합니다. Nora 가 트래픽을 받기 전에 격리 상태를 검증합니다.
Nora Local 이 하지 않는 일
- 셀프서브 결제 표면 — 플랜, 포털, 구독, 취소는 온프렘에 존재하지 않습니다. 결제는 라이선스 계약에 따릅니다.
- SaaS 개선 루프 — Verify & Improve 예산은 워크스페이스별 과금이 아니라 엔터프라이즈 라이선스에 포함됩니다.
다음
데스크톱 앱 설치
macOS · Windows · Linux 다운로드와 첫 실행 프롬프트.
Docker Compose
같은 compose 파일을 서버에서 직접 실행합니다.
Kubernetes (Helm)
인그레스, TLS, 프라이빗 레지스트리, 라이선스 오버라이드.
에어갭 tarball
인터넷 없는 머신에 설치.
Nora Local 의 MCP
Claude Code · Codex · Cursor 를 로컬 MCP 엔드포인트에 연결합니다.