ODS: 명령 한 줄로 내 PC를 프라이빗 AI 서버로 만드는 오픈소스 스택

ODS 소개

ODS(Osmantic Deployment System)는 로컬 AI 환경을 꾸리려면 Ollama와 Open WebUI, n8n, ComfyUI, 각종 프라이버시 도구를 하나씩 붙여야 했던 작업을 설치 스크립트 하나로 대신 처리하는 오픈소스 프로젝트입니다. 개발팀은 이 도구의 목적을 "Turn your PC, Mac, or Linux box into a private AI server" 라고 요약하며, AI 서버와 홈랩 구축이 이미 풀린 문제에 가까운데도 여전히 어렵게 느껴지는 상황을 바꾸려 한다고 밝히고 있습니다.

설치가 끝나면 로컬 모델 추론과 브라우저 채팅 UI, 서비스와 GPU 상태를 관리하는 대시보드, 음성과 에이전트, 워크플로 자동화, 로컬 문서를 붙이는 검색·RAG, 이미지 생성, 그리고 인증·비밀값·관측을 담당하는 운영 도구가 한 벌로 묶여 돌아갑니다. 클라우드나 구독은 필요하지 않고, 사용자가 직접 선택하지 않는 한 프롬프트와 데이터는 사용자 컴퓨터에 남습니다. 클라우드 API 모드와 로컬·클라우드를 섞는 하이브리드 모드는 원할 때만 켜는 선택지입니다.

저장소 최상위에는 공개 README와 설치 스크립트, 보안 정책, GitHub 워크플로가 있고, 실제 제품 런타임인 서비스와 설치 단계, compose 오버레이, 대시보드, CLI, 테스트, 운영자 문서는 저장소의 ods/ 디렉토리 에 모여 있습니다. 현재 안정 릴리스는 v2.5.3 이며, main 브랜치는 빠르게 움직이므로 포크나 실사용 환경에서는 태그된 릴리스나 검토를 마친 커밋을 고정하라고 안내합니다.

ODS의 설치 흐름

Linux와 macOS는 설치 명령 한 줄로 시작합니다. Windows 사용자는 PowerShell 설치 스크립트를 쓰거나 Windows Quickstart 문서 를 따릅니다.

curl -fsSL https://install.osmantic.com/ods.sh | bash

설치가 끝나면 http://localhost:3000 에서 Open WebUI 채팅을 바로 열 수 있습니다. 추론 API 주소는 환경에 따라 다른데, Linux의 Docker 설치는 기본적으로 http://localhost:11434 로 llama-server를 노출하고 컨테이너 내부에서는 llama-server:8080 을 사용하며, macOS 네이티브 Metal 경로와 Windows 네이티브·Lemonade 경로는 http://localhost:8080 을 씁니다. 포트는 모두 환경 변수로 바꿀 수 있고, GPU가 없다면 ./install.sh --cloud 로 같은 스택을 OpenAI·Anthropic·Together API 기반으로 돌릴 수 있습니다.

첫 실행 경험을 담당하는 것이 부트스트랩 모드 입니다. ODS는 기본적으로 1분 안에 내려받을 수 있는 1.5B 크기의 작은 모델을 먼저 띄워 사용자가 곧바로 대화를 시작하게 하고, 정식 모델은 백그라운드에서 내려받은 뒤 무중단으로 교체합니다. 부트스트랩 모델은 64K 컨텍스트로 시작해 기본 에이전트인 Hermes가 첫 세션부터 동작할 수 있게 하고, 다운로드가 끝나면 선택된 모델이 지원하는 범위에서 컨텍스트를 늘립니다. 이 단계를 건너뛰려면 ./install.sh --no-bootstrap 을 사용합니다.

ODS가 설치하는 서비스 구성

  • 채팅과 추론: 대화 기록·웹 검색·문서 업로드를 지원하는 Open WebUI, 연속 배칭으로 동작하며 GPU에 맞춰 자동 선택되는 llama-server, 로컬·클라우드·하이브리드 모드를 지원하는 API 게이트웨이 LiteLLM, 검색과 RAG용 TEI 임베딩 서비스.
  • 음성: 음성 인식은 Whisper, 음성 합성은 Kokoro가 담당합니다.
  • 에이전트와 자동화: 메모리와 스킬을 갖춘 기본 에이전트 Hermes Agent, 마이그레이션 기간 동안만 선택적으로 남겨 둔 레거시 에이전트 OpenClaw, 400개 이상의 연동을 제공하는 n8n, 자율적인 도구 호출을 감사하고 통제하는 APE(Agent Policy Engine), 브라우저 기반 코딩 어시스턴트 OpenCode, 에이전트 메모리 수명 주기를 돕는 Memory Shepherd.
  • 지식과 검색: 벡터 데이터베이스 Qdrant, 추적 없는 자체 호스팅 웹 검색 SearXNG, 심층 리서치 엔진 Perplexica, 그리고 선택적으로 붙이는 유료 Brave Search API.
  • 생성과 운영: 노드 기반 이미지 생성 도구 ComfyUI, API 호출에서 개인정보를 걸러 내는 Privacy Shield, GPU 지표와 서비스 상태·모델 관리를 담당하는 대시보드와 대시보드 API, 토큰 사용량 모니터 Token Spy, 선택 사항인 관측 도구 Langfuse.

ODS의 하드웨어 자동 감지와 모델 선택

설치 스크립트는 GPU를 감지해 하드웨어 티어를 먼저 정합니다. Linux와 macOS는 ods/scripts/select-model.py 카탈로그 선택기를, Windows는 PowerShell 선택기를 사용하며, 두 경로 모두 ods/config/model-library.json 을 읽어 감지된 메모리 범위에 맞는 GGUF를 고릅니다. 결정된 값은 .envLLM_MODEL, GGUF_FILE, MAX_CONTEXT 등으로 기록됩니다.

기본 카탈로그 프로파일은 MODEL_PROFILE=qwen 이라서 실제 선택은 Qwen, Phi, DeepSeek 중 가장 잘 맞는 쪽으로 갈릴 수 있고, MODEL_PROFILE=gemma4 는 Gemma 4를 강제합니다. 티어는 ./install.sh --tier 3 처럼 직접 지정할 수도 있습니다. 아래는 NVIDIA 환경의 카탈로그 선택 예시로, 실제 설치 결과는 감지된 VRAM과 호스트 아키텍처, 기존 다운로드 여부에 따라 달라질 수 있습니다.

티어 / 메모리 기본 선택 모델 컨텍스트 예시 하드웨어
1 / VRAM 8GB Qwen3.5 9B (Q4_K_M) 32K RTX 4060, RTX 3060 12GB
2 / VRAM 12GB Phi-4 14B (Q4_K_M) 16K RTX 4070급
3 / VRAM 24GB Qwen3.5 27B (Q4_K_M) 32K RTX 4090, A6000
4 / VRAM 48GB DeepSeek R1 Distill Llama 70B (Q4_K_M) 32K A6000 Ada, L40S

AMD Strix Halo 계열과 Apple Silicon, Intel Arc를 위한 티어 표도 별도로 정리되어 있습니다. 통합 메모리 호스트에서는 현재 저장소 정책이 정확성 문제를 기록해 둔 조합을 피하도록 선택기가 경로를 우회시킵니다.

ODS의 모델 교체와 CLI 관리

설치 후 모델은 언제든 바꿀 수 있습니다. 새 모델이 아직 없으면 미리 받아 둔 뒤 교체하며, 새 모델이 로드에 실패하면 이전 모델로 자동 롤백됩니다.

ods model current              # What's running now?
ods model list                 # Show all available tiers
ods model swap T3              # Switch to a different tier

이미 가지고 있는 GGUF 파일이 있다면 data/models/ 에 넣고 대시보드의 Models 화면에서 로컬 항목으로 불러올 수 있습니다. 스택 전체는 ods CLI로 관리하며, 상태 확인과 로그 열람, 서비스 재시작은 물론 로컬·클라우드·하이브리드 모드 전환과 설정 스냅샷 저장까지 같은 명령 체계로 처리합니다.

ods status                # Health checks + GPU status
ods logs llm              # Tail logs (aliases: llm, stt, tts)
ods mode hybrid           # Local primary, cloud fallback
ods enable n8n            # Enable an extension
ods preset save gaming    # Snapshot current config

ODS의 확장 구조

ODS의 모든 서비스는 확장(extension) 단위로 다뤄집니다. 확장은 manifest.yamlcompose.yaml 을 담은 폴더 하나이며, 대시보드와 CLI, 헬스 체크, compose 스택이 이 폴더를 자동으로 인식합니다. 폴더를 넣고 ods enable 을 실행하면 스택에 합류하는 구조라서, 기본 구성에 없는 서비스를 붙이거나 쓰지 않는 서비스를 떼어 내기 쉽습니다.

extensions/services/
  my-service/
    manifest.yaml      # Metadata: name, port, health endpoint, GPU backends
    compose.yaml       # Docker Compose fragment (auto-merged into the stack)

설치 스크립트 자체도 19개 라이브러리 모듈과 공유 서비스 레지스트리, 순서가 정해진 13개 단계로 나뉘어 있습니다. 하드웨어 티어를 추가하거나 기본 모델을 바꾸려면 설치 아키텍처 문서 를 먼저 보고 Linux, macOS, Windows, 업그레이드 경로를 함께 수정하라고 안내합니다.

ODS와 다른 로컬 AI 도구의 차이

저장소는 비슷한 도구들과의 차이를 다음과 같이 정리하고 있습니다. 이미 익숙한 도구가 있다면 ODS가 그 위에 무엇을 더하는지로 읽으면 됩니다.

익숙한 도구 ODS가 더하는 것
Ollama, llama.cpp 채팅, 대시보드, 음성, RAG, 워크플로, 에이전트, 프라이버시, 서비스 관리를 포함한 주변 서버 스택
Open WebUI Open WebUI를 감싸는 설치 도구와 제어 평면, 미리 연결된 로컬 서비스들
AnythingLLM RAG를 넘어 추론, 채팅, 음성, 워크플로, 이미지 생성, 운영까지 다루는 로컬 AI 어플라이언스
n8n 셀프 호스팅 AI 스타터 킷 워크플로 자동화를 더 큰 프라이빗 AI 서버의 한 부분으로 편입

ODS의 지원 플랫폼

Linux(NVIDIA, AMD, Intel Arc), Windows(NVIDIA, AMD), macOS(Apple Silicon)가 모두 지원 상태로 표시되어 있습니다. Windows는 WSL2 백엔드를 켠 Docker Desktop이 필요하고, NVIDIA GPU는 Docker GPU 패스스루를, AMD Strix Halo는 별도의 가속 경로를 사용합니다. macOS는 Apple Silicon(M1 이상)과 Docker Desktop이 필요하며 llama-server만 Metal 가속으로 네이티브 실행하고 나머지 서비스는 Docker에서 돌아갑니다.

테스트를 마친 Linux 배포판으로는 Ubuntu 24.04와 22.04, Debian 12, Linux Mint 21.3, Fedora 41 이상, Rocky Linux 9, Arch Linux, Manjaro, CachyOS, openSUSE Tumbleweed가 명시되어 있고, apt·dnf·pacman·zypper를 쓰는 다른 배포판도 동작할 것으로 안내합니다.

ODS의 라이선스

ODS는 Apache 2.0 라이선스로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용하고 수정해 배포할 수 있습니다.

:tv: ODS 데모 영상

:house: ODS를 만든 Osmantic 공식 홈페이지

:books: ODS 문서 색인

:github: ODS 프로젝트 GitHub 저장소

더 읽어보기




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! 텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로도 새 글 알림을 받으실 수 있습니다. :smiley:

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: