harbor

Local AI RunnersCLIPython

★ 3,216주당 +9조회 5

무엇인가

Harbor는 로컬 LLM 스택을 Docker Compose 단위로 조립하고 기동하는 Python CLI이자 동반 앱이다. 추론 엔진을 직접 구현하지 않고, 이미 존재하는 백엔드·프론트엔드·부가 서비스를 골라 하나의 스택으로 묶는 계층에 위치한다. 사용자가 개별 compose 파일과 환경 변수를 손으로 맞추던 자리를 대체한다.

어떻게 동작하나

`harbor up` 한 번으로 선택한 서비스의 Compose 오케스트레이션, 설정, 서비스 간 연결이 생성된다. 서비스별 기본값은 `services/<name>/default.env`에 두고, `.env`는 중복 없이 원자적으로 복구한다. `harbor down <service>`와 `harbor restart <service>`는 지정한 서비스만 다루고 나머지 실행분은 건드리지 않는다. 설정 프로파일을 저장해 llama.cpp 인자와 컨텍스트를 전환할 수 있고, 명령 이력은 시스템 셸과 분리해 로컬에만 남긴다. `harbor eject`는 현재 구성을 재현하는 docker-compose 파일을 출력한다.

무엇과 다른가

Ollama나 llama.cpp 같은 단일 실행기는 모델 서빙만 담당한다. Harbor는 그 위에서 백엔드(Ollama, llama.cpp, vLLM, Docker Model Runner, MLX, oMLX, Halogen Flash Server, Chandra 2 OCR)와 프론트엔드(Open WebUI, LibreChat, AnythingLLM), 검색(SearXNG), 음성(Speaches), 이미지 생성(ComfyUI)을 미리 연결된 상태로 배치한다. macOS에서는 Docker Model Runner·MLX·oMLX가 컨테이너 없이 호스트에서 Metal 가속으로 추론한다.

어떻게 쓰나

설치 후 `harbor up`으로 스택을 띄우고, `harbor launch`로 OpenAI 호환 백엔드를 기동하거나 탐지해 선택한 모델을 호스트 도구(claude, codex, copilot, droid, grok, hermes, mi, openclaw, opencode, pi, pool, vscode)에 연결한 채 현재 프로젝트 디렉터리에서 실행한다. Boost는 웹 리서치·산출물 감사·범위 점검·스타일 패스를 모듈로 엮고, `harbor launch --workflow`가 코딩 에이전트를 원시 백엔드 대신 단일 Boost 모듈로 라우팅한다. `quickhop`·`deephop` 모듈은 SearXNG를 자동 기동하며, 워크플로는 `HARBOR_BOOST_WORKFLOWS` 또는 `workflows.yaml`로 정의하고 `boost.workspace`로 프로젝트를 마운트해 에이전트가 실제 파일 경로를 검증하게 한다. `harbor launch --codemode`는 모델이 Boost 도구 전체를 하나의 Python 프로그램에서 구동하도록 한다.

전제와 한계

Docker 컨테이너 런타임이 전제이며, 각 서비스는 업스트림 이미지에 의존하므로 버전 호환은 릴리스마다 수리된다. 내장 터널링으로 스택을 인터넷에 노출할 수 있지만 README는 이를 안전하지 않다고 경고한다. 서비스 카탈로그와 통합 범위는 릴리스마다 확장되며, `harbor dev docs --check`는 생성 문서가 오래된 경우를 잡아낸다.

유사 도구