나만의 프라이빗 AI 포털 구축: Open WebUI 개념 및 Docker 설치 (1/5)

시리즈글 1 / 5
업데이트2025년 5월
버전Open WebUI v0.6.x
난이도초급 ~ 중급
타입Pillar 마스터
Open WebUI 설치 Open WebUI Docker Ollama 로컬 LLM 구축 AI 서버 구축 GPU 서버
Open WebUI는 Ollama, OpenAI, Claude 등 다양한 AI 모델을 하나의 웹 인터페이스로 통합하는 오픈소스 셀프호스팅 AI 플랫폼입니다. 2025년 기준 GitHub 스타 90,000+, 국내외 홈랩·기업 환경에서 가장 많이 쓰이는 로컬 AI 솔루션입니다.

이 시리즈는 Open WebUI 한국어 대표 레퍼런스를 목표로, 개요·아키텍처·설치부터 RAG, 보안, 실전 운영까지 5편에 걸쳐 완벽하게 정리합니다.
SECTION01

Open WebUI란?

📌 개요 — 로컬 AI 인터페이스의 사실상 표준

Open WebUI는 2023년 Timothy J. Baek이 오픈소스로 공개한 셀프호스팅 AI 웹 인터페이스로, 현재 GitHub 스타 90,000+를 돌파하며 로컬 AI 플랫폼의 사실상 표준(de facto standard)이 됐습니다. 단순한 채팅 UI를 넘어 RAG(문서 기반 AI), 멀티모달, 파이프라인 자동화, 멀티유저 권한 관리까지 지원하는 올인원 플랫폼입니다. ChatGPT처럼 생겼지만, 모든 데이터가 내 서버 안에서만 처리된다는 점이 결정적 차이입니다. 기업 환경에서는 사내 문서를 외부 AI에 노출하지 않고도 AI를 도입할 수 있는 사실상 유일한 현실적 선택지입니다.

✅ 실제 현장에서 가장 많이 쓰는 조합
  • Open WebUI + Ollama — 완전 로컬, 비용 0원, 프라이버시 100%
  • Open WebUI + Claude API — 고품질 추론, 월 몇만 원대로 운영
  • Open WebUI + OpenRouter — 100개 이상 모델을 하나의 Key로
  • Open WebUI + SearXNG — 실시간 웹 검색 기능 추가
  • Open WebUI + Cloudflare Tunnel — 공인 IP 없이 외부 HTTPS 공개
  • Open WebUI + Nginx Proxy Manager — 자체 도메인 멀티서비스 관리

🔥 왜 이렇게 많이 사용하는가?

1
완전한 데이터 프라이버시
모든 대화, 문서, API Key가 내 서버에만 저장됩니다. 의료·법률·금융 등 민감한 데이터를 다루는 기업이 ChatGPT 대신 Open WebUI를 선택하는 가장 큰 이유입니다.
2
무제한 무료 사용
ChatGPT Plus($20/월)나 Claude Pro($20/월) 없이, Ollama 로컬 모델을 쓰면 API 비용도 0원입니다. 팀원 10명이 하루 종일 써도 추가 비용이 없습니다.
3
멀티 모델 통합 — 하나의 UI로 모든 AI
Ollama 로컬 모델, OpenAI GPT, Claude, Gemini, Groq, OpenRouter를 하나의 인터페이스에서 선택해 쓸 수 있습니다. 모델별 성능·비용 비교가 채팅 중에도 가능합니다.
4
Docker 기반 간편 설치·운영
명령어 한 줄로 설치 완료. 실제 운영 환경에서는 대부분 Docker Compose로 Open WebUI + Ollama + Nginx를 한 번에 관리합니다. 서버 이전도 볼륨 복사 하나로 끝납니다.
5
RAG · 음성 · 이미지 · 자동화 올인원
Knowledge(문서 AI), Vision(이미지 분석), STT/TTS(음성), Functions/Pipelines(자동화), MCP 서버 연동까지 — 별도 툴 없이 한 플랫폼에서 모두 해결합니다.

⚡ 주요 특징 및 장점

  • 직관적인 ChatGPT 스타일 UI — 채팅 히스토리, 폴더 정리, 북마크, 대화 공유까지 익숙한 인터페이스. 팀원 누구나 10분 내 적응 가능.
  • RAG (지식 기반 AI) — PDF, Word, 웹페이지를 Knowledge에 등록하면 AI가 해당 문서를 참조해 답변. 사내 문서 검색 AI 구축의 핵심.
  • 멀티모달 지원 — 이미지 분석(Vision), 음성 입력(STT), 음성 출력(TTS). 스마트폰에서 AI와 실제 음성 통화처럼 사용 가능.
  • 멀티유저 · 권한 관리 — 관리자/사용자 역할 분리, 회원가입 승인제, LDAP/OAuth 연동. 기업 팀 단위 운영에 필수.
  • Functions / Pipelines — Python으로 커스텀 툴 작성. n8n, Slack, Webhook과 연동해 업무 자동화 파이프라인 구축 가능.
  • Model Playground — 동일 질문에 여러 모델 답변을 나란히 비교. GPT-4o vs Claude vs Llama 성능 검증에 활용.
  • 웹 검색 연동 — SearXNG, Brave, Google 등 검색 엔진을 연결하면 AI가 실시간 인터넷 정보를 참조해 답변.
  • Artifacts 지원 — 코드·HTML·SVG 생성 시 채팅창 안에서 바로 렌더링·실행. 개발자 생산성 극대화.

🆚 ChatGPT / Ollama / Dify / LM Studio와의 차이

구분Open WebUIChatGPTDifyLM StudioOllama(CLI)
설치 방식셀프호스팅클라우드 SaaS셀프호스팅로컬 앱로컬 CLI
데이터 프라이버시🟢 완전 로컬🔴 OpenAI 전송🟢 완전 로컬🟢 완전 로컬🟢 완전 로컬
웹 UI (브라우저)🟢 있음🟢 있음🟢 있음🟡 데스크탑만🔴 없음(CLI)
멀티유저 관리🟢 강력🟢 있음🟢 강력🔴 없음🔴 없음
RAG / 문서 AI🟢 내장🟡 제한적🟢 매우 강력🔴 없음🔴 없음
로컬 모델 연동🟢 Ollama 통해🔴 불가🟢 가능🟢 내장🟢 내장
워크플로우 / 자동화🟡 Pipelines🟡 GPTs🟢 최강🔴 없음🔴 없음
음성(STT/TTS)🟢 지원🟡 제한🔴 없음🔴 없음🔴 없음
월 비용🟢 서버비만🔴 $20+/월🟢 무료🟢 무료🟢 무료
💡
Ollama와 Open WebUI의 관계 — 엔진과 인터페이스

Ollama는 AI 모델을 로컬 GPU/CPU에서 실행하는 엔진(백엔드)입니다. Open WebUI는 그 위에 얹는 웹 인터페이스(프론트엔드)입니다. Ollama만 있으면 터미널에서만 쓸 수 있고, Open WebUI만 있으면 모델이 없습니다. 두 개를 합쳐야 “내 서버에서 돌아가는 ChatGPT”가 완성됩니다.

🎯 이런 분께 추천합니다

🏠 홈랩 · 개인 서버 운영자
미니PC, NUC, 중고 워크스테이션에 Open WebUI + Ollama를 올리면 월정액 0원의 개인 AI 서버 완성. 집 안 어디서든 스마트폰으로 접속해 사용 가능합니다.
🏢 기업 내부 AI 구축 담당자
사내 문서 기반 AI(RAG), 코드 리뷰 보조, 고객 대응 자동화를 외부 API 없이 구현. LDAP/SSO 연동으로 사내 계정 그대로 로그인 가능.
🤖 ChatGPT 비용 절감을 원하는 개인
Claude API + Open WebUI 조합으로 월 $5~10 수준으로 GPT-4급 성능 유지. Groq 무료 티어를 쓰면 비용 0원도 가능합니다.
🖥️ GPU 서버 · AI 인프라 운영자
RTX 3060 이상 GPU에서 Llama 3.3, Qwen2.5, Gemma3 등 오픈소스 모델을 멀티유저 환경으로 운영. Open WebUI가 접속·모델·권한을 모두 관리합니다.
SECTION02

Open WebUI 아키텍처 이해

Open WebUI 아키텍처를 이해하면 연결 오류가 생겼을 때 어디가 문제인지 즉시 파악할 수 있습니다. 실제 운영에서 문제가 생기는 지점은 대부분 Layer 3(백엔드)↔Layer 4(AI 모델) 사이의 네트워크 연결 문제입니다. OLLAMA_BASE_URL을 잘못 설정하거나 Docker 네트워크가 분리되어 있을 때 발생합니다.

🗺️ 전체 아키텍처 구성도

LAYER 1 🌐 사용자 브라우저 Chrome · Firefox · Safari · 모바일 · 태블릿 — http(s)://your-server:3000 접속 HTTPS / HTTP LAYER 2 🖥️ Open WebUI 프론트엔드 (SvelteKit) 채팅 UI · 모델 선택 · 파일 업로드 · 설정 화면 — 컨테이너 내부 포트 8080 Internal API LAYER 3 ⚙️ Open WebUI 백엔드 (Python · FastAPI) 인증·권한 · RAG 처리 · 모델 라우팅 · 웹 검색 · 파이프라인 · SQLite · ChromaDB API Call LAYER 4 🤖 AI 모델 (선택 가능) Ollama (로컬) OpenAI API Claude API Groq / OpenRouter Gemini API

🔌 Ollama 연동 방식 — OLLAMA_BASE_URL 설정

Open WebUI Docker 설치 시 가장 많이 막히는 부분이 바로 OLLAMA_BASE_URL 설정입니다. Ollama와 Open WebUI가 같은 Docker Compose 네트워크에 있으면 컨테이너 이름(ollama)으로 통신합니다. 다른 네트워크·다른 서버에 Ollama가 있다면 IP를 직접 지정해야 합니다.

설치 방식OLLAMA_BASE_URL 값설명
Docker Compose 함께 구성 (추천)http://ollama:11434같은 Compose 네트워크 — 컨테이너명으로 통신
Ollama가 호스트에 직접 설치http://host.docker.internal:11434Docker 컨테이너 → 호스트 머신 접근
별도 서버에 Ollama 설치http://192.168.1.x:11434원격 Ollama 서버 IP 직접 지정
⚠️ 초보자들이 가장 많이 막히는 부분
  • OLLAMA_BASE_URL을 localhost로 설정 — Docker 컨테이너 내부에서 localhost는 컨테이너 자신을 가리킵니다. Ollama가 호스트에 있으면 host.docker.internal을 사용하세요.
  • Open WebUI와 Ollama를 다른 Docker 네트워크에 실행docker run으로 따로 실행하면 서로 통신이 안 됩니다. Docker Compose로 같은 네트워크에 묶어야 합니다.
  • Ollama가 실행 중이지 않은 상태에서 연결 시도docker ps로 ollama 컨테이너 상태를 먼저 확인하세요.

📚 RAG 및 벡터DB 처리 구조

1
문서 업로드
PDF, DOCX, TXT, 웹 URL 등을 Knowledge에 업로드. 여러 파일을 하나의 Knowledge Base로 묶을 수 있습니다.
2
청킹 (Chunking)
문서를 설정된 크기(기본 1,500자)의 조각으로 분할. 오버랩(기본 150자)으로 문맥 연결을 유지합니다.
3
임베딩 변환
각 청크를 임베딩 모델로 수백~수천 차원의 벡터로 변환. 한국어 문서는 text-embedding-3-small 권장.
4
ChromaDB 저장
변환된 벡터를 Docker 볼륨 내 ChromaDB에 영속 저장. 컨테이너 재시작해도 데이터 유지.
5
유사도 검색 → LLM 전달
질문과 가장 유사한 청크를 벡터 검색으로 추출해 LLM 프롬프트에 추가. AI가 해당 문서를 참조해 답변합니다.

🐳 Docker 기반 동작 원리 — 볼륨이 핵심

Open WebUI Docker 설치의 핵심은 볼륨(Volume) 관리입니다. 컨테이너는 언제든 삭제·재생성할 수 있지만, 볼륨에 저장된 데이터(대화 기록, 설정, 업로드 문서, 모델 파일)는 영속적으로 유지됩니다. 실제 운영에서는 볼륨을 정기적으로 외부 스토리지에 백업하는 것이 중요합니다.

구성요소역할포트데이터 저장 위치
open-webui 컨테이너웹 UI + API 서버 통합8080 → 호스트 3000open-webui 볼륨
ollama 컨테이너AI 모델 실행 엔진11434ollama 볼륨
SQLite DB사용자, 대화, 설정 저장/app/backend/data/webui.db
ChromaDBRAG 벡터 데이터/app/backend/data/vector_db
볼륨만 지키면 데이터는 영원히 안전

컨테이너를 삭제·재생성해도 Docker 볼륨(open-webui, ollama)만 남아 있으면 모든 데이터가 보존됩니다. 업데이트 시 docker volume rm은 절대 실행하지 마세요. 서버 이전 시에는 /var/lib/docker/volumes/ 폴더를 통째로 복사하면 됩니다.

SECTION03

설치 전 준비사항

Open WebUI 설치 전에 서버 사양과 필수 소프트웨어를 확인하지 않으면 설치 후 GPU 인식 실패, 포트 충돌, Docker 권한 오류 등 흔한 문제에 부딪히게 됩니다. 특히 GPU 서버라면 NVIDIA Driver 버전과 CUDA, Container Toolkit의 버전 매핑을 미리 확인하는 것이 중요합니다.

💻 시스템 사양

항목최소 사양권장 — API 전용권장 — 로컬 모델
CPU2코어4코어 이상8코어 이상 (모델 로딩 속도)
RAM4GB8GB16~32GB (모델 + 시스템)
스토리지10GB SSD30GB SSD100GB+ SSD (모델 파일 포함)
GPU / VRAM불필요 (API 전용)RTX 3060(12GB) 이상 권장
네트워크내부망이면 LAN, 외부 공개 시 업로드 속도 및 도메인 확인
💡
GPU 없어도 완전히 괜찮습니다

Open WebUI 자체 실행에는 GPU가 전혀 필요 없습니다. GPU는 Ollama로 로컬 AI 모델을 실행할 때만 필요합니다. OpenAI, Claude, Groq 같은 외부 API를 연결할 거라면 라즈베리파이 수준의 저사양 서버로도 충분히 운영 가능합니다.

🖥️ 운영체제별 지원 현황

운영체제지원권장 버전비고
Ubuntu✓ 완벽22.04 / 24.04 LTS가장 많이 사용, 공식 문서 기준 OS
Debian✓ 완벽11 / 12 (Bookworm)Ubuntu와 동일 방법으로 설치
Rocky / Oracle Linux✓ 지원8.x / 9.x기업 환경, RHEL 계열. dnf로 Docker 설치
Windows + WSL2△ 조건부Windows 10/11 + WSL2 Ubuntu개발·테스트 용도. GPU 패스스루 별도 설정 필요
Synology NAS△ 조건부DSM 7.x + Container ManagerAPI 모델 전용 추천. 로컬 모델은 성능 부족
macOS✓ 지원Ventura / SonomaDocker Desktop 필요. 개발 환경에 적합

📦 Docker 설치 (Ubuntu / Debian 기준)

Open WebUI Docker 설치는 공식 Docker 스크립트를 사용하는 것이 가장 안정적입니다. 패키지 관리자(apt)로 설치하면 구버전이 설치될 수 있으므로 공식 스크립트를 권장합니다.

bash — Docker 공식 설치 스크립트
# 기존 구버전 Docker 제거 (있다면)
sudo apt remove docker docker-engine docker.io containerd runc 2>/dev/null
 
# 공식 Docker 설치 스크립트 (가장 안전하고 최신 버전 설치)
curl -fsSL https://get.docker.com | sudo sh
 
# 현재 사용자를 docker 그룹에 추가 — 재로그인 필요
sudo usermod -aG docker $USER
newgrp docker
 
# 설치 확인
docker --version          # Docker 버전 출력되면 정상
docker compose version    # Compose v2 출력 확인
docker ps                 # sudo 없이 실행되면 그룹 설정 완료
⚠️ Docker 설치 후 가장 많이 막히는 포인트
  • docker 그룹 미적용usermod 후 반드시 재로그인 또는 newgrp docker를 실행해야 합니다. 안 하면 계속 Permission denied 오류가 납니다.
  • Docker Compose v1 vs v2 혼용 — 구버전은 docker-compose(하이픈 있음), v2는 docker compose(공백). 이 가이드는 v2 기준입니다.

⚡ NVIDIA Container Toolkit 설치 (GPU 사용 시만)

bash — NVIDIA Container Toolkit
# 드라이버 먼저 확인 — 출력되면 드라이버 정상
nvidia-smi
 
# NVIDIA Container Toolkit 저장소 추가
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \
  | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
 
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
  | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
  | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
 
# 설치 및 Docker 연동
sudo apt update && sudo apt install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
 
# GPU 인식 확인 — nvidia-smi 출력되면 성공
docker run --rm --gpus all nvidia/cuda:12.0-base-ubuntu22.04 nvidia-smi

✅ 설치 전 최종 체크리스트

  • Docker v24 이상 + Docker Compose v2 설치 완료
  • docker ps sudo 없이 실행 가능 (docker 그룹 적용 확인)
  • iGPU 사용 시 — docker run --gpus all nvidia/cuda:... nvidia-smi 정상 출력 확인
  • i포트 3000 방화벽에서 허용 (sudo ufw allow 3000 또는 보안 그룹 설정)
  • !외부 공개 서버라면 Cloudflare Tunnel 또는 Nginx + Let’s Encrypt HTTPS 준비 필수
SECTION04

Open WebUI Docker 설치 방법

Open WebUI Docker 설치는 현재 가장 많이 사용하는 구축 방식입니다. Docker를 사용하면 OS 환경에 관계없이 동일한 방법으로 설치할 수 있고, 업데이트·백업·서버 이전도 Docker 명령어 몇 줄로 해결됩니다. 아래 4가지 방법 중 본인 환경에 맞는 것을 선택하세요.

🚀 방법 1 — 단일 컨테이너 (외부 API 전용)

Ollama 없이 OpenAI, Claude, Groq 같은 외부 API만 사용할 계획이라면 가장 간단한 단일 컨테이너로 시작하세요. 서버 사양이 낮아도 부담 없이 운영 가능합니다.

bash — 단일 컨테이너 설치 (가장 빠름)
docker run -d \
  --name open-webui \
  -p 3000:8080 \
  -v open-webui:/app/backend/data \
  --restart unless-stopped \
  ghcr.io/open-webui/open-webui:main
옵션역할
-p 3000:8080호스트 3000 → 컨테이너 8080 포트 매핑. 브라우저에서 :3000으로 접속
-v open-webui:/app/backend/data데이터 영속성. 여기를 빠뜨리면 컨테이너 재시작마다 모든 데이터 초기화
--restart unless-stopped서버 재부팅 시 자동 시작. 운영 환경에 필수
:main최신 개발 버전. 안정 버전 원하면 :latest

🐳 방법 2 — Docker Compose + Ollama (로컬 모델 추천)

Open WebUI + Ollama를 함께 구성하는 가장 많이 사용하는 방법입니다. Docker Compose를 사용하면 두 서비스가 자동으로 같은 네트워크에 묶여 OLLAMA_BASE_URLhttp://ollama:11434로 설정하면 바로 통신됩니다.

📁 ~/open-webui/docker-compose.yml
yaml — docker-compose.yml (CPU 버전)
services:
  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    volumes:
      - ollama:/root/.ollama
    ports:
      - "11434:11434"
    restart: unless-stopped
 
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    depends_on:
      - ollama
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
    volumes:
      - open-webui:/app/backend/data
    ports:
      - "3000:8080"
    restart: unless-stopped
 
volumes:
  ollama:
  open-webui:
bash — 실행 / 상태확인 / 로그
# 폴더 생성 및 이동
mkdir -p ~/open-webui && cd ~/open-webui
 
# docker-compose.yml 저장 후 백그라운드 실행
docker compose up -d
 
# 컨테이너 상태 확인 (Up 상태여야 정상)
docker compose ps
 
# Open WebUI 로그 실시간 확인
docker compose logs -f open-webui

⚡ 방법 3 — Docker Compose + Ollama + NVIDIA GPU

Open WebUI GPU 설정은 Ollama 서비스에 deploy.resources.reservations 블록만 추가하면 됩니다. NVIDIA Container Toolkit이 미리 설치되어 있어야 합니다. GPU가 정상 인식되면 Ollama 로그에 gpu memory available 메시지가 출력됩니다.

yaml — docker-compose.yml GPU 버전 (ollama 서비스)
  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    volumes:
      - ollama:/root/.ollama
    ports:
      - "11434:11434"
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all          # 모든 GPU 사용 (특정 1개만: count: 1)
              capabilities: [gpu]
    restart: unless-stopped
⚠️ Open WebUI GPU 설정 시 흔한 실수
  • GPU Passthrough 설정 후 nvidia-smi가 컨테이너 안에서 안 보임 — NVIDIA Container Toolkit 재설치 후 sudo systemctl restart docker 필요.
  • CUDA 버전 불일치 — Ollama 이미지의 CUDA 버전이 호스트 드라이버보다 높으면 실행 안 됨. nvidia-smi에서 CUDA Version 확인 후 호환 이미지 사용.
  • VRAM 부족으로 모델 CPU 로드 — 모델 크기가 VRAM 용량을 초과하면 자동으로 CPU로 전환. 속도가 10배 이상 느려집니다. ollama ps에서 GPU 사용 여부 확인.

🌐 방법 4 — Cloudflare Tunnel로 외부 HTTPS 공개

Open WebUI Cloudflare Tunnel 연동은 공인 IP나 포트 포워딩 없이 도메인 기반 HTTPS를 구성할 수 있는 가장 쉬운 방법입니다. 홈랩, 공유기 뒤 서버, 사설 IP 환경에서 특히 유용합니다.

🌐 사용자 브라우저 ai.domain.com HTTPS ☁️ Cloudflare Edge SSL 종료 · DDoS 방어 Tunnel 🔒 cloudflared 데몬 서버에서 실행 localhost 🤖 Open WebUI localhost:3000
bash — Cloudflare Tunnel 설정
# 1. cloudflared 설치 (Ubuntu/Debian)
curl -L --output cloudflared.deb \
  https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared.deb
 
# 2. Cloudflare 계정 로그인
cloudflared tunnel login
 
# 3. 터널 생성
cloudflared tunnel create open-webui
 
# 4. Cloudflare 대시보드에서 설정
#    Zero Trust → Networks → Tunnels → 생성한 터널 선택
#    Public Hostname 추가:
#    Subdomain: ai, Domain: yourdomain.com
#    Service: http://localhost:3000
 
# 5. 서비스로 등록 (서버 재부팅 시 자동 실행)
sudo cloudflared service install
sudo systemctl start cloudflared
🚨
외부 공개 전 반드시 확인 — 이것만 놓치면 큰일

Open WebUI를 인터넷에 공개할 경우 반드시 ①관리자 비밀번호 강화, ②회원가입 제한 (Default Role → Pending), ③HTTPS 적용을 완료하세요. HTTP로 외부 공개 시 API Key와 대화 내용이 평문으로 전송됩니다.

✅ 설치 완료 후 확인 순서
  • 브라우저에서 http://서버IP:3000 접속 → 회원가입 화면 확인
  • 첫 번째 계정 가입 → 자동으로 Admin(관리자) 부여
  • Admin Panel → Settings → Connections → Ollama 연결 테스트 (초록 체크 확인)
  • 상단 모델 선택기에서 모델 선택 → 테스트 메시지 전송 → 응답 확인
📚 시리즈 다른 글 보기

Leave a reply

Please enter your comment!
Please enter your name here