Ollama + Open WebUI 설치 | 로컬 LLM 서버 구축 완전 가이드
// macOS · Ollama · Qwen 2.5 14B · Open WebUI · LLM 로컬 서버
로컬 LLM 서버 구축 — Ollama + Qwen 2.5 14B + Open WebUI 브라우저 인터페이스
왜 로컬 LLM인가
GPT API 쓰면 돈 나간다. 쿼리 하나하나가 비용이고, 민감한 데이터를 외부로 보내야 한다.
"내 서버에서 돌리면 공짜고, 데이터가 밖으로 안 나간다."
Ollama로 Qwen 2.5 14B 모델 올리고, Open WebUI로 브라우저에서 바로 쓸 수 있게 만들었다. API 키 없이, 인터넷 연결 없이, 완전히 로컬에서 돌아간다.
작업 환경
OS : macOS (Apple Silicon)
패키지 관리 : Homebrew
LLM 서버 : Ollama
모델 : Qwen 2.5 14B (~9GB)
웹 UI : Open WebUI
구성 전 / 후
BEFORE
LLM : 외부 API (GPT, Claude)
비용 : 쿼리당 과금
프라이버시: 데이터 외부 전송
인터페이스: 없음
AFTER
LLM : Ollama 로컬 서버
비용 : 무료 (전기세만)
프라이버시: 완전 로컬, 외부 전송 없음
인터페이스: Open WebUI (브라우저)
기술 스택
LLM RUNTIME
Ollama
로컬 LLM 서버 / API :11434
MODEL
Qwen 2.5 14B
Alibaba / 9GB / 한국어 지원
WEB UI
Open WebUI
ChatGPT 스타일 브라우저 인터페이스
PROXY
webui_proxy.py
localhost only 접근 제한
포트 구조
PART 1 — Ollama 설치 + Qwen 2.5 14B
Ollama 설치
Homebrew로 설치한다. 설치 후 서비스로 등록하면 재부팅해도 자동으로 뜬다.
Qwen 2.5 14B 모델 다운로드
약 9GB다. 네트워크 속도에 따라 10~30분 걸린다. 다운로드 중에 터미널 닫으면 처음부터 다시 시작이니 그냥 놔두면 된다.
💡
다른 모델도 가능
용량이 부담스러우면
ollama pull qwen2.5:7b (4GB) 이나 ollama pull llama3.2:3b (2GB) 도 괜찮다. ollama search 로 전체 모델 목록 확인 가능.모델 동작 테스트
PART 2 — Open WebUI 설치
Python 3.11 설치
Open WebUI는 최신 Python(3.12+)과 호환이 안 된다. 3.11을 따로 설치해야 한다.
⚠️
삽질 포인트 — Python 버전 호환 문제
macOS 기본 Python(3.13, 3.14)으로
pip install open-webui 하면 빌드 오류 난다. 반드시 3.11 버전으로 설치해야 한다.Open WebUI 설치 + 실행
💡
WEBUI_SECRET_KEY 주의
openssl rand -hex 32 로 강력한 랜덤 키를 쓰자. "secret123" 같은 키는 보안상 위험하다.Open WebUI 초기 설정
브라우저에서 접속해서 계정을 만들고 Ollama API를 연결한다.
PART 3 — 외부 접근 차단 (리버스 프록시)
왜 프록시가 필요하냐면
Open WebUI를 --host 127.0.0.1로 실행해도 실제로는 0.0.0.0에 바인딩된다.
"같은 네트워크 다른 기기에서 IP:18080으로 들어올 수 있다."
해결책은 간단하다. Python으로 127.0.0.1:8080에만 바인딩된 리버스 프록시를 만들고, 브라우저는 그쪽으로 접속하게 한다.
webui_proxy.py 작성
PART 4 — 서비스 관리 스크립트
start / stop / status 스크립트
서비스가 3개라서 매번 수동으로 켜고 끄면 귀찮다. 스크립트로 묶어두면 한 방에 된다.
트러블슈팅
🔴
open-webui pip 설치 빌드 오류
원인: Python 3.12+ 호환 안 됨 → 해결:
brew install python@3.11 후 pip3.11 으로 설치
🔴
SECRET_KEY 파일 읽기 오류
원인:
/.webui_secret_key 쓰기 권한 없음 → 해결: DATA_DIR=~/openwebui_data + WEBUI_SECRET_KEY 환경변수 직접 지정
🔴
Open WebUI --host 127.0.0.1 무시됨
원인: 옵션 무관하게 0.0.0.0에 바인딩됨 → 해결: Python 리버스 프록시(
webui_proxy.py)로 127.0.0.1:8080만 허용
🔴
nohup 로그 파일에 아무것도 안 찍힘
원인: Python 출력 버퍼링 → 해결:
python3 -u (unbuffered) + PYTHONUNBUFFERED=1 환경변수
🔴
Qwen 한국어 질문에 중국어로 답변
원인: Qwen은 중국어 기반 모델 → 해결: 시스템 프롬프트에
"NEVER use Chinese characters under any circumstances" 추가전체 흐름 요약
// 결론
API 키 없이, 인터넷 없이, 완전히 로컬에서 돌아간다.
Ollama + Qwen 2.5 14B + Open WebUI, 이게 전부다.
Ollama + Qwen 2.5 14B + Open WebUI, 이게 전부다.
Tags:
#Ollama
#Qwen
#OpenWebUI
#로컬LLM
#macOS
#LLM서버
#AI서버구축
#Homebrew